Commit 6b607da8 authored by barnboy%trilobyte.net's avatar barnboy%trilobyte.net

Documentation update; added docs/sgml, docs/html, docs/txt.

No text version of The Bugzilla Guide availabe yet, however.
parent 3208181d
<html>
<head>
<title>The Bugzilla FAQ v 0.2.4</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<center>
<h1>
The Bugzilla FAQ v 0.2.4</h1></center>
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at <a href="http://www.mozilla.org/MPL/">http://www.mozilla.org/MPL/</a>
.&nbsp; Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
<p>The Original Code is "The Bugzilla FAQ".
<p>The Initial Developer of the Original Code is AtHome Corporation. Portions
created by AtHome are Copyright &copy; 1995-2000 AtHome Corporation. All
Rights Reserved. @Home, Excite@Home, @Work, and Excite are the trademarks
of At Home Corporation, and may be registered in certain jurisdictions
<p>Contributor(s):
<ul>
<li>
<a href="mailto:mbarnson@excitehome.net">Matthew P. Barnson</a></li>
<li>
<a href="mailto:terry@mozilla.org">Terry Weissman</a></li>
<li>
<a href="mailto:tara@tequilarista.org">Tara Hernandez</a></li>
<li>
Various contributors (you know who you are... thank you!)</li>
</ul>
Last change: June 7, 2000
<p>Changes:
<br>Version 0.2: Initial public release. (April 10, 2000)
<br>Version 0.2.1: Fixed formatting, released as HTML.&nbsp; Also corrected
incorrect fix for missing bugs from queries (it's syncshadowdb, not processmail)
and information about bugzilla maintainers (April 10,2000)
<br>Version 0.2.2: (May 15, 2000)
<ol>
<li>
Fixed mailto: links (they were showing up as "documents/"... weird)</li>
<li>
Added new sections:</li>
<ol>
<li>
API notes (such as it is)</li>
<li>
common feature requests</li>
<li>
more FAQ's</li>
<li>
Fixed several tpyos</li>
</ol>
<li>
Take into account recent submissions to the newsgroup</li>
<li>
Removed "Bugzilla Gotchas" section and integrated entries into "Bugzilla
Bugs"</li>
</ol>
<p><br>Version 0.2.4: (June 7, 2000)
<ol>
<li>
Added Dave Lawrence's excellent RedHat Bugzilla differences section verbatim.</li>
<li>
Added more information on Loki Bugzilla ("Fenris").</li>
<li>
Added questions from some corporate customers</li>
<li>
Removed unused text in API section</li>
<li>
Added information about other documentation (pending)</li>
<li>
Added a section for pointy-haired-bosses</li>
<li>
This will be the last release in strictly HTML format.&nbsp; Source will be SGML shortly, with
HTML and TXT versions included with the package from this point on</li>
</ol>
<p><br>Maintainer: <a href="mailto:mbarnson@excitehome.net">Matthew P.
Barnson</a>
<br>&nbsp;
<center>
<h2>
Table of Contents</h2></center>
<center><a href="#INTRODUCTION">INTRODUCTION</a>
<br><a href="#BZGENERAL">BUGZILLA GENERAL</a>
<br><a href="#RHBZ">--redhat bugzilla</a>
<br><a href="#LOKIBZ">--loki bugzilla</a>
<br><a href="#PHB">--phb bugzilla</a>
<br><a href="#BZINSTALLATION">BUGZILLA INSTALLATION</a>
<br><a href="#BZCONFIGURATION">BUGZILLA CONFIGURATION</a>
<br><a href="#BZSECURITY">--security</a>
<br><a href="#BZEMAIL">--email</a>
<br><a href="#BZDATABASE">--database</a>
<br><a href="#BZNT">BUGZILLA and WINDOWS NT</a>
<br><a href="#BZUSE">BUGZILLA USE</a>
<br><a href="#BZKNOWNBUGS">BUGZILLA KNOWN BUGS</a>
<br><a href="#BZHACKING">BUGZILLA HACKING</a>
<br><a href="#BZAPI">--API</a></center>
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="INTRODUCTION"></a>INTRODUCTION</h2></center>
<center>or "And all this time we thought we were *reducing* the number
of bugs"</center>
<hr WIDTH="100%">
<br>The Bugzilla FAQ has a new home!&nbsp; In addition to availability
via CVS and released versions 2.12 and higher of Bugzilla, you can find
the latest &amp; greatest version of the FAQ at <a href="http://www.trilobyte.net/barnsons/">http://www.trilobyte.net/barnsons/</a>.&nbsp;
This is a living document; please be sure you are up-to-date with the latest
version before mirroring.
<p>The Bugzilla FAQ is designed to answer common user questions outside
the scope of the README file and supporting documentation in an easy "question
and answer" format. Where appropriate, this FAQ will refer to URLs rather
than including documents in their entirety to ensure completeness even
should this FAQ become out of date.
<p>This FAQ is not maintained by Netscape or Netscape employees, so please
do not contact them regarding errors or omissions contained herein. Please
direct all questions, comments, updates, flames, etc. to <a href="mailto:mbarnson@excitehome.net">Matthew
P. Barnson </a>(barnboy or barnhome on irc.mozilla.org in #mozwebtools).
<p>I'm sure I've made some glaring errors or omissions in this paper --
please <a href="mailto:mbarnson@excitehome.net">email me</a> corrections
or post corrections to the netscape.public.mozilla.webtools newsgroup.
<p>Bugzilla attracts very intelligent, competent people who need a good
bug-tracking system to support their projects, so I make a few assumptions
in this FAQ:
<ol>
<li>
You are using UNIX, or you use NT and have a high tolerance for pain.</li>
<li>
You are a competent systems administrator with a working knowledge of UNIX
shells, security, Apache or Netscape/iPlanet web server, Perl, and MySQL.</li>
<li>
You are not easily frustrated, and have a strong ability to figure out
answers to problems.</li>
</ol>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZGENERAL"></a>BUGZILLA GENERAL</h2></center>
<center>or "It's not a bug.&nbsp; It's a feature."</center>
<hr WIDTH="100%">
<p><b><i>Q:</i></b> <i>Where can I find information about bugzilla?</i>
<br><b><i>A:</i></b> You can stay up-to-date with the latest bugzilla information
at <a href="http://www.mozilla.org/projects/bugzilla/">http://www.mozilla.org/projects/bugzilla/</a>.
<p><b><i>Q:</i></b> <i>What license is Bugzilla distributed under?</i>
<br><b><i>A:</i></b> Bugzilla is under the Mozilla Public License. See
details at <a href="http://www.mozilla.org/MPL/">http://www.mozilla.org/MPL/</a>
<p><b><i>Q:</i></b> <i>How do I get commercial support for Bugzilla?</i>
<br><b><i>A:</i></b> As far as I know, there are not yet any companies
that offer commercial Bugzilla support. However, I've heard there are consulting
companies that will install and maintain a Bugzilla installation for charge,
and would accept responsibility for its upkeep. I'm not sure which large
consulting firms do this yet -- I'm open to more contributions in this
area.
<p><b><i>Q:</i></b> <i>What major companies or projects are currently using
Bugzilla for bug-tracking?</i>
<br><b><i>A:</i></b> This is by no means a complete list, and is assembled
from contributions and about 10 minutes of searching on AltaVista. Contributions
welcome:
<ul>
<li>
<a href="http://www.netscape.com/">Netscape/AOL</a></li>
<li>
<a href="http://www.mozilla.org/">Mozilla.org</a></li>
<li>
<a href="http://www.excitestores.com/">AtHome Corporation</a></li>
<li>
<a href="http://www.redhat.com/">Red Hat</a></li>
<li>
<a href="http://fenris.lokigames.com/">Loki Entertainment Software</a></li>
<li>
<a href="http://www.suse.com/">SuSe Corp</a></li>
<li>
<a href="http://www.horde.org/">The Horde Project</a></li>
<li>
<a href="http://www.eazel.com/">The Eazel Project</a></li>
</ul>
<b><i>Q:</i></b> <i>Who maintains Bugzilla?</i>
<br><b><i>A:</i></b> <a href="mailto:tara@tequilarista.org">Tara Hernandez</a>
is the current maintainer of Bugzilla. It was originally written and maintained
by <a href="mailto:terry@mozilla.org">Terry Weissman</a>, but he is no
longer heavily involved (Tara adds, "These days, <a href="mailto:terry@mozilla.org">Terry</a>
just hangs around and heckles").&nbsp; The Quality Assurance contact for
Bugzilla, who makes sure we don't get too far out of line is <a href="mailto:matty@box.net.au">Matthew
Tuck</a>. You'll often hear from and about <a href="mailto:dmose@mozilla.org">Dan
Mosedale </a>and <a href="mailto:endico@mozilla.org">Dawn Endico</a>. Check
out their bios and responsibilities at <a href="http://www.mozilla.org/about.html">http://www.mozilla.org/about.html.</a>&nbsp;
They bear primary responsibility for keeping the current bugzilla.mozilla.org
site up-to-date, and have a vital interest in ensuring Bugzilla moves forward
(and doesn't break!)
<p><b><i>Q:</i></b> <i>Why does Bugzilla use .png files instead of .gifs
for graphs?</i>
<br><b><i>A:</i></b> Patent restrictions (see <a href="http://www.gnu.org/philosophy/gif.html">http://www.gnu.org/philosophy/gif.html</a>
for details). If you're using a recent version of the GD library and a
recent version of Bugzilla, this is no longer a FAQ.
<p><b><i>Q:</i></b> <i>How does Bugzilla stack up against other bug-tracking
databases?</i>
<br><b><i>A:</i></b> As far as I know, there have been no feature-by-feature
comparisons to other bug-tracking systems.&nbsp; However, here are some
primary reasons people cite for moving to Bugzilla:
<ol>
<li>
Customizability</li>
<li>
Maintainability (quick security fixes and trivial upgrades)</li>
<li>
Industry support (<a href="http://www.mysql.com/">MySQL</a>, <a href="http://www.oracle.com/">Oracle</a>,
instead of custom little <a href="http://www.sqlcourse.com/">SQL</a> DB)</li>
<li>
Adherence to web standards (<a href="http://web.golux.com/coar/cgi/">CGI</a>,
<a href="http://www.perl.org/">Perl</a>,
SQL)</li>
<li>
Speed, proven on very large installations (<a href="http://bugzilla.mozilla.org/">bugzilla.mozilla.org</a>)</li>
<li>
<a href="http://www.usenix.org/">UNIX</a>-based</li>
<li>
<a href="http://www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html">Open
Source</a>.</li>
<li>
Price.&nbsp; However, don't let price be the selling point of Bugzilla
-- it survives on its own merits.</li>
</ol>
<b><i>Q:</i></b> <i>How do I change my username in Bugzilla?</i>
<br><b><i>A:</i></b>&nbsp; If you are the administrator, open up editusers.cgi
and change the login name.&nbsp; Simple!
<p><i><b>Q:</b> Why doesn't Bugzilla offer this or that feature or compatability
with &lt;insert cool tracking software here>?</i>
<br><b><i>A:</i></b>&nbsp; Terry writes,
<blockquote>I wrote Bugzilla primarily for mozilla.org's use. It is a secondary
concern (but one still important to me) that it be of use to other folks,
too. So, rather than spend a lot of time making everything thoroughly portable
and easy to install, I just threw it over the wall, and prayed that random
developers would help pitch in and make things easier for everyone.(I'm
being a little hard on myself here. I *did* spend a week porting the whole
thing from TCL to Perl, just so that outside folk would have a chance of
using it. You shoulda seen it before...)</blockquote>
<b><font color="#FF0000">UPDATE</font></b>: Bugzilla is making tremendous
strides in usability, customizability, scalability, and user interfaces.&nbsp;
It is widely considered the most complete and popular open-source bug database
in existence.&nbsp; <a href="http://www.mozilla.org/bugs/source.html">Download
a copy today!</a>
<p><b><i>Q:</i></b> <i>Why MySQL? I'm interested in seeing this run on
(insert "real" RDBMS name here)...</i>
<br><b><i>A:</i></b> Terry answers,
<blockquote>You're not the only one. But *I* am not very interested. I'm
not real SQL or database person. I just wanted to make a useful tool, and
build it on top of free software. So, I picked MySQL, and learned SQL by
staring at the MySQL manual and some code lying around here, and
<br>wrote Bugzilla. I didn't know that Enum's were non-standard SQL. I'm
not sure if I would have cared, but I didn't even know. So, to me, things
are "portable" because it uses MySQL, and MySQL is portable enough. I fully
understand (now) that people want to be portable to other databases, but
that's never been a real concern of mine.</blockquote>
<b><font color="#FF0000">UPDATE</font></b>: Looks like RedHat might land
changes real soon that will bring some more portability to Bugzilla.&nbsp;
However, they are in severe need of help.&nbsp; Please contact <a href="mailto:dkl@redhat.com">Dave
Lawrence</a> if you are interested in helping this effort.
<p><b><i>Q:</i></b> <i>Why do the scripts say "/usr/bonsaitools/bin/perl"
instead of "/usr/bin/perl" or something else?</i>
<br><b><i>A:</i></b> Mozilla.org uses /usr/bonsaitools/bin/perl. The prime
rule in making submissions is "don't break bugzilla.mozilla.org". If it
breaks it, your patch will be reverted faster than you can do a diff.&nbsp;&nbsp;
Terry says:
<blockquote>Purely my own convention. I wanted a place to put a version
of Perl and other tools that was strictly under my control for the various
webtools, and not subject to anyone else. Edit it to point to whatever
you like.</blockquote>
<blockquote>
<h3>
<a NAME="RHBZ"></a>Red Hat Bugzilla</h3>
</blockquote>
<p><br><b><i>Q:</i></b> <i>What about Red Hat Bugzilla?</i>
<br><b><i>A:</i></b> <a href="http://www.redhat.com/">Red Hat</a> has a
(arguably more user-friendly/customizable/scalable buzzword here) version
of Bugzilla available. Check it out at <a href="http://bugzilla.redhat.com/">http://bugzilla.redhat.com
</a>and
the sources at <a href="ftp://people.redhat.com/dkl/">ftp://people.redhat.com/dkl/</a>.
They've set theirs up to work with Oracle out of the box. The buzz says
their changes will be landing in the source tree "real soon now".&nbsp;
Note that it is based primarily upon the 2.8 Bugzilla tree; Bugzilla has
made some tremendous advances since the 2.8 release.&nbsp; I recommend
you download the primary Bugzilla as well as Red Hat's to check out the
differences for yourself.&nbsp; Red Hat Bugzilla's maintainer, <a href="mailto:dkl@redhat.com">Dave
Lawrence</a>, when asked about landing the changes from the Red Hat fork,
notes,
<blockquote>Somebody needs to take the ball and run with it.&nbsp; I'm
the only maintainer and am very pressed for time.</blockquote>
<i><b>Q:</b>&nbsp; What are the primary benefits of Red Hat Bugzilla? (answer
by Dave Lawrence, of Red Hat)</i>
<br><i>A:&nbsp; </i>For&nbsp;the record, we are not using any template
type implementation for the&nbsp;cosmetic changes maded to Bugzilla. It
is just alot of html changes in&nbsp;the code itself. I admit I may have
gotten a little carried away with&nbsp;it but the corporate types asked
for a more standardized interface to&nbsp;match up with other projects
relating to Red Hat web sites. A lot of other&nbsp;web based internal tools
I am working on also look like Bugzilla.
<br>&nbsp; I&nbsp;do want to land the changes that I have made to Bugzilla
but I may have&nbsp;to back out a good deal and make a different version
of Red Hat's Bugzilla&nbsp;for checking in to CVS. Especially the cosmetic
changes because&nbsp;it seems they may not fit the general public.&nbsp;
I&nbsp;will do that as soon as I can. I also still do my regular QA responsibilities
along with Bugzilla so time is difficult sometimes to come by.
<br>&nbsp; There&nbsp;are also a good deal of other changes that were requested
by management&nbsp;for things like support contracts and different permission
groups&nbsp;for making bugs private. Here is a short list of the major
changes&nbsp;that have been made:
<ol>
<li>
No enum types. All old enum types are now separate smaller tables.</li>
<li>
No bit wise operations. Not all databases support this so they were changed
to a more generic way of doing this task.</li>
<li>
Bug reports can only be altered by the reporter, assignee, or a privileged
bugzilla user. The rest of the world can see the bug but in a non-changeable
format (unless the bug has been marked private).&nbsp; They can however
add comments, add and remove themselves from the CC list.</li>
<li>
Different group scheme. Each group has an id number related to it.&nbsp;
There is a user_group table which contains userid to groupid mappings to
determine which groups each user belongs to.&nbsp; Additionally there is
a bug_group table that has bugid to groupid mappings to show which groups
can see a particular bug. If there are no entries for a bug in this table
then the bug is public.</li>
<li>
Product groups. product_table created to only allow certain products to
be visible for certain groups in both bug entry and query. This was particulary
helpful for support contracts.</li>
<li>
Of course many (too many) changes to Bugzilla code itself to allow use
with Oracle and still allow operation with Mysql if so desired.&nbsp; Currently
if you use Mysql it is set to use Mysql's old permission scheme to keep
breakage to a minimum. Hopefully one day this will standardize on one style
which may of course be something completely different.</li>
<li>
Uses Text::Template perl module for rendering of the dynamic HTML pages
such as enter_bug.cgi, query.cgi, bug_form.pl, and for the header and footer
parts of the page. This allows the html to be separate from the perl code
for customizing the look and feel of the page to one's preference.</li>
<li>
There&nbsp;are many other smaller changes. There is also a port to Oracle
that&nbsp;I have been working on as time permits but is not completely</li>
<li>
finished&nbsp;but somewhat usable. I will merge it into our standard code
base&nbsp;when it becomes production quality. Unfortunately there will
have to&nbsp;be some conditionals in the code to make it work with other
than Oracle&nbsp;due to some differences between Oracle and Mysql. </li>
</ol>
&nbsp; Both&nbsp;the Mysql and Oracle versions of our current code base
are available&nbsp;from ftp://people.redhat.com/dkl. If Terry/Tara wants
I can submit patch&nbsp;files for all of the changes I have made and he
can determine what&nbsp;is suitable for addition to the main bugzilla cade
base. But for me&nbsp;to commit changes to the actual CVS I will need to
back out alot of things&nbsp;that are not suitable for the rest of the
Bugzilla community. I am&nbsp;open to suggestions.
<br>&nbsp;
<p>Q:&nbsp; What's the current status of Red Hat Bugzilla?
<br><font color="#FF0000">Update</font>: From Dave Lawrence (June 7 2000)
<blockquote>I suppose the current thread warrants an update on the status
of Oracle and bugzilla ;) We have now been running Bugzilla 2.8 on Oracle
for the last two days in our production environment. I tried to do as much
testing as possible with it before going live which is some of the reason
for the long delay. I did not get enough feedback as I would have liked
from internal developers to help weed out any bugs still left so I said
"Fine, i will take it live and then I will get the feedback I want :)"
So it is now starting to stabilize and it running quite well after working
feverishly the last two days fixing problems as soon as they came in from
the outside world. The current branch in cvs is up2date if anyone would
like to grab it and try it out. The oracle _setup.pl is broken right now
due to some last minute changes but I will update that soon. Therefore
you would probably need to create the database tables the old fashioned
way using the supplied sql creation scripts located in the ./oracle directory.
We have heavy optimizations in the database it self thanks to the in-house
DBA&nbsp; here at Red Hat so it is running quite fast. The database itself
is located on a dual PII450 with 1GB ram and 14 high voltage differential
raided scsi drives. The tables and indexes are partitioned in 4 chuncks
across the raided drive which is nice because when ever you need to do
a full table scan, it is actually starting in 4 different locations on
4 different drives simultaneously. And the indexes of course are on separate
drives from the data so that speeds things up tremendously. When&nbsp;
I can find the time I will document all that we have done to get this&nbsp;
thing going to help others that may need it.
<p>As Matt has mentioned it is still using out-dated code and with a&nbsp;
little help I would like to bring everything up to date for eventual&nbsp;
incorporation with the main cvs tree. Due to other duties I have with the
company any help with this wiould be appreciated. What we are using&nbsp;
now is what I call a best first effort. It definitely can be improved on
and may even need complete rewrites in a lot of areas. A lot of changes
may have to be made in the way Bugzilla does things currently&nbsp; to
make this transition to a more generic database interface.&nbsp; Fortunately
when making the Oracle changes I made sure I didn't do&nbsp; anything that
I would consider Oracle specific and could not be easily done with other
databases. Alot of the sql statements need to be broken up into smaller
utilities that themselves would need to make decisions on what database
they are using but the majority of the code can be made database neutral.
<h3>
<a NAME="LOKIBZ"></a>Loki Bugzilla (AKA: Fenris)</h3>
</blockquote>
<b><i><font color="#FF0000">Note: </font></i></b>This is based primarily
on a single email conversation with the first developer of Fenris, <a href="mailto:briareos@lokigames.com">Michael
Vance</a>.&nbsp; Maintenance of Fenris has since been handed off to <a href="mailto:raistlin@lokigames.com">Raphael
Barrerro</a> &lt;raistlin@lokigames.com>.
<p><i><b>Q:&nbsp; </b>What about Loki Bugzilla?</i>
<br><b><i>A:</i></b>&nbsp; Loki Games has a customized version of Bugzilla
available at <a href="http://fenris.lokigames.com/">http://fenris.lokigames.com</a>.&nbsp;
From that page,
<blockquote>You may have noticed that Fenris is a fork from Bugzilla--
our patches weren't suitable for integration --and a few people have expressed
interest in the code. Fenris has one major&nbsp; improvement over Bugzilla,
and that is individual comments are not appended onto a string blob, they
are stored as a record in a separate table. This allows you to, for instance,
separate comments out according to privilege levels in case your bug database
could contain sensitive information not for public eyes. We also provide
things like email hiding to protect user's privacy, additional fields such
as 'user_affected' in case someone enters someone else's bug, comment editing
and deletion, and more conditional system variables than Bugzilla does
(turn off attachments, qacontact, etc.).</blockquote>
<i><b>Q:</b>&nbsp; Are you interested in landing your [Fenris] changes
back in the main tree so Fenris can live on the tip again?</i>
<br><b><i>A:</i></b>&nbsp; Sure, although many of them are probably obsolete
by now.
<p><b><i>Q:</i></b>&nbsp; <i>If so, when?</i>
<br><b><i>A:</i></b>&nbsp; Well, if there's anything interesting, people
of course can just grab the code. I don't really maintain it anymore. We
have a real, honest to goodness sysadmin, Raphael Barrerro, who works on
it now. His email is raistlin@lokigames.com.
<p><i><b>Q:</b>&nbsp; Main tree bugzilla changed for 2.10 to storing individual
comments in a separate table.&nbsp; Are there reasons for users to use
Fenris, based on Bugzilla 2.8, over main tree 2.10 or the current CVS version?&nbsp;
What are they?</i>
<br><b><i>A:&nbsp;</i></b> I have no idea :). IMNSHO, Bugzilla is an interesting
piece of software in that it has a lot of logic encoded into it that is
sometimes really cumbersome to some people, and then it doesn't have *enough*
logic in it for other people's tastes. If I were going to start over, I
would again try to use the CVS and get any changes I felt necessary integrated.
But for us, right now, it works fine, so we haven't bothered to really
change our setup.
<p><b><i>Q:</i></b>&nbsp; <i>What do you mean by "our patches weren't suitable
for integration" on your web page?</i>
<br><b><i>A:</i></b>&nbsp; Basically, I did not know:
<ol>
<li>
Apache</li>
<li>
MySQL, or</li>
<li>
Perl</li>
</ol>
when I was charged with the task of getting our Bugzilla up and running.
Therefore I found it necessary to futz with a lot of things,
<br>mostly formatting of the Perl code, until I could understand what they
were doing. This resulted in lots of whitespace diff, and even when I created
a diff with -B (no whitespace), it still had too much crud in it. I also
hadn't written any migration scripts or anything. Terry didn't want to
bother with it, and that was cool with me. Terry and I had a really weird
conversation that I didn't quite understand, about us using CVS HEAD, etc.,
but I just didn't have the time/energy for something that already worked.
<br>&nbsp;
<blockquote>
<h3>
<a NAME="PHB"></a>Pointy-Haired-Boss Questions</h3>
</blockquote>
<b><font color="#FF0000">Note</font></b>: The title of this section doesn't
mean you're a PHB -- it just means you probably HAVE a PHB who wants to
know this :)
<p><i><b>Q:</b>&nbsp; Is Bugzilla web-based or do you have to have specific
software or specific operating system on your machine?</i>
<br><b><i>A:</i></b>&nbsp; It is web and e-mail based.&nbsp; You can edit
bugs by sending specially formatted email to a properly configured Bugzilla,
or control via the web. Bugzilla works best with Netscape Navigator, but
works fine with IE (just some Javascript is disabled for IE).
<p><i><b>Q:&nbsp;</b> Has anyone you know of already done any Bugzilla
integration with Perforce (SCM software)?</i>
<br><b><i>A:</i></b>&nbsp; Not to my knowledge -- but that would be a question
much better asked in the newsgroup (news://netscape.public.mozilla.webtools).
<p><i><b>Q:</b>&nbsp; Does Bugzilla allow the user to track multiple projects?</i>
<br><b><i>A:</i></b>&nbsp; It's not specifically a "project management
tool", although it does have some project management features, such as
the ability for a task/bug to "block" another task/bug.&nbsp; We use it
here at Excite@Home to track requests to our Network Operations Center,
software defects in our online inventories, requests for enhancement, quality
assurance, personnel tasks, and other things.
<br>&nbsp; So the answer is: Yes, it handles multiple projects very well.&nbsp;
When discussing Bugzilla with people who use it a lot, it's helpful to
refer to a "project" as a "product", individual areas of the project as
"components", and tasks as "bugs".
<p><i><b>Q:</b>&nbsp; If I am on many projects, and search for all bugs
assigned to me, will Bugzilla list them for me and allow me to sort by
project, severity etc?</i>
<br><b><i>A:&nbsp;</i></b> The heart of the Bugzilla system is the query
interface.&nbsp; Within that query interface, you can customize extremely
powerful queries to deliver exactly what you need.&nbsp; Once delivered,
you can sort by age (bug ID number), severity, priority, platform, owner,
current state, or current result (only for "resolved" bugs).
<br>&nbsp; You cannot sort a query by product/project at this time -- most
people consider the current options sufficient.&nbsp; We are trying very
hard to reduce complexity in Bugzilla.&nbsp; I'm personally involved in
a half-dozen products in Bugzilla, and routinely just sort by priority.
<p><i><b>Q:</b>&nbsp; Does Bugzilla allow attachments (text, screenshots,
urls etc)? If yes, are there any that are NOT allowed?</i>
<br><b><i>A:</i></b>&nbsp; Yes, it allows any kind of attachment.&nbsp;
However, if you do not have a MIME type defined for that kind of file in
your web *server*, the browser may klonk on you.&nbsp; URL's in comments
are automatically hyperlinked if they are properly formatted (http://www.somedomain.com),
but any HTML in a comment shows up as raw html, not the formatting you'd
expect.&nbsp; If someone refers to "bug #4444" it's automatically hyperlinked
to that bug in the existing database.&nbsp; It's pretty cool.
<p><i><b>Q:&nbsp;</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?</i>
<br><b><i>A:&nbsp;</i></b> In part.&nbsp; Priority, severity, target milestones,
product names, and many many other fields are completely configurable.&nbsp;
However, at this time for certain types of changes you need someone who
knows some Perl and HTML -- not a lot, but enough to provide consistency
and be able to re-apply your customizations if you update your installation
of Bugzilla.
<p><i><b>Q:&nbsp;</b> Does Bugzilla provide any reporting features, metrics,
graphs, etc? You know, the type of stuff that management likes to see.
:)</i>
<br><b><i>A:</i></b>&nbsp; Yes.&nbsp; Check out http://bugzilla.mozilla.org/reports.cgi
for some pre-cooked reports.&nbsp; The reports other than the pre-fab ones
that you can create are limited only by your imagination and experience
in Perl.
<p><i><b>Q:&nbsp;</b> Is there email notification and if so, what do you
see when you get an email? Do you see bug number and title or is it only
the number?</i>
<br><b><i>A:&nbsp;</i></b> You can choose to see complete status of the
bug (using old email tech) or just the changes (using new email tech).&nbsp;
The subject is just the bug ID and short description of the bug, but the
content is very complete.
<p><i><b>Q:&nbsp;</b> If there is email notification, can it be set up
to send to multiple people, some on the To List, CC List, BCC List etc?</i>
<br><b><i>A:&nbsp;</i></b> You bet!&nbsp; By default, the person who reported
the bug, the person to whom the bug is assigned, and anyone on the CC list
for the bug will get email notification when anything regarding the bug
changes.&nbsp; You can also enable a "Q/A Contact" field that will assign
a default Q/A person to monitor the bug and ensure it's completed correctly
(we use this a lot and love it).&nbsp; The
<br>equivalent to a "BCC" list is a "watcher": someone who watches another
person's bugs (if they are out of town, whatever).&nbsp; We have several
of these people who need to see what bugs someone else is working on (team
leads, coding partners, etc.)
<p><i><b>Q:&nbsp;</b> If there is email notification, do users have to
have any particular type of email application? For example, our users have
a variety of email apps in use, like Outlook, Netscape Mail, Eudora etc.
Our system would need to work with just about anything.</i>
<br><b><i>A:</i></b>&nbsp; The emails SENT from Bugzilla will work with
any mail reader that's reasonably current (newer than about 5 years old).&nbsp;
However, if you set up the email RECEPTION capabilities of Bugzilla, it's
important your users configure their mailreader to send mail as plain text
instead of HTML.&nbsp; HTML mail sent to Bugzilla looks horrible.
<p><i><b>Q:&nbsp;</b> If I just wanted to track certain bugs, as they go
through life, can I set it up to alert me via email whenever that bug changes,
whether it be owner, status or description etc.?</i>
<br><b><i>A:</i></b>&nbsp; Yes.&nbsp; You could, for instance, set yourself
up as the default QA contact for all bugs in a certain component of a product,
and would be CC'd on every single bug that came into that component.
<p><i><b>Q:&nbsp;</b> Does Bugzilla allow data to be imported and exported?
If I had outsiders write up a bug report using a MS Word bug template,
could that template be imported into "matching" fields? If I wanted to
take the results of a query and export that data to MS Excel, could I do
that?</i>
<br><b><i>A:&nbsp;</i></b> Rudimentary exporting ability is currently in
development, but is not ready for prime-time.&nbsp; Ditto for importing
data.&nbsp; However, it works against an industry-standard database (MySQL),
so anyone with a little SQL knowledge can create queries to import and
export any data they want.&nbsp; That's one of the reasons development
is going slow on import/export in Bugzilla: SQL already
<br>has it.&nbsp; It requires a certain level of familiarity with SQL though.
<p><i><b>Q:&nbsp; </b>Does Bugzilla allow fields to be added, changed or
deleted? If I want to customize the bug submission form to meet our needs,
can I do that using our terminology?</i>
<br><b><i>A:&nbsp;</i></b> This is really two questions in one.
<br>&nbsp; Bugzilla allows some fields to be added, changed, and deleted
with ease using the standard parameters.&nbsp; Realize, since you have
the code (and Bugzilla is really not terribly complicated), you can change
ANYTHING to behave however you want it.&nbsp; However, the more adjustments
you make to the code, the more painful your next upgrade will be as you
re-apply your custom
<br>patches.&nbsp; On the other hand, you can create your own HTML bug
submission form to make it look however you want.&nbsp; Check http://www.mozilla.org/quality/help/bug-form.html
for an example of what can be done creating a standard HTML bug submission
form.&nbsp; It makes some things much easier, and submitters never have
to have a clue what the actual names of your fields are -- just the people
who work with the bugs every day do.
<p><i><b>Q:&nbsp;</b> Has anyone converted Bugzilla to another language
to be used in other countries? Is it localizable?</i>
<br><b><i>A:</i></b>&nbsp; There are efforts underway to allow easy indo-european
localization of Bugzilla, but i18n (Kanji, Chinese, etc.) are a long way
off.&nbsp; So, to answer your question, right now, no.
<p><i><b>Q:</b> Can a user create and save reports? Can they do this in
Word format?&nbsp; Excel format?</i>
<br><b><i>A:</i></b>&nbsp; Yes, no, and no.
<p><i><b>Q:</b>&nbsp; Can a user re-run a report with a new project, same
query?</i>
<br><b><i>A:</i></b>&nbsp; Yes.
<p><i><b>Q:</b>&nbsp; Can a user modify an existing report and then save
it into another name?</i>
<br><b><i>A:&nbsp;</i></b> Umm...&nbsp; You'd save the report as HTML from
your browser.&nbsp; You can modify it however you want after that.
<p><i><b>Q:</b>&nbsp; Does Bugzilla have the ability to search by word,
phrase, compound search?</i>
<br><b><i>A:</i></b>&nbsp; You can search by just about ANYTHING.&nbsp;
If you know basic boolean formatting, you can go completely crazy and do
things without even using the query interface (create your own custom query
in the location bar in your browser).&nbsp; We routinely search here by
descriptions, subjects, dates, users, reporters, projects, severity, priority,
and anything else that strikes our fancy.
<p><i><b>Q:&nbsp;</b> Can the admin person establish separate group and
individual user privileges?</i>
<br><b><i>A:&nbsp;</i></b> Yes, using Bug Group Sentry.&nbsp; Right now,
it's not terribly granular, though: you can restrict users to editing bugs
assigned to them, reported by them, assigned to a particular product, etc.
but cannot restrict them based on product components, allow access to only
certain bugs outside their product, etc.
<p><i><b>Q:&nbsp;</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?</i>
<br><b><i>A:&nbsp;</i></b> If someone has a bug open and another person
attempts to write to the bug, you get a "mid-air collision" error in Bugzilla.&nbsp;
the second person is told who currently has the existing record locked,
and is told he/she cannot commit the bug until they have finished editing
it.&nbsp; You can specify a timeout value (ours is 30 minutes) where it
will break locks on the database,
<br>assuming someone just left the edit screen up.
<p><i><b>Q:&nbsp; </b>Are there any backup features provided?</i>
<br><b><i>A:</i></b>&nbsp; You have the ability to lock all users out of
the database for backups via the Bugzilla interface or using MySQL itself.&nbsp;
Once you've locked people out of the database, use some backup utility
standard to your operating system.
<p><i><b>Q:&nbsp;</b> Can users be on the system while a backup is in progress?</i>
<br><b><i>A:&nbsp;</i></b> If they make a change, you can end up with a
corrupt database on your backup tape.&nbsp; Bugzilla databases are relatively
small.&nbsp; We have over 5000 bugs in our database and a backup takes
about 45 seconds.&nbsp; We lock the MySQL database, copy the databases
over to a second hard drive, unlock the database, and that second hard
drive is covered by our standard backup procedures.
<br>&nbsp; You may wish to consider a robust backup solution, like ARCserveIT,
which will backup up open files by finding a time when it can lock the
file, copy it to memory, unlock it, and back it up.&nbsp; That product
is the "Open Files Agent", or OFA.&nbsp; That would allow you to never
have to down your database just to back it up -- but it's a good idea to
plan on a daily maintenance period in which it's backed up, for the time
when your database grows absolutely huge.
<p><i><b>Q:&nbsp;</b> What type of human resources are needed to be on
staff to install and maintain Bugzilla? Specifically, what type of skills
does the person need to have? I need to find out if we were to go with
Bugzilla, what types of individuals would we need to hire and how much
would that cost vs buying an "Out-of-the-Box" solution.</i>
<br><b><i>A:</i></b>&nbsp; My experience with "Out-of-the-Box" solutions
are these:
<ol>
<li>
They are very proprietary.&nbsp; Good luck getting data out of them into
something else unless you pay the company to create an export filter for
you.</li>
<li>
They generally have exhorbitant licensing fees.</li>
<li>
They tend to lock you in to a particular hardware or software platform</li>
<li>
They frequently cater much more to the management aspect of bug reporting
than using it as a day-to-day bug-tracking system.&nbsp; In other words,
managers/marketdroids love it, your programmers hate it.</li>
<li>
Forget interoperability with other programs.</li>
<li>
Many use sub-standard database management techniques.&nbsp; The commercial
solution I have in mind claims to have an "SQL database" when in fact they
wrote a small, crippled SQL query method to talk to a heirarchy of flat
text files.</li>
<li>
"Out-of-the-box" solutions just seem to suck most of the time.&nbsp; That's
just my opinion, though ;)</li>
</ol>
&nbsp; I'd recommend you hire a consultant to get Bugzilla working the
way you want, then it's "fire-and-forget".&nbsp; It takes virtually no
maintenance once it's up and running, if you don't wish to remain "on the
tip" of the latest development changes.&nbsp; However, finding a consultant
who already knows Bugzilla may be challenging, I think.
<br>&nbsp; If you want to hire someone to run it, I'd recommend someone
with strong UNIX systems administration skills and light Perl and HTML
skills.&nbsp; They don't need much Perl or HTML knowledge coming in --
Bugzilla is a pretty standard type of program to install, so a decent SysAdmin
can get it done easily.&nbsp; If you're using NT, you probably require
an NT admin with UNIX experience, very strong Perl skills, and light HTML
skills.&nbsp; Personally, I wouldn't hire someone JUST to maintain Bugzilla.&nbsp;
If you already have a network admin on staff, get him working on it.&nbsp;
A basic install requires 1-8 hours of work (depending on how familiar you
are with
<br>it).&nbsp; Setting up cool email gateways and tweaking configuration
parameters seems to suck up enormous amounts of time.
<p><i><b>Q:&nbsp;</b> What time frame are we looking at if we decide to
hire people to install and maintain the Bugzilla? Is this something that
takes hours or weeks to install and a couple of hours per week to maintain
and customize or is this a multi-week install process, plus a full time
job for 1 person, 2 people, etc?</i>
<br><b><i>A:</i></b>&nbsp; It's really hard to say -- it depends on the
level of commitment you want. If you want someone on-staff who's an absolute
expert on the system, plan on them working on it full-time for a week,
then 10 hours a week for a few months thereafter.&nbsp; If you just want
the thing to work and don't want to worry about how it works, just hire
that consultant for a week and call it
<br>good.
<br>&nbsp; Personally, I spend about 15 minutes a week maintaining our
installation Bugzilla.&nbsp; But since I'm the documentation person for
Bugzilla, I spend about 10 hours a week documenting, answering questions
like this, etc.
<br>&nbsp; If you get somebody to install Bugzilla, and they don't have
at least a basic installation mostly functional within a day on UNIX, or
within a week on NT, you probably should consider getting a different admin
to install it.
<p><i><b>Q:</b>&nbsp; Is there any licensing fee or other fees for using
Bugzilla? Any out-of-pocket cost other than the bodies needed as identified
above?</i>
<br><b><i>A:</i></b>&nbsp; No, Bugzilla is free software (free as in speech
and free as in beer) licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla
Public License</a>. However, depending on your level of expertise you may
wish to find a company that you can pay to maintain it for you if you really
need somebody to blame.&nbsp;&nbsp; MySQL, the database Bugzilla uses for
storage, asks for a licensing fee if you're going to use it for non-internal
commercial usage.&nbsp; The license is cheap (170 euro), but support can
be expensive depending on the level of support you desire.&nbsp; There
is also a version of Bugzilla available at http://bugzilla.redhat.com which
runs over top of Oracle; that's a pretty expensive product, but Oracle
support and proven scalability may be worth it to you.
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZINSTALLATION"></a>BUGZILLA INSTALLATION</h2></center>
<center>or "Divide by cucumber error.&nbsp; Please re-install universe
and reboot."</center>
<hr WIDTH="100%">
<br><b><i>Q:</b> How do I download and install Bugzilla?</i>
<br><b><i>A:</i></b> The README included with Bugzilla documents the installation
procedures much more thoroughly than I can do here. You can always find
a current copy of the README in the distribution tarballs available at
<a href="http://www.mozilla.org/projects/bugzilla/">http://www.mozilla.org/projects/bugzilla/
</a>.&nbsp;
This will eventually be documented in "The Bugzilla Installation Guide".
<p><b><i>Q:</i></b>&nbsp; <i>How do I install Bugzilla on Windows NT?</i>
<br><b><i>A:</i></b>&nbsp; That question is complex enough it deserves
<a href="#BZNT">its
own section</a>, below.
<p><i><b>Q:&nbsp; </b>Is there an easy way to change the Bugzilla cookie
name?</i>
<br><b><i>A:</i></b>&nbsp; At present, no.
<p><i><b>Q:&nbsp; </b>I want to set up a test installation to try out new
changes. How do I copy over data from my real database?</i>
<br><b><i>A:</i></b>&nbsp;
Copying the mysql files directly from one machine to another is likely
to confuse mysql. Its recommended to create a dump of the database
and to populate the new database from the dump.
<OL>
<LI>
Create a dump of the original database.
<BLOCKQUOTE><CODE>
%mysqldump bugs &gt; ~/bugs.dump
</CODE></BLOCKQUOTE>
<LI>
Copy the dump file to the new machine.
<LI>
Blow away the contents of the current bugzilla database
on the test machine.
<BLOCKQUOTE><CODE>
%mysql<BR>
mysql> drop database bugs;<BR>
mysql> create database bugs;<BR>
</CODE></BLOCKQUOTE>
<LI>
Import the bug database
<BLOCKQUOTE><CODE>
%mysql bugs &lt; bugs.dump
</CODE></BLOCKQUOTE>
</OL>
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZCONFIGURATION"></a>BUGZILLA CONFIGURATION</h2></center>
<center>or "make config. not war"</center>
<hr WIDTH="100%">
<br>&nbsp;
<blockquote>
<h3>
<a NAME="BZSECURITY"></a>SECURITY</h3>
</blockquote>
<b><i>Q:</i></b>&nbsp; <i>How do I completely disable MySQL security if
it's giving me problems (I've followed the instructions in the README!)?</i>
<br><b><i>A:</i></b>&nbsp; Run mysql like this: "mysqld --skip-grant-tables".&nbsp;
Please remember this makes mysql as secure as taping a $100 to the floor
of a football stadium bathroom for safekeeping.&nbsp; Before you plan to
put Bugzilla up for general consumption, you REALLY need to become familiar
with <a href="http://www.mysql.com/Manual_chapter/manual_Privilege_system.html#Privilege_system">MySQL
security</a>.
<p><b><i>Q:</i></b> <i>Are there any security problems with Bugzilla?</i>
<br><b><i>A:</i></b> Prior to 2.10, yes. For 2.10 and later, probably,
but we haven't discovered them yet.. You should upgrade to 2.10 and use
the following instructions from Chris Yeh's security advisory of 5/10/2000
if you are running a previous version of bugzilla. Chances are good a lot
of these permissions issues will make it into checksetup.pl.
<br>It is recommended that you closely examine permissions on your Bugzilla
installation. Make sure you are not running mysqld as root. Included is
one person's examination of their local Bugzilla installation, and how
they secured it:
<p><tt><pre><font size=-1>&nbsp; I closed-up some of the all-writeable files
and directories. The code itself had to be modified to keep it from making
directories and files world-writeable again... Once this was done, I felt
confident that this install of bugzilla was running securely. (We don't
run ftp, and mysql doesn't run as root). The setup we have is that apache
runs as user 'nobody'. Directories being written into via CGI are therefore
owner.group==nobody.nobody and only read/writable by user nobody, not world-writeable
as before ... The *.cgi/*.pl/etc scripts (source) are owned by root.root
and we can prevent CGI execution and HTTPD reading of the scripts by doing
chmod go-rwx.... Finally, we prevent reading of the writeable directories
by HTTP. (The security of this could further be improved by running bugzilla
as user 'bugzilla' with same privs as 'nobody' but at least a different
user than the webserver). I did the following to secure our install:</font></tt>
<br><tt><font size=-1>(1) cd /home/httpd/bugzilla ensure all files owned
root.root (other than ones in 'shadow' and 'data').</font></tt>
<br><tt><font size=-1>(2) chmod go-rwx backdoor.cgi ; chmod go-rwx *.sh
; chmod go-rwx printenv.cgi ; chmod go-rwx 0CGI.pl ; chmod go-rwx *~* ;
chown -R nobody.nobody data ; chmod -R go-rwx data ; chown -R nobody.nobody
shadow ; chmod -R go-rwx shadow</font></tt>
<br><tt><font size=-1>(3) in emacs, in *.pl and *.cgi and processmail in
bugzilla dir</font></tt>
<br><tt><font size=-1>(etags *.cgi *.pl processmail) ... do: (tags-query-replace
"umask 0" "umask 077" nil)</font></tt>
<br><tt><font size=-1>(tags-query-replace "umask(0)" "umask(077)" nil)</font></tt>
<br><tt><font size=-1>(tags-query-replace "0777" "0700" nil)</font></tt>
<br><tt><font size=-1>(tags-query-replace "0666" "0600" nil)</font></tt>
<br><tt><font size=-1>(4) re-enable bugzilla with /home/httpd/bug-track.conf
set to:</font></tt>
<br><tt><font size=-1>--------------------</font></tt>
<br><tt><font size=-1>AddHandler cgi-script .cgi</font></tt>
<br><tt><font size=-1>#</font></tt>
<br><tt><font size=-1># setup ExecCGI'able directory alias from which we
run</font></tt>
<br><tt><font size=-1># "bugzilla" under URL "bugs"</font></tt>
<br><tt><font size=-1>#</font></tt>
<br><tt><font size=-1>Alias /bugs/ "/home/httpd/bugzilla/"</font></tt>
<br><tt><font size=-1>&lt;Directory "/home/httpd/bugzilla"></font></tt>
<br><tt><font size=-1>Options Indexes ExecCGI</font></tt>
<br><tt><font size=-1>AllowOverride None</font></tt>
<br><tt><font size=-1>Order allow,deny</font></tt>
<br><tt><font size=-1>Allow from all</font></tt>
<br><tt><font size=-1>&lt;/Directory></font></tt>
<br><tt><font size=-1>--------------------</font></tt>
<br><tt><font size=-1>(5) add to /home/httpd/bug-track.conf (prevent cgi
from being</font></tt>
<br><tt><font size=-1>written into data or shadow directories, and prevent
contents from</font></tt>
<br><tt><font size=-1>being read):</font></tt>
<p><tt><font size=-1>--------------------</font></tt>
<p><tt><font size=-1>&lt;Directory "/home/httpd/bugzilla/data"></font></tt>
<br><tt><font size=-1>Options None</font></tt>
<br><tt><font size=-1>AllowOverride None</font></tt>
<br><tt><font size=-1>Deny from all</font></tt>
<br><tt><font size=-1>&lt;/Directory></font></tt>
<p><tt><font size=-1>&lt;Directory "/home/httpd/bugzilla/shadow"></font></tt>
<br><tt><font size=-1>Options None</font></tt>
<br><tt><font size=-1>AllowOverride None</font></tt>
<br><tt><font size=-1>Deny from all</font></tt>
<br><tt><font size=-1>&lt;/Directory></font></tt>
<p><tt><font size=-1>--------------------</font></tt>
<p><tt><font size=-1>(6) I noticed that my non-superuser-$PATH had wound
up in apache's GGI</font></tt>
<br><tt><font size=-1>environment... that $PATH included "." so that could
have been a security-exploit-in-waiting right there... so remember, when
restarting apache on servers, do (in tcsh anyways):</font></tt>
<br><tt><font size=-1>unsetenv *</font></tt>
<br><tt><font size=-1>prior to doing</font></tt>
<br><tt><font size=-1>apachectl stop</font></tt>
<br><tt><font size=-1>&lt;wait></font></tt>
<br><tt><font size=-1>apachectl start</font></tt>
</pre>
<p><i><b>Q:</b> I've implemented the security fixes mentioned in Chris
Yeh's security advisory of 5/10/2000 advising not to run MySQL as root,
and am running into problems with MySQL no longer working correctly.</i>
<br><b><i>A:</i></b> Mozilla.org had a problem getting enough file descriptors
once they stopped running mysql as root; they have many tables in their
database and had "shadowdb" turned on, which doubles the number of tables.
Terry mentioned in IRC: "I added the line "ulimit -n unlimited" to the
/bin/sh script in /etc/init.d that starts mysqld." That should fix ulimit
problems with MySQL.
<br>&nbsp;
<blockquote>
<h3>
<a NAME="BZEMAIL"></a>EMAIL</h3>
</blockquote>
<p><br><i><b>Q:</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?</i>
<br><b><i>A:</i></b> Easy. Add his/her login name to "bugzilla_home/data/nomail".
One entry per line. It must match the login name exactly.
<br><b>UPDATE</b>:&nbsp; I'm not sure this works as advertised...&nbsp;
Anyone know of any bugs with this solution?
<p><i><b>Q:</b> I'm evaluating/testing Bugzilla, and don't want it to send
email to anyone but me. How do I do it?</i>
<br><b><i>A:</i></b> According to Terry, the *correct* way to do this is,
in editparams.cgi: "Go tweak the param for the mail text, replacing "To:"
with "X-Real-To:", and replacing "Cc:" with "X-Real-CC", and add a "To:
(myemailaddress)". This param file can also be manually edited bugzilla_home/data/params
(but is not recommended).
<p><b><i>Q:</i></b> <i>I want whineatnews.pl to whine at something more,
or other than, only new bugs. How do I do it?</i>
<br><b><i>A:</i></b> Try Klaas Freitag's excellent patch for "whineatassigned"
functionality. You can find it at <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=6679">http://bugzilla.mozilla.org/show_bug.cgi?id=6679</a>.
Realize that as Bugzilla progresses, this patch may go out of date. At
present, I know of no plans to integrate this functionality into the core
Bugzilla distribution.
<p><b><i>Q:</i></b> <i>I don't like/want to use Procmail to handle email
to bugzilla. What else can I use?</i>
<br><b><i>A:</i></b>&nbsp; Bugzilla can work with alternate MTA's/filters,
but there is no documentation how.
<p><b><i>Q:</i></b> <i>How do I set up the email interface to submit/change
bugs via email?</i>
<br><b><i>A:</i></b> Download the tarball or CVS and extract it (if applicable).
CD to the (bugzilla_home)/contrib directory, and read the README contained
therein. Seth will be pulling his changes (the bugzilla email submission
stuff) into the main tree sometime as soon as he gets the OK from the powers-that-be.
Procmail is included by default on most Linux distributions, and if you
use the bugzilla.procmailrc file as the .procmailrc for the user bugzilla
runs as, it works pretty quickly.
<br>My setup is a little different from the standard way of doing things.
Here's what I do:
<ol>
<li>
cd (bugzilla_home, wherever that is)</li>
<li>
chmod 775 contrib</li>
<li>
chmod 644 contrib/*</li>
<li>
chmod 755 contrib/*.pl</li>
<li>
chmod 777 data</li>
<li>
chmod -R 775 data/mimedump-tmp</li>
<li>
chmod -R 775 data/mining</li>
<li>
vi /etc/aliases: add&nbsp; 'bugs: | "/usr/bin/procmail -m /etc/procmailrcs/bugs"'</li>
<li>
cp /usr/local/bugzilla/contrib/bugzilla.procmailrc /etc/procmailrcs/bugs</li>
<li>
chmod 775 /etc/procmailrcs/bugs</li>
<li>
And, in my case, since we use Linux-Mandrake most everywhere (which includes
some extra security options), I also had to "ln -s /usr/bin/procmail /etc/smrsh/procmail.&nbsp;
smrsh is a way to prevent people from running any applications over Sendmail
unless you specify it in this directory.&nbsp; YMMV.</li>
</ol>
If you've followed the README, you should be good to go; send an email
to "bugs@my.host.name" and watch it work.
<p><b><i>Q:</i></b> <i>Email takes FOREVER to reach me from bugzilla --
it's extremely slow. What gives?</i>
<br><b><i>A:</i></b> If you are using an alternate Mail Transport Agent
(MTA other than sendmail), make sure the options given in the "processmail"
script for all instances of "sendmail" are correct for your MTA. If you
are using Sendmail, you may wish to delete the "-ODeliveryMode=deferred"
option in the "processmail" script for every invocation of "sendmail".
(Be sure and leave the "-t" option, though!)&nbsp; This option is put into
the code to handle the massive mail delivery load bugzilla.mozilla.org
gets -- but most of us don't need it.&nbsp; We're lobbying to make it a
settable parameter.&nbsp; Realize if you turn this off, and plan on sending
more than a few hundred email messages a day, people may experience nasty
slowdowns when submitting changes to bugs because Sendmail insists on delivering
it *that instant*.
<p><b><i>Q:</i></b> <i>Email never reaches me from bugzilla changes! What
gives?</i>
<br><b><i>A:</i></b> Chances are really good Bugzilla expects "sendmail"
to live somewhere else than you have it installed. Make sure your "sendmail"
lives in, or has a symlink to, "/usr/lib/sendmail".
<br>&nbsp;
<blockquote>
<h3>
<a NAME="BZDATABASE"></a>DATABASE</h3>
</blockquote>
<b><i>Q:</i></b> <i>I've heard Bugzilla can be used with Oracle?</i>
<br><b><i>A:</i></b> <a href="http://bugzilla.redhat.com/">Red Hat Bugzilla</a>
works with Oracle.&nbsp; The current mozilla.org version takes some work,
though.
<p><b><i>Q:</i></b> <i>Bugs are missing from queries, but exist in the
database (and I can pull them up by specifying the bug ID). What's wrong?</i>
<br><b><i>A:</i></b> You've almost certainly enabled the "shadow database",
but for some reason it hasn't been updated for all your bugs. This is the
database against which queries are run, so that really complex or slow
queries won't lock up portions of the database for other users. You can
turn off the shadow database in editparams.cgi. If you wish to continue
using the shadow database, then as your "bugs" user run "./syncshadowdb
-syncall" from the command line in the bugzilla installation directory
to recreate your shadow database. After it finishes, be sure to check the
params and make sure that "queryagainstshadowdb" is still turned on. The
syncshadowdb program turns it off if it was on, and is supposed to turn
it back on when completed; that way, if it crashes in the middle of recreating
the database, it will stay off forever until someone turns it back on by
hand. Apparently, it doesn't always do that yet.
<p><b>Q:</b> <i>I think my database might be corrupted, or contain invalid
entries. What do I do?</i>
<br>A: Run the "sanity check" utility (./sanitycheck.cgi in the bugzilla_home
directory) to see! If it all comes back, you're OK.&nbsp; 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.&nbsp; If it can't auto-recover,
I hope you're familiar with mysqladmin commands or have installed another
way to manage your database...
<p><b><i>Q:</i></b> <i>I want to manually edit some entries in my database.
How?</i>
<br><b>A:</b> There is no facility in Bugzilla itself to do this. It's
also generally not a smart thing to do if you don't know exactly what you're
doing. However, if you understand SQL you can use the mysqladmin utility
to manually insert, delete, and modify table information. Personally, I
hate dealing with big SELECT statements and such, so I use "<a href="http://www.phpwizard.net/phpMyAdmin/">phpMyAdmin</a>",
to do all my database administration. You have to compile a PHP module
with MySQL support to make it work, but it's very clean and easy to use.&nbsp;
There are other utilities that work, as well, but I am lacking URL's.
<p><b>Q:</b> <i>MySQL GPL edition doesn't seem to work...</i>
<br><b><i>A:</i></b> Right! It doesn't! It's too old. Download the latest
tarball or rpm from <a href="http://www.mysql.com/">www.mysql.com</a> if
you want this to work.
<p><b><i>Q:</i></b> <i>I think I've set up MySQL permissions correctly,
but bugzilla still can't connect.</i>
<br><b><i>A:</i></b> Try running MySQL from its binary: "mysqld --skip-grant-tables".
This will allow you to completely rule out grant tables as the cause of
your frustration. However, I do not recommend you run it this way on a
regular basis, unless you really want your web site defaced and your machine
cracked...
<p><b><i>Q:</i></b> <i>How do I synchronize bug information among multiple
different Bugzilla databases?</i>
<br><b><i>A:</i></b> Currently, there is no way to do this. However, a
discussion about this has raged on and off in the newsgroup -- feel free
to whip something up, put it out there, and see how it's received. We're
at the point where most folks are sick of discussion. If you can create
a working model with working code, that's 90% of the battle.
<p><i><b>Q:&nbsp; </b>I get bizarre errors when trying to submit data,
particularly problems with "groupset".&nbsp; What gives?</i>
<br>A:&nbsp; If you're sure your MySQL parameters are correct, you might
want turn "strictvaluechecks" OFF in editparams.cgi.&nbsp; If you have
"usebugsentry" set "On", you also cannot submit a bug as readable by more
than one group with "strictvaluechecks" ON.
<p><b><i>Q:&nbsp;</i></b> Even after I delete bugs, the long descriptions
show up?
<br><b><i>A:</i></b>&nbsp; Delete everything from $BUZILLAHOME/shadow.&nbsp;
Bugzilla creates shadow files there, with each filename corresponding to
a
<br>bug number.&nbsp; Also be sure to run syncshadowdb to make sure, if
you are using a shadow database, that the shadow database is current.
<br>&nbsp;
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZNT"></a>BUGZILLA AND WINDOWS NT</h2></center>
<center>or "Welcome to Microsoft, where we put the 'NT' in "CAN'T"!</center>
<hr WIDTH="100%">
<p>Right now, running Bugzilla under Windows NT is an extremely hairy process.
I'll provide the instructions below, but please don't ask me how it's done
-- getting this working on NT involves a lot of patience, skill, and PFM
(Pure Fscking Magic). As far as I know, nobody has been able to get a recent
(2.8 or post) version of Bugzilla running on NT. If you know different,
or can provide updated instructions to those provided below, please email
<a href="mailto:mbarnson@excitehome.net">Matthew
Barnson</a> with details.
<br>These are hints straight out of the newsgroup discussions.&nbsp; I
can't offer much more editing or insight, since I don't manage Bugzilla
on any NT boxes.
<p><b><i>Q:</i></b> <i>What is the easiest way to run Bugzilla on NT?</i>
<br><b><i>A:</i></b> Remove NT. Install Linux. Slap a label on the box
that says "Windows NT." The boss will never know the difference, except
perhaps wonder why the machine isn't crashing anymore.
<p><b><i>Q:</i></b> <i>CGI's are failing with a "something.cgi is not a
valid Windows NT application" error. Why?</i>
<br><b><i>A:</i></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 &lt;path>\perl.exe
%s %s as the executable.
<br>...or this tip from Microsoft's web site...
<br>"Set application mappings. In the ISM, map the extension for the script
file(s) to the executable for the script interpreter. For example, you
might map the extension .py to Python.exe, the executable for the Python
script interpreter. Note For the ActiveState Perl script interpreter, the
extension .pl is associated with PerlIS.dll by default. If you want to
change the association of .pl to perl.exe, you need to change the application
mapping. In the mapping, you must add two percent (%) characters to the
end of the pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe
%s %s"
<p><b><i>Q:</i></b> <i>Can I have some general instructions on how to make
this work?</i>
<br><b><i>A:</i></b> Sure. Your Mileage May Vary. Contact <a href="mailto:andrew_lahser@merck.com">Andrew
Lahser&nbsp; </a>for the patches mentioned.
<ol>
<li>
#!C:/perl/bin/perl had to be added to every perl file.</li>
<li>
Converted to Net::SMTP to handle mail messages instead of /usr/bin/sendmail.</li>
<li>
The crypt function isn't available on Windows NT (at least none that I
am aware), so I made encrypted passwords = plaintext passwords.</li>
<li>
The system call to diff had to be changed to the Cygwin diff.</li>
<li>
This was just to get a demo running under NT, it seems to be working good,
and I have inserted almost 100 bugs from another bug tracking system. Since
this work was done just to get an in-house demo, I am NOT planning on making
a patch for submission to Bugzilla. If you would like a zip file, let me
know.</li>
</ol>
<b><i>Q:</i></b> <i>Hmm, couldn't figure it out from the general instructions
above.&nbsp; How about step-by-step?</i>
<br><b><i>A:</i></b> Sure! Here ya go!
<ol>
<li>
Install IIS 4.0 from the NT Option Pack #4.</li>
<li>
Download and install Active Perl.</li>
<li>
Install the Windows GNU tools from Cygwin. Make sure to add the bin directory
to your system path. (Everyone should have these, whether they decide to
use Bugzilla or not. :-) )</li>
<li>
Download relevant packages from ActiveState at http://www.activestate.com/packages/zips/.
+ DBD-Mysql.zip</li>
<li>
Extract each zip file with WinZip, and install each ppd file using the
notation: ppm install &lt;module>.ppd</li>
<li>
Install Mysql.&nbsp; *Note: If you move the default install from c:\mysql,
you must add the appropriate startup parameters to the NT service. (ex.
-b e:\\programs\\mysql)</li>
<li>
Download any Mysql client. http://www.mysql.com/download_win.html</li>
<li>
Setup MySql. (These are the commands that I used.)</li>
<ol>&nbsp;
<br>I. Cleanup default database settings.
<br>&nbsp;C:\mysql\bin\mysql -u root mysql
<br>&nbsp;mysql> DELETE FROM user WHERE Host='localhost' AND User='';
<br>&nbsp;mysql> quit
<br>C:\mysql\bin\mysqladmin reload
<p>II. Set password for root.
<br>&nbsp;C:\mysql\bin\mysql -u root mysql
<br>&nbsp;mysql> UPDATE user SET Password=PASSWORD('new_password')
<br>&nbsp;WHERE user='root';
<br>&nbsp;mysql> FLUSH PRIVILEGES;
<br>&nbsp;mysql> quit
<br>&nbsp;C:\mysql\bin\mysqladmin -u root reload
<p>III. Create bugs user.
<br>&nbsp;C:\mysql\bin\mysql -u root -p
<br>&nbsp;mysql> insert into user (host,user,password) values('localhost','bugs','');
<br>&nbsp;mysql> quit
<br>&nbsp;C:\mysql\bin\mysqladmin -u root reload
<p>IV. Create the bugs database.
<br>&nbsp;C:\mysql\bin\mysql -u root -p
<br>&nbsp;mysql> create database bugs;
<p>V. Give the bugs user access to the bugs database.
<br>&nbsp;mysql> insert into db (host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv)
values('localhost','bugs','bugs','Y','Y','Y','Y','Y','N')
<br>&nbsp;mysql> quit
<br>&nbsp;C:\mysql\bin\mysqladmin -u root reload</ol>
<li>
Run the table scripts to setup the bugs database.</li>
<li>
Change CGI.pm to use the following regular expression because of differing
backslashes in NT versus UNIX.</li>
<ul>
<li>
$0 =~ m:[^\\]*$:;</li>
</ul>
<li>
Had to make the crypt password = plain text password in the database. (Thanks
to Andrew Lahser" &lt;andrew_lahser@merck.com>" on this one.) The files
that I changed were:</li>
<ul>
<li>
globals.pl</li>
<li>
CGI.pl</li>
<li>
alternately, you can try commenting all references to 'crypt' string and
replace them with similar lines but without encrypt() or crypr() functions
insida all files.</li>
</ul>
<li>
Replaced sendmail with Windmail. Basically, you have to come up with a
sendmail substitute for NT. Someone said that they used a Perl module (Net::SMTP),
but I was trying to save time and do as little Perl coding as possible.</li>
<li>
Added "perl" to the beginning of all Perl system calls that use a perl
script as an argument and renamed processmail to processmail.pl.</li>
<li>
In processmail.pl, I added binmode(HANDLE) before all read() calls. I'm
not sure about this one, but the read() under NT wasn't counting the EOLs
without the binary read."</li>
</ol>
<b><i>Q:</i></b> <i>I'm having trouble with the perl modules for NT not
being able to talk to to the database...</i>
<br><b><i>A:</i></b> Your modules may be outdated or inaccurate...
<ol>
<li>
Try hitting http://www.activestate.com/ActivePerl</li>
<li>
Download ActivePerl from there.</li>
<br>After that:
<li>
go to your prompt</li>
<li>
type 'ppm'</li>
<li>
PPM> install DBI DBD-mysql GD</li>
</ol>
I reckon TimeDate and Data::Dumper come with the activeperl. You can check
the ActiveState site for packages for installation through PPM. [http://www.activestate.com/Packages/]
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZUSE"></a>BUGZILLA USE</h2></center>
<center>or "Keyboard: Device used for entering errors into computer"</center>
<hr WIDTH="100%">
<p><b><i>Q:</i></b> <i>How do I use "new email tech"?</i>
<br><b><i>A:</i></b> First, go to editparams.cgi and make sure the "newemailtech"
option is set to "on", then set the "new email tech" option in your personal
user prefs "on".
<p><b>Q:</b> <i>How do I make "new email tech" the default for my entire
site?</i>
<br><b><i>A:</i></b> You need to alter the user preferences table using
one of the tools mentioned in the <a href="#BZDATABASE">DATABASE section</a>.
Change the default value for "newemailtech" to "1", and change any user
values you think apply.
<p><b><i>Q:</i></b> <i>I'm confused by the behavior of the "accept" button
in the Show Bug form. Why doesn't it assign the bug to me when I accept
it?</i>
<br><b><i>A:</i></b> Right now, how this should behave is the subject of
considerable discussion on the mailing list and in the bug database. There
is a <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=25273">patch
</a>for
this, and a lot of talk. Tara has this to say:
<blockquote>"I think I put this in the main bug itself, but I have to admit
I *really* don't like the whole "accept" thing at this point. I especially
am completely against anything that changes the current functionality,
and am only moderately placated by the idea of seperate additional functionality.
IMHO Bugzilla is getting so kludgy that all we're doing is making things
harder and harder to understand and maintain, not to mention adding additional
fields to an already almost overwhelming query form. For now I'm going
to have to make people who want this suffer through sharing patches until
I come up with a course of action on it."</blockquote>
I'm working on a real patch for this now that allows you to select which
behavior you want vi editparams.cgi!
<p><b>Q:&nbsp; </b><i>How do I enable voting?</i>
<br><b><i>A:</i></b>&nbsp; Make sure you're using at least version 2.10.&nbsp;
It's available via editparams.cgi.
<p><i><b>Q:&nbsp; </b>I can't upload anything into the database via the
"Create Attachment" link.&nbsp; What am I doing wrong?</i>
<br><b><i>A:</i></b>&nbsp; The most likely cause is a very old browser
or a browser that is incompatible with file upload via POST.&nbsp; Download
the latest Netscape, Microsoft, or Mozilla browser to handle uploads correctly.
<p><i><b>Q:</b>&nbsp; Email submissions to Bugzilla that have attachments
end up asking me to save it as a "cgi" file.</i>
<br><b><i>A:&nbsp;</i></b> Right now, submissions via email only have one
mime-type "applications/octet-stream".&nbsp; Just save the file and look
at it in your favorite editor, you'll be fine (even though the name of
it will be "showattachment.cgi").
<p><i><b>Q:&nbsp;</b> Argh, I forgot my password!</i>
<br><b><i>A:</i></b>&nbsp; No problem.&nbsp; Visit the query page, click
the "log in" button at the bottom, then just type in your email address
and click the "Email me a password" button.&nbsp; Your password will arrive
in your inbox in moments.
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZKNOWNBUGS"></a>BUGZILLA KNOWN BUGS</h2></center>
<center>or "These are all 'known bugs'. Whats the frickin' problem?"</center>
<hr WIDTH="100%">
<p><b><i>Q:</i></b>&nbsp; <i>What bugs currently exist in bugzilla?</i>
<br><b><i>A:</i></b>&nbsp; The answer is too long (and easily outdated)
to keep in this FAQ.&nbsp; However, bugzilla is made for this, so just
try <a href="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Webtools&component=Bugzilla&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&order=bugs.bug_id">this
link</a>.
<p><b><i>Q:</i></b>&nbsp; <i>Groups don't quite work right yet...</i>
<br><b><i>A:</i></b>&nbsp; Correct.&nbsp; That's a current area of hacking.&nbsp;
You may want to check out Loki's version of Bugzilla for some patches that
support the group functionality you need.
<p><i><b>Q:</b>&nbsp; Why can't I set "target milestone" to something other
than a number?</i>
<br><b><i>A:</i></b>&nbsp; The concept of a target milestone was initially
that each group would have their own definition for what each target milestone
number is, but share a common pool of numbers.&nbsp; Unfortunately, this
concept has proven confusing for new and experienced users alike.&nbsp;
Someone needs to pick up the ball and run with "target milestone" so it
has the following features:
<ul>
<li>
Each Product can have milestone names independent of the other projects</li>
<li>
Each Product can use numbers or names for arbitrary milestones</li>
<li>
There must be a clean way to define these milestones without a ridiculously
complex params file</li>
</ul>
<i><b>Q:&nbsp; </b>Why shouldn't I delete bugs?</i>
<br><b><i>A:</i></b>&nbsp; If you allow bug deletion, you run the risk
of screwing up dependencies in your database.&nbsp; While these aren't
always critical, it's sometimes tought to repair.&nbsp; I recommend you
do not allow bug deletion.
<br>&nbsp;
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="BZHACKING"></a>BUGZILLA HACKING</h2></center>
<center>or "Who's this General Failure guy, and why is he trying to read
my hard drive?"</center>
<hr WIDTH="100%">
<p><b><i>Q:</i></b> <i>What's the best way to submit patches?&nbsp; What
guidelines should I follow.</i>
<br><b><i>A:</i></b>&nbsp; Tara summed this FAQ up nicely:
<blockquote>"Well, I guess I'd better answer this, as I'm the one who's
supposed to be in charge of this stuff...
<br>I say, if you have a patch that is a bug fix or feature enhancement,
log a bug and attach the patch.&nbsp; I've inherited almost 300 bugs from
the ownership transition, so I can't guarantee how soon I'll get to it,
but I'm steadily working my way through the bug list and trying to pay
special attention to all bugs that do come with patches. Secondly, if you'd
like faster feedback or better exposure, I'd post the bug number URL to
the newsgroup so more people can have a look and provide feedback, suggestions,
etc.&nbsp; That way I think all bases are covered. Speaking for myself
in trying to be a good module owner, getting a new bug makes sure I
<br>don't lose track of your patch, so this makes it easier for me."</blockquote>
<i><b>Q:</b></i>&nbsp; <i>What does the above mean for me when I want to
submit a bug?</i>
<br><b><i>A:</i></b>&nbsp; Follow this procedure:
<ol>
<li>
<a href="http://bugzilla.mozilla.org/enter_bug.cgi?product=Webtools">Enter
a bug</a> into bugzilla.mozilla.org for the "Webtools" product, "Bugzilla"
component.</li>
<li>
Upload your patch as a unified DIFF (or new source file) by clicking "Create
a new attachment" link on the bug page you've just created, and include
any descriptions of database changes you may make, into the bug ID you
submitted in step #1.</li>
<li>
Announce your patch and the associated URL (http://bugzilla.mozilla.org/show_bug.cgi?id=XXXX)
for discussion in the <a href="news://news.mozilla.org/netscape.public.mozilla.webtools">newsgroup</a>
(netscape.public/mozilla.webtools).&nbsp; You'll get a really good, fairly
immediate reaction to the implications of your patch, which will also give
Tara an idea how well-received the change would be.</li>
<li>
If it passes muster with minimal modification, Tara will put it into CVS.&nbsp;
If you submit enough really good patches (I have no idea how much "enough"
is), you may be granted CVS write access.</li>
<li>
Bask in the glory of the fact that YOU helped write the most successful
open-source bug-tracking software on the planet :)</li>
</ol>
<blockquote>
<h3>
<a NAME="BZAPI"></a>API</h3>
</blockquote>
<b><i>Q:</i></b>&nbsp; <i>I want to add a new form or module to Bugzilla.&nbsp;
Where can I find API documention?</i>
<br><b><i>A:</i></b>&nbsp; Right now, there really is none.&nbsp; I plan
on writing copious documentation for what each file and module does, as
well how to program new .cgi's to use the functionality and present alternate
interfaces.&nbsp; Right now, use the source.
<p><b><i>Q:</i></b> What are the most-needed features?
<br><b><i>A:</i></b>&nbsp; Check out the Bugzilla Development Roadmap at
<a href="http://www.mozilla.org/projects/bugzilla/roadmap.html">http://www.mozilla.org/projects/bugzilla/roadmap.html</a>
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
<a NAME="MAINTAINER"></a>MAINTAINER &amp; THIS DOCUMENT</h2></center>
<hr WIDTH="100%">
<p><i><b>Q:&nbsp; </b>Why do you use this antiquated format for maintaining
the FAQ, instead of FAQ-O-Matic or (insert cool FAQ program here)</i>
<br><b><i>A:&nbsp; </i></b>I'm actively seeking a better way to maintain
this.&nbsp; It's easily maintainable in its current form, but as it grows
it will become much less so.&nbsp; I'm interested in more options, but
don't want to lose control of the FAQ or be subjected to a page that's
a nest of hyperlinks and unprintable.&nbsp; The FAQ-O-Matic tends to create
FAQ's that cannot be easily printed as one page, and not easily portable
to another format (particulary PDF).&nbsp; One must be able to maintain
the FAQ as a single, printable document; if you know of a good system that
will fit the bill, let me know.
<p><b><i>Q:</i></b> <i>Who are you?</i>
<br><b><i>A:</i></b>&nbsp; I'm Matthew P. Barnson, manager of Systems Administration
for <a href="http://www.excitestores.com">Excite Business Applications
</a>and
part-time Bugzilla hacker.
<p><b><i>Q:</i></b> <i>Why are you doing this?</i>
<br><b><i>A:</i></b>&nbsp; I have nothing better to do with my time!
<br>&nbsp; Seriously, I run a fairly large private Bugzilla database.&nbsp;
I felt the need for some documentation to help other SysAdmins run this
thing.&nbsp; There was nothing out there like it, so I decided to improve
what I'd written for internal documentation with more general questions
and release it to the public under the MPL.&nbsp; I feel like the Mozilla
Webtools are far more in need of good documentation and a major architectural
rewrite than they are more hacks to support more features.&nbsp; Since
I'm not qualified to write more than trivial hacks for Bugzilla if I were
to code, I figured doing some documentation would be A Good Thing.
<p><b><i>Q:</i></b>&nbsp; <i>How are you affiliated with <a href="http://www.mozilla.org">Mozilla.org</a>?</i>
<br><b><i>A:&nbsp;</i></b> I'm not, except I've been appointed the "Docs
Knight" for Bugzilla, and contribute documentation to other webtools.
<p><b><i>Q:</i></b>&nbsp; <i>Where do those lame quotes in each section
heading come from?</i>
<br><b><i>A:</i></b>&nbsp; Check out <a href="http://bugzilla.mozilla.org/data/comments">http://bugzilla.mozilla.org/data/comments</a>.&nbsp;
These are random quips added by people who use bugzilla.&nbsp; I find them
endlessly entertaining.
<p><i><b>Q:&nbsp;</b> What other documentation is available?</i>
<br><b><i>A:&nbsp;</i></b> I am personally attempting to address the numerous
documentation needs, including an Installation guide (based upon the README),
Administration Guide, Troubleshooting guide, Database Management Guide,
and Configuration Guide.
<br>&nbsp;
<p>
<hr WIDTH="100%">
<center>
<h2>
THE END</h2></center>
<hr WIDTH="100%">
</body>
</html>
Welcome to the Bugzilla documentation project!
You'll find these directories and files here:
README.docs # This README file
html/ # The compiled HTML docs from SGML sources (do not edit)
sgml/ # The original SGML doc sources (edit these)
txt/ # The compiled text docs from SGML sources
ps/ # The compiled PostScript docs from SGML sources
pdf/ # The compiled Adobe PDF docs from SGML sources
A note about SGML:
The documentation is written in DocBook 3.1/4.1 SGML, and attempts to adhere
to the LinuxDoc standards everywhere applicable (http://www.linuxdoc.org).
Please consult "The LDP Author Guide" at linuxdoc.org for details on how
to set up your personal environment for compiling SGML files.
If you need to make corrections to typographical errors, or other minor
editing duties, feel free to use any text editor to make the changes. SGML
is not rocket science -- simply make sure your text appears between
appropriate tags (like <para>This is a paragraph</para>) and we'll be fine.
If you are making more extensive changes, please ensure you at least validate
your SGML before checking it in with something like:
nsgmls -s Bugzilla-Guide.sgml
When you validate, please validate the master document (Bugzilla-Guide.sgml)
as well as the document you edited to ensure there are no critical errors.
The following errors are considered "normal" when validating with nsgmls
DTDDECL catalog entries are not supported
"DOCTYPE" declaration not allowed in instance
The reason these occur is that free sgml validators do not yet support
the DTDDECL catalog entries, and we've included DOCTYPE declarations in
entities referenced from Bugzilla-Guide.sgml so these entities can compile
individually, if necessary. I suppose I ought to comment them out at some
point...
Thanks for taking the time to read these notes and consulting the
documentation. Please address comments and questions to the newsgroup:
news://news.mozilla.org/netscape/public/mozilla/webtools .
Sincerely,
Matthew P. Barnson
The Bugzilla "Doc Knight"
barnboy@trilobyte.net
<HTML
><HEAD
><TITLE
>About This Guide</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="NEXT"
TITLE="Purpose and Scope of this Guide"
HREF="aboutthisguide.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="index.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="aboutthisguide.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="ABOUT"
>Chapter 1. About This Guide</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1.1. <A
HREF="aboutthisguide.html"
>Purpose and Scope of this Guide</A
></DT
><DT
>1.2. <A
HREF="copyright.html"
>Copyright Information</A
></DT
><DT
>1.3. <A
HREF="disclaimer.html"
>Disclaimer</A
></DT
><DT
>1.4. <A
HREF="newversions.html"
>New Versions</A
></DT
><DT
>1.5. <A
HREF="credits.html"
>Credits</A
></DT
><DT
>1.6. <A
HREF="contributors.html"
>Contributors</A
></DT
><DT
>1.7. <A
HREF="feedback.html"
>Feedback</A
></DT
><DT
>1.8. <A
HREF="translations.html"
>Translations</A
></DT
><DT
>1.9. <A
HREF="conventions.html"
>Document Conventions</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="index.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="aboutthisguide.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The Bugzilla Guide</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Purpose and Scope of this Guide</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Purpose and Scope of this Guide</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="NEXT"
TITLE="Copyright Information"
HREF="copyright.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="about.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="copyright.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="ABOUTTHISGUIDE"
>1.1. Purpose and Scope of this Guide</A
></H1
><P
> This document was started on September 17, 2000
by Matthew P. Barnson after a great deal of procrastination updating the Bugzilla FAQ,
which I left untouched for nearly half a year.
After numerous complete rewrites and reformatting, it is the document you see today.
</P
><P
> Despite the lack of updates, Bugzilla is simply the best piece of bug-tracking software
the world has ever seen. This document is intended to be the comprehensive guide to
the installation, administration, maintenance, and use of the Bugzilla bug-tracking system.
</P
><P
> This release of the Bugzilla Guide is the <EM
>2.11</EM
> release.
It is so named that it may match the current version of Bugzilla.
The numbering tradition stems from that used for many free software projects,
in which <EM
>even-numbered</EM
> point releases (1.2, 1.14, etc.)
are considered "stable releases", intended for public consumption; on the other
hand, <EM
>odd-numbered</EM
> point releases (1.3, 2.09, etc.)
are considered unstable <EM
>development</EM
> releases intended
for advanced users, systems administrators, developers, and those who enjoy
a lot of pain.
</P
><P
> Newer revisions of the Bugzilla Guide will follow the numbering conventions of
the main-tree Bugzilla releases, available at
<A
HREF="http://www.mozilla.org/bugs/source.html"
TARGET="_top"
>Mozilla.org</A
>, with
the exception that intermediate releases will have a minor revision number
following a period. For instance, if the current version of Bugzilla is 4.2,
the current "stable" version of the Bugzilla guide, in, say, it's fifth revision,
would be numbered "4.2.5". Got it? Good.
</P
><P
> I wrote this in response to the enormous demand for decent Bugzilla documentation.
I have incorporated instructions from the Bugzilla README, Frequently Asked Questions,
Database Schema Document, and various mailing lists to create it.
Chances are, there are glaring errors in this documentation; please contact
<TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:barnboy@trilobyte.net"
>barnboy@trilobyte.net</A
>&#62;</TT
> to correct them.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="about.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="copyright.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>About This Guide</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Copyright Information</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Administering Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Win32 (Win98+/NT/2K) Installation"
HREF="readme.windows.html"><LINK
REL="NEXT"
TITLE="Post-Installation Checklist"
HREF="postinstall-check.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="readme.windows.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="postinstall-check.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="ADMINISTRATION"
>Chapter 3. Administering Bugzilla</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>3.1. <A
HREF="postinstall-check.html"
>Post-Installation Checklist</A
></DT
><DT
>3.2. <A
HREF="useradmin.html"
>User Administration</A
></DT
><DD
><DL
><DT
>3.2.1. <A
HREF="useradmin.html#DEFAULTUSER"
>Creating the Default User</A
></DT
><DT
>3.2.2. <A
HREF="useradmin.html#MANAGEUSERS"
>Managing Other Users</A
></DT
></DL
></DD
><DT
>3.3. <A
HREF="programadmin.html"
>Product, Component, Milestone, and Version Administration</A
></DT
><DD
><DL
><DT
>3.3.1. <A
HREF="programadmin.html#PRODUCTS"
>Products</A
></DT
><DT
>3.3.2. <A
HREF="programadmin.html#COMPONENTS"
>Components</A
></DT
><DT
>3.3.3. <A
HREF="programadmin.html#VERSIONS"
>Versions</A
></DT
><DT
>3.3.4. <A
HREF="programadmin.html#MILESTONES"
>Milestones</A
></DT
><DT
>3.3.5. <A
HREF="programadmin.html#VOTING"
>Voting</A
></DT
><DT
>3.3.6. <A
HREF="programadmin.html#GROUPS"
>Groups and Group Security</A
></DT
></DL
></DD
><DT
>3.4. <A
HREF="security.html"
>Bugzilla Security</A
></DT
></DL
></DIV
><FONT
COLOR="RED"
>Or, I just got this cool thing installed. Now what the heck do I do with it?</FONT
><P
>So you followed the README isntructions to the letter, and
just logged into bugzilla with your super-duper god account and you are sitting at the query
screen. Yet, you have nothing to query. Your first act of bisuness needs to be to setup the
operating parameters for bugzilla.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="readme.windows.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="postinstall-check.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Win32 (Win98+/NT/2K) Installation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Post-Installation Checklist</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Bonsai</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"><LINK
REL="PREVIOUS"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"><LINK
REL="NEXT"
TITLE="CVS"
HREF="cvs.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="integration.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cvs.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BONSAI"
>5.1. Bonsai</A
></H1
><P
>We need Bonsai integration information.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="integration.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cvs.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="integration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>CVS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Bug Issues</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="Description Flags and Tracking Bugs"
HREF="trackingbugs.html"><LINK
REL="NEXT"
TITLE="Database Integrity"
HREF="dbaseintegrity.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trackingbugs.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="dbaseintegrity.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BUGPROBS"
>6.4. Bug Issues</A
></H1
><P
><P
CLASS="LITERALLAYOUT"
>1.&nbsp;Inline&nbsp;Bug&nbsp;Changes<br>
<br>
Why&nbsp;do&nbsp;I&nbsp;see&nbsp;so&nbsp;many&nbsp;"moving&nbsp;to&nbsp;M5"&nbsp;and&nbsp;"reassigning&nbsp;to&nbsp;blahblah"<br>
messages,&nbsp;and&nbsp;in&nbsp;other&nbsp;circumstances&nbsp;none&nbsp;are&nbsp;entered?&nbsp;&nbsp;Why&nbsp;aren't&nbsp;these<br>
automatically&nbsp;generated?&nbsp;&nbsp;A&nbsp;comment&nbsp;should&nbsp;be&nbsp;only&nbsp;necessary&nbsp;when&nbsp;there<br>
is&nbsp;something&nbsp;to&nbsp;add,&nbsp;and&nbsp;if&nbsp;I'm&nbsp;not&nbsp;interested&nbsp;in&nbsp;this&nbsp;sort&nbsp;of<br>
information,&nbsp;I&nbsp;should&nbsp;be&nbsp;able&nbsp;to&nbsp;hide&nbsp;it.<br>
<br>
At&nbsp;the&nbsp;moment&nbsp;we're&nbsp;in&nbsp;a&nbsp;hybrid&nbsp;world&nbsp;where&nbsp;we&nbsp;don't&nbsp;get&nbsp;everything,&nbsp;but<br>
we&nbsp;can't&nbsp;get&nbsp;rid&nbsp;of&nbsp;the&nbsp;bug&nbsp;change&nbsp;"messages"&nbsp;either.&nbsp;&nbsp;Furthermore,<br>
"View&nbsp;Bug&nbsp;Activity"&nbsp;requires&nbsp;me&nbsp;to&nbsp;manually&nbsp;cross&nbsp;reference&nbsp;events&nbsp;on<br>
another&nbsp;page,&nbsp;rather&nbsp;than&nbsp;being&nbsp;able&nbsp;to&nbsp;visually&nbsp;see&nbsp;the&nbsp;chronological<br>
order.&nbsp;&nbsp;Shouldn't&nbsp;I&nbsp;be&nbsp;able&nbsp;to&nbsp;see&nbsp;all&nbsp;the&nbsp;information&nbsp;on&nbsp;one&nbsp;page?<br>
<br>
A&nbsp;proposal&nbsp;to&nbsp;allow&nbsp;bugs&nbsp;to&nbsp;be&nbsp;shown&nbsp;either&nbsp;way&nbsp;is&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=11368".<br>
<br>
2.&nbsp;&nbsp;Hard&nbsp;Wrapping&nbsp;Comments<br>
<br>
One&nbsp;thing&nbsp;that&nbsp;annoys&nbsp;me&nbsp;is&nbsp;the&nbsp;fact&nbsp;that&nbsp;comments&nbsp;are&nbsp;"hard&nbsp;wrapped"&nbsp;to<br>
a&nbsp;certain&nbsp;column&nbsp;width.&nbsp;&nbsp;This&nbsp;is&nbsp;a&nbsp;mistake&nbsp;Internet&nbsp;Mail&nbsp;and&nbsp;News&nbsp;has<br>
made,&nbsp;unlike&nbsp;every&nbsp;word&nbsp;processor&nbsp;in&nbsp;existence,&nbsp;and&nbsp;as&nbsp;a&nbsp;consequence,<br>
Usenet&nbsp;suffers&nbsp;to&nbsp;this&nbsp;day&nbsp;from&nbsp;bad&nbsp;software.&nbsp;&nbsp;Why&nbsp;has&nbsp;Bugzilla&nbsp;repeated<br>
the&nbsp;problem?<br>
<br>
Hard&nbsp;wrapping&nbsp;to&nbsp;a&nbsp;certain&nbsp;column&nbsp;width&nbsp;is&nbsp;open&nbsp;to&nbsp;abuse&nbsp;(see&nbsp;old<br>
Mozilla&nbsp;browsers&nbsp;that&nbsp;didn't&nbsp;wrap&nbsp;properly,&nbsp;resulting&nbsp;in&nbsp;many&nbsp;ugly&nbsp;bug<br>
reports&nbsp;we&nbsp;have&nbsp;to&nbsp;read&nbsp;to&nbsp;this&nbsp;day),&nbsp;and&nbsp;furthermore&nbsp;doesn't&nbsp;expand&nbsp;to<br>
fill&nbsp;greater&nbsp;screen&nbsp;sizes.&nbsp;&nbsp;I'm&nbsp;also&nbsp;under&nbsp;the&nbsp;impression&nbsp;the&nbsp;current<br>
hard&nbsp;wrap&nbsp;uses&nbsp;a&nbsp;non-standard&nbsp;HTML&nbsp;facility.&nbsp;&nbsp;See<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=11901".<br>
<br>
3.&nbsp;REMIND&nbsp;and&nbsp;LATER&nbsp;Are&nbsp;Evil<br>
<br>
I&nbsp;really&nbsp;hate&nbsp;REMIND&nbsp;and&nbsp;LATER.&nbsp;&nbsp;Not&nbsp;because&nbsp;they&nbsp;mean&nbsp;something<br>
won't&nbsp;be&nbsp;implemented,&nbsp;but&nbsp;because&nbsp;they&nbsp;aren't&nbsp;the&nbsp;best&nbsp;solutions.<br>
<br>
Why&nbsp;are&nbsp;they&nbsp;bad?&nbsp;&nbsp;Well,&nbsp;basically&nbsp;because&nbsp;they&nbsp;are&nbsp;not&nbsp;resolved,&nbsp;yet<br>
they&nbsp;are&nbsp;marked&nbsp;as&nbsp;such.&nbsp;&nbsp;Hence&nbsp;queries&nbsp;have&nbsp;to&nbsp;be&nbsp;well&nbsp;crafted&nbsp;to<br>
include&nbsp;them.<br>
<br>
LATER,&nbsp;according&nbsp;to&nbsp;Bugzilla,&nbsp;means&nbsp;it&nbsp;won't&nbsp;be&nbsp;done&nbsp;this&nbsp;release.&nbsp;<br>
There&nbsp;is&nbsp;a&nbsp;better&nbsp;mechanism&nbsp;of&nbsp;doing&nbsp;this,&nbsp;that&nbsp;is&nbsp;assigning&nbsp;to<br>
nobody@mozilla.org&nbsp;and&nbsp;making&nbsp;the&nbsp;milestone&nbsp;blank.&nbsp;&nbsp;It's&nbsp;more&nbsp;likely&nbsp;to<br>
appear&nbsp;in&nbsp;a&nbsp;casual&nbsp;query,&nbsp;and&nbsp;it&nbsp;doesn't&nbsp;resolve&nbsp;the&nbsp;bug.<br>
<br>
REMIND,&nbsp;according&nbsp;to&nbsp;Bugzilla,&nbsp;means&nbsp;it&nbsp;might&nbsp;still&nbsp;be&nbsp;implemented&nbsp;this<br>
release.&nbsp;&nbsp;Well,&nbsp;why&nbsp;not&nbsp;just&nbsp;move&nbsp;it&nbsp;to&nbsp;a&nbsp;later&nbsp;milestone&nbsp;then?&nbsp;&nbsp;You're<br>
a&nbsp;lot&nbsp;less&nbsp;likely&nbsp;to&nbsp;forget&nbsp;it.&nbsp;&nbsp;If&nbsp;it's&nbsp;really&nbsp;needed,&nbsp;a&nbsp;keyword&nbsp;would<br>
be&nbsp;better.<br>
<br>
Some&nbsp;people&nbsp;can't&nbsp;use&nbsp;blank&nbsp;milestones&nbsp;to&nbsp;mean&nbsp;an&nbsp;untargetted&nbsp;milestone,<br>
since&nbsp;they&nbsp;use&nbsp;this&nbsp;to&nbsp;assess&nbsp;new&nbsp;bugs&nbsp;that&nbsp;have&nbsp;no&nbsp;target.&nbsp;&nbsp;Hence,&nbsp;it<br>
would&nbsp;be&nbsp;nice&nbsp;to&nbsp;distinguish&nbsp;between&nbsp;bugs&nbsp;that&nbsp;have&nbsp;not&nbsp;yet&nbsp;been<br>
considered,&nbsp;and&nbsp;those&nbsp;that&nbsp;really&nbsp;are&nbsp;not&nbsp;assigned&nbsp;to&nbsp;any&nbsp;milestone&nbsp;in<br>
the&nbsp;future&nbsp;(assumedly&nbsp;beyond).<br>
<br>
All&nbsp;this&nbsp;is&nbsp;covered&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=13534".<br>
<br>
4.&nbsp;Create&nbsp;An&nbsp;Enhancement&nbsp;Field<br>
<br>
Currently&nbsp;enhancement&nbsp;is&nbsp;an&nbsp;option&nbsp;in&nbsp;severity.&nbsp;&nbsp;This&nbsp;means&nbsp;that<br>
important&nbsp;enhancements&nbsp;(like&nbsp;for&nbsp;example,&nbsp;POP3&nbsp;support)&nbsp;are&nbsp;not&nbsp;properly<br>
distinguished&nbsp;as&nbsp;such,&nbsp;because&nbsp;they&nbsp;need&nbsp;a&nbsp;proper&nbsp;severity.&nbsp;&nbsp;This<br>
dilutes&nbsp;the&nbsp;meaning&nbsp;of&nbsp;enhancement.<br>
<br>
If&nbsp;enhancement&nbsp;was&nbsp;separated,&nbsp;we&nbsp;could&nbsp;properly&nbsp;see&nbsp;what&nbsp;was&nbsp;an<br>
enhancement.&nbsp;&nbsp;See&nbsp;"http://bugzilla.mozilla.org/show_bug.cgi?id=9412".&nbsp;&nbsp;I<br>
see&nbsp;keywords&nbsp;like&nbsp;[RFE]&nbsp;and&nbsp;[FEATURE]&nbsp;that&nbsp;seem&nbsp;to&nbsp;be&nbsp;compensating&nbsp;for<br>
this&nbsp;problem.</P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trackingbugs.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="dbaseintegrity.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Description Flags and Tracking Bugs</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Database Integrity</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Bugzilla 3.0</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="Database Integrity"
HREF="dbaseintegrity.html"><LINK
REL="NEXT"
TITLE="The Bugzilla FAQ"
HREF="faq.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dbaseintegrity.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="faq.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BZ30"
>6.6. Bugzilla 3.0</A
></H1
><P
>One day, Bugzilla 3.0 will have lots of cool stuff.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dbaseintegrity.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="faq.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Database Integrity</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Bugzilla FAQ</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Cleaning up after mucking with Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="PREVIOUS"
TITLE="MySQL Permissions & Grant Tables"
HREF="granttables.html"><LINK
REL="NEXT"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="granttables.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="patches.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CLEANUPWORK"
>B.4. Cleaning up after mucking with Bugzilla</A
></H1
><P
CLASS="LITERALLAYOUT"
>Contributed&nbsp;by&nbsp;Eric&nbsp;Hansen:<br>
There&nbsp;are&nbsp;several&nbsp;things,&nbsp;and&nbsp;one&nbsp;trick.&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;small&nbsp;tiny&nbsp;piece&nbsp;of<br>
documentation&nbsp;I&nbsp;saw&nbsp;once&nbsp;that&nbsp;said&nbsp;something&nbsp;very&nbsp;important.<br>
1)&nbsp;&nbsp;After&nbsp;pretty&nbsp;much&nbsp;any&nbsp;manual&nbsp;working&nbsp;of&nbsp;the&nbsp;Mysql&nbsp;db,&nbsp;you&nbsp;must<br>
delete&nbsp;a&nbsp;file&nbsp;in&nbsp;the&nbsp;bugzilla&nbsp;directory:&nbsp;data/versioncache<br>
Versioncache&nbsp;basically&nbsp;is&nbsp;a&nbsp;way&nbsp;to&nbsp;speed&nbsp;up&nbsp;bugzilla&nbsp;(from&nbsp;what&nbsp;I<br>
understand).&nbsp;&nbsp;It&nbsp;stores&nbsp;a&nbsp;lot&nbsp;of&nbsp;commonly&nbsp;used&nbsp;information.&nbsp;&nbsp;However,<br>
this&nbsp;file&nbsp;is&nbsp;refreshed&nbsp;every&nbsp;so&nbsp;often&nbsp;(I&nbsp;can't&nbsp;remember&nbsp;the&nbsp;time<br>
interval&nbsp;though).&nbsp;&nbsp;So&nbsp;eventually&nbsp;all&nbsp;changes&nbsp;do&nbsp;propogate&nbsp;out,&nbsp;so&nbsp;you<br>
may&nbsp;see&nbsp;stuff&nbsp;suddenly&nbsp;working.<br>
2)&nbsp;&nbsp;Assuming&nbsp;that&nbsp;failed,&nbsp;you&nbsp;will&nbsp;also&nbsp;have&nbsp;to&nbsp;check&nbsp;something&nbsp;with&nbsp;the<br>
checksetup.pl&nbsp;file.&nbsp;&nbsp;It&nbsp;actually&nbsp;is&nbsp;run&nbsp;twice.&nbsp;&nbsp;The&nbsp;first&nbsp;time&nbsp;it<br>
creates&nbsp;the&nbsp;file:&nbsp;localconfig.&nbsp;&nbsp;You&nbsp;can&nbsp;modify&nbsp;localconfig,&nbsp;(or&nbsp;not&nbsp;if<br>
you&nbsp;are&nbsp;doing&nbsp;bug_status&nbsp;stuff)&nbsp;or&nbsp;you&nbsp;should&nbsp;delete&nbsp;localconfig&nbsp;and<br>
rerun&nbsp;your&nbsp;modified&nbsp;checksetup.pl.&nbsp;&nbsp;Since&nbsp;I&nbsp;don't&nbsp;actually&nbsp;see&nbsp;anything<br>
in&nbsp;localconfig&nbsp;pertaining&nbsp;to&nbsp;bug_status,&nbsp;this&nbsp;point&nbsp;is&nbsp;mainly&nbsp;a&nbsp;FYI.<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="granttables.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="patches.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>MySQL Permissions &#38; Grant Tables</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="database.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Useful Patches and Utilities for Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Command-line Bugzilla Queries</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="PREVIOUS"
TITLE="The setperl.pl Utility"
HREF="setperl.html"><LINK
REL="NEXT"
TITLE="The Quicksearch Utility"
HREF="quicksearch.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="setperl.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix C. Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="quicksearch.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CMDLINE"
>C.2. Command-line Bugzilla Queries</A
></H1
><P
> Users can query Bugzilla from the command line using
this suite of utilities.
</P
><P
> The query.conf file contains the mapping from options to field
names and comparison types. Quoted option names are "grepped" for, so
it should be easy to edit this file. Comments (#) have no effect; you
must make sure these lines do not contain any quoted "option"
</P
><P
> buglist is a shell script which submits a Bugzilla query and writes the
resulting HTML page to stdout. It supports both short options,
(such as "-Afoo" or "-Rbar") and long options (such as
"--assignedto=foo" or "--reporter=bar"). If the first character
of an option is not "-", it is treated as if it were prefixed
with "--default=".
</P
><P
> The columlist is taken from the COLUMNLIST environment variable.
This is equivalent to the "Change Columns" option when you list
bugs in buglist.cgi. If you have already used Bugzilla, use
<B
CLASS="COMMAND"
>grep COLUMLIST ~/.netscape/cookies</B
> to see
your current COLUMNLIST setting.
</P
><P
> bugs is a simple shell script which calls buglist and extracts
the bug numbers from the output. Adding the prefix
"http://bugzilla.mozilla.org/buglist.cgi?bug_id="
turns the bug list into a working link if any bugs are found.
Counting bugs is easy. Pipe the results through
<B
CLASS="COMMAND"
>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</B
>
</P
><P
> Akkana says she has good results piping buglist output through
<B
CLASS="COMMAND"
>w3m -T text/html -dump</B
>
</P
><DIV
CLASS="PROCEDURE"
><OL
TYPE="1"
><LI
><P
> Download three files:
</P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash$</TT
>
<B
CLASS="COMMAND"
>wget -O query.conf 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157'</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash$</TT
>
<B
CLASS="COMMAND"
>wget -O buglist 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944'</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>wget -O bugs 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215'</B
>
</TT
>
</P
></LI
></OL
></LI
><LI
><P
> Make your utilities executable:
<TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash$</TT
>
<B
CLASS="COMMAND"
>chmod u+x buglist bugs</B
>
</TT
>
</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="setperl.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="quicksearch.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The setperl.pl Utility</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="patches.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Quicksearch Utility</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Contributors</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Credits"
HREF="credits.html"><LINK
REL="NEXT"
TITLE="Feedback"
HREF="feedback.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="credits.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="feedback.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CONTRIBUTORS"
>1.6. Contributors</A
></H1
><P
> Thanks go to these people for significant contributions to this documentation:
</P
><P
> Zach Lipton, Andrew Pearson, Spencer Smith, Eric Hansen
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="credits.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="feedback.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Credits</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Feedback</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Document Conventions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Translations"
HREF="translations.html"><LINK
REL="NEXT"
TITLE="Installing Bugzilla"
HREF="installation.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="translations.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="installation.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CONVENTIONS"
>1.9. Document Conventions</A
></H1
><P
> This document uses the following conventions
</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN111"
></A
><P
></P
><TABLE
BORDER="0"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Descriptions</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Appearance</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Warnings</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><DIV
CLASS="CAUTION"
><P
></P
><TABLE
CLASS="CAUTION"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Caution</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>Warnings.</P
></TD
></TR
></TABLE
></DIV
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Hint</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>Hint.</P
></BLOCKQUOTE
></DIV
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Notes</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Note.</P
></BLOCKQUOTE
></DIV
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Information requiring special attention</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>Warning.</P
></TD
></TR
></TABLE
></DIV
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>File Names</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>file.extension</TT
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Directory Names</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="FILENAME"
>directory</TT
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Commands to be typed</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><B
CLASS="COMMAND"
>command</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Applications Names</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><SPAN
CLASS="APPLICATION"
>application</SPAN
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><I
CLASS="FOREIGNPHRASE"
>Prompt</I
> of users command under bash shell</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>bash$</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><I
CLASS="FOREIGNPHRASE"
>Prompt</I
> of root users command under bash shell</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>bash#</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><I
CLASS="FOREIGNPHRASE"
>Prompt</I
> of user command under tcsh shell</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>tcsh$</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Environment Variables</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="ENVAR"
>VARIABLE</TT
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Emphasized word</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><EM
>word</EM
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Code Example</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><TT
CLASS="SGMLTAG"
>&#60;para&#62;</TT
>Beginning and end of paragraph<TT
CLASS="SGMLTAG"
>&#60;/para&#62;</TT
></PRE
></TD
></TR
></TABLE
></TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="translations.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="installation.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Translations</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Copyright Information</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Purpose and Scope of this Guide"
HREF="aboutthisguide.html"><LINK
REL="NEXT"
TITLE="Disclaimer"
HREF="disclaimer.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="aboutthisguide.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="disclaimer.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="COPYRIGHT"
>1.2. Copyright Information</A
></H1
><A
NAME="AEN51"
></A
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="BLOCKQUOTE"
><TR
><TD
WIDTH="10%"
VALIGN="TOP"
>&nbsp;</TD
><TD
WIDTH="80%"
VALIGN="TOP"
><P
> Permission is granted to copy, distribute and/or modify this document under thei
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 the section entitled
"GNU Free Documentation LIcense".
</P
></TD
><TD
WIDTH="10%"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
COLSPAN="2"
ALIGN="RIGHT"
VALIGN="TOP"
>--<SPAN
CLASS="ATTRIBUTION"
>Copyright (c) 2000-2001 Matthew P. Barnson</SPAN
></TD
><TD
WIDTH="10%"
>&nbsp;</TD
></TR
></TABLE
><P
> If you have any questions regarding this document, its' copyright, or publishing this
document in non-electronic form, please contact <TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:barnboy@trilobyte.net"
>barnboy@trilobyte.net</A
>&#62;</TT
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="aboutthisguide.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="disclaimer.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Purpose and Scope of this Guide</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Disclaimer</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Credits</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="New Versions"
HREF="newversions.html"><LINK
REL="NEXT"
TITLE="Contributors"
HREF="contributors.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="newversions.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="contributors.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CREDITS"
>1.5. Credits</A
></H1
><P
> The people listed below have made enormous contributions to the creation
of this Guide, through their dedicated hacking efforts,
numerous e-mail and IRC support sessions,
and overall excellent contribution to the Bugzilla community:
</P
><P
> <A
HREF="mailto://terry@mozilla.org"
TARGET="_top"
>Terry Weissman</A
>
for initially converting Bugzilla from BugSplat!
and writing the README upon which this documentation is largely based.
</P
><P
> <A
HREF="mailto://tara@tequilarista.org"
TARGET="_top"
>Tara Hernandez</A
>
for keeping Bugzilla development going strong after Terry left Mozilla.org
</P
><P
> <A
HREF="mailto://dkl@redhat.com"
TARGET="_top"
>Dave Lawrence</A
>
for providing insight into the key differences between Red Hat's
customized Bugzilla, and being largely responsible for the
"Red Hat Bugzilla" appendix
</P
><P
> <A
HREF="mailto://endico@mozilla.org"
TARGET="_top"
>Dawn Endico</A
>
for being a hacker extraordinaire and putting up with my incessant
questions and arguments on irc.mozilla.org in #mozwebtools
</P
><P
> Last but not least, all the members of the
<A
HREF="news://news.mozilla.org/netscape/public/mozilla/webtools"
TARGET="_top"
> netscape.public.mozilla.webtools</A
> newsgroup. Without your
discussions, insight, suggestions, and patches, this could never have happened.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="newversions.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="contributors.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>New Versions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Contributors</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>CVS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"><LINK
REL="PREVIOUS"
TITLE="Bonsai"
HREF="bonsai.html"><LINK
REL="NEXT"
TITLE="Perforce SCM"
HREF="scm.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="bonsai.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="scm.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CVS"
>5.2. CVS</A
></H1
><P
>We need CVS integration information</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="bonsai.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="scm.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bonsai</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="integration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Perforce SCM</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The Bugzilla Database</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="The Bugzilla FAQ"
HREF="faq.html"><LINK
REL="NEXT"
TITLE="Database Schema Chart"
HREF="dbschema.html"></HEAD
><BODY
CLASS="APPENDIX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="faq.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="dbschema.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="DATABASE"
>Appendix B. The Bugzilla Database</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>B.1. <A
HREF="dbschema.html"
>Database Schema Chart</A
></DT
><DT
>B.2. <A
HREF="dbdoc.html"
>MySQL Bugzilla Database Introduction</A
></DT
><DT
>B.3. <A
HREF="granttables.html"
>MySQL Permissions &#38; Grant Tables</A
></DT
><DT
>B.4. <A
HREF="cleanupwork.html"
>Cleaning up after mucking with Bugzilla</A
></DT
></DL
></DIV
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>This document really needs to be updated with more fleshed out information about primary keys, interrelationships, and maybe some nifty tables to document dependencies. Any takers? </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="faq.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="dbschema.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The Bugzilla FAQ</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Database Schema Chart</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Database Integrity</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="Bug Issues"
HREF="bugprobs.html"><LINK
REL="NEXT"
TITLE="Bugzilla 3.0"
HREF="bz30.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="bugprobs.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="bz30.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DBASEINTEGRITY"
>6.5. Database Integrity</A
></H1
><P
><P
CLASS="LITERALLAYOUT"
>Bugzilla&nbsp;could&nbsp;be&nbsp;more&nbsp;proactive&nbsp;in&nbsp;detecting&nbsp;suboptimal&nbsp;situations&nbsp;and<br>
prevent&nbsp;them&nbsp;or&nbsp;whine&nbsp;about&nbsp;them.<br>
<br>
1.&nbsp;Bugzilla&nbsp;Crime&nbsp;#1:&nbsp;Marking&nbsp;A&nbsp;Bug&nbsp;Fixed&nbsp;With&nbsp;Unresolved&nbsp;Dependencies<br>
<br>
It&nbsp;can't&nbsp;be&nbsp;marked&nbsp;fixed&nbsp;with&nbsp;unresolved&nbsp;dependencies.&nbsp;&nbsp;Either&nbsp;mark&nbsp;it<br>
INVALID&nbsp;(tracking&nbsp;bugs),&nbsp;fix&nbsp;the&nbsp;dependencies&nbsp;at&nbsp;the&nbsp;same&nbsp;time,&nbsp;or<br>
resolve&nbsp;the&nbsp;blockers.<br>
<br>
See&nbsp;"http://bugzilla.mozilla.org/show_bug.cgi?id=24496".<br>
<br>
2.&nbsp;Keyword&nbsp;Restrictions<br>
<br>
Some&nbsp;keywords&nbsp;should&nbsp;only&nbsp;apply&nbsp;in&nbsp;certain&nbsp;circumstances,&nbsp;eg&nbsp;beta1&nbsp;=&#62;<br>
Milestone&nbsp;&#60;<br>
M14,&nbsp;css1&nbsp;=&#62;&nbsp;Component&nbsp;=&nbsp;Style&nbsp;System&nbsp;are&nbsp;possibilities.&nbsp;&nbsp;See<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=26940".<br>
<br>
3.&nbsp;Whine&nbsp;About&nbsp;Old&nbsp;Votes<br>
<br>
Old&nbsp;votes&nbsp;can&nbsp;just&nbsp;sit&nbsp;on&nbsp;resolved&nbsp;bugs.&nbsp;&nbsp;This&nbsp;is&nbsp;problematic&nbsp;with<br>
duplicates&nbsp;especially.&nbsp;&nbsp;Automatic&nbsp;transferral/removal&nbsp;is&nbsp;not<br>
appropriate&nbsp;since&nbsp;bugs&nbsp;can&nbsp;be&nbsp;reopened,&nbsp;but&nbsp;a&nbsp;whining&nbsp;solution&nbsp;might<br>
work.&nbsp;&nbsp;See&nbsp;"http://bugzilla.mozilla.org/show_bug.cgi?id=27553".<br>
<br>
4.&nbsp;Whine&nbsp;And&nbsp;Warn&nbsp;About&nbsp;Milestone&nbsp;Mismatches<br>
<br>
Here's&nbsp;a&nbsp;fun&nbsp;one.&nbsp;&nbsp;Bug&nbsp;X&nbsp;(M17)&nbsp;depends&nbsp;on&nbsp;Bug&nbsp;Y&nbsp;(M15).&nbsp;&nbsp;Bug&nbsp;Y&nbsp;gets&nbsp;moved<br>
out&nbsp;to&nbsp;M19.&nbsp;&nbsp;The&nbsp;notification&nbsp;to&nbsp;the&nbsp;assignee&nbsp;of&nbsp;Bug&nbsp;X&nbsp;gets&nbsp;ignored&nbsp;(of<br>
course)&nbsp;and&nbsp;Bug&nbsp;X&nbsp;is&nbsp;now&nbsp;due&nbsp;to&nbsp;be&nbsp;fixed&nbsp;before&nbsp;one&nbsp;of&nbsp;its&nbsp;blockers.<br>
<br>
Warnings&nbsp;about&nbsp;this&nbsp;when&nbsp;it&nbsp;is&nbsp;detected&nbsp;as&nbsp;well&nbsp;as&nbsp;whining&nbsp;about&nbsp;it&nbsp;in<br>
email&nbsp;would&nbsp;help&nbsp;bring&nbsp;these&nbsp;issues&nbsp;to&nbsp;the&nbsp;attention&nbsp;of&nbsp;people&nbsp;sooner.<br>
<br>
Note&nbsp;that&nbsp;this&nbsp;would&nbsp;be&nbsp;less&nbsp;of&nbsp;a&nbsp;problem&nbsp;if&nbsp;we&nbsp;didn't&nbsp;have&nbsp;so&nbsp;many<br>
tracking&nbsp;bugs&nbsp;since&nbsp;they&nbsp;aren't&nbsp;updated&nbsp;that&nbsp;often&nbsp;and&nbsp;often&nbsp;have&nbsp;this<br>
problem.<br>
<br>
See&nbsp;"http://bugzilla.mozilla.org/show_bug.cgi?id=16743".</P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="bugprobs.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="bz30.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bug Issues</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bugzilla 3.0</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>MySQL Bugzilla Database Introduction</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="PREVIOUS"
TITLE="Database Schema Chart"
HREF="dbschema.html"><LINK
REL="NEXT"
TITLE="MySQL Permissions & Grant Tables"
HREF="granttables.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dbschema.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="granttables.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DBDOC"
>B.2. MySQL Bugzilla Database Introduction</A
></H1
><P
CLASS="LITERALLAYOUT"
><br>
Contributor(s):&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
<br>
Last&nbsp;update:&nbsp;May&nbsp;16,&nbsp;2000<br>
<br>
Changes:<br>
Version&nbsp;1.0:&nbsp;Initial&nbsp;public&nbsp;release&nbsp;(May&nbsp;16,&nbsp;2000)<br>
<br>
Maintainer:&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
<br>
<br>
===<br>
Table&nbsp;Of&nbsp;Contents<br>
===<br>
<br>
FOREWORD<br>
INTRODUCTION<br>
THE&nbsp;BASICS<br>
THE&nbsp;TABLES<br>
THE&nbsp;DETAILS<br>
<br>
<br>
<br>
===<br>
FOREWORD<br>
===<br>
<br>
&nbsp;&nbsp;This&nbsp;information&nbsp;comes&nbsp;straight&nbsp;from&nbsp;my&nbsp;life.&nbsp;&nbsp;I&nbsp;was&nbsp;forced&nbsp;to&nbsp;learn&nbsp;how<br>
Bugzilla&nbsp;organizes&nbsp;database&nbsp;because&nbsp;of&nbsp;nitpicky&nbsp;requests&nbsp;from&nbsp;users&nbsp;for&nbsp;tiny<br>
changes&nbsp;in&nbsp;wording,&nbsp;rather&nbsp;than&nbsp;having&nbsp;people&nbsp;re-educate&nbsp;themselves&nbsp;or<br>
figure&nbsp;out&nbsp;how&nbsp;to&nbsp;work&nbsp;our&nbsp;procedures&nbsp;around&nbsp;the&nbsp;tool.&nbsp;&nbsp;It&nbsp;sucks,&nbsp;but&nbsp;it&nbsp;can<br>
and&nbsp;will&nbsp;happen&nbsp;to&nbsp;you,&nbsp;so&nbsp;learn&nbsp;how&nbsp;the&nbsp;schema&nbsp;works&nbsp;and&nbsp;deal&nbsp;with&nbsp;it&nbsp;when&nbsp;it<br>
comes.<br>
<br>
&nbsp;&nbsp;I'm&nbsp;sorry&nbsp;this&nbsp;version&nbsp;is&nbsp;plain&nbsp;text.&nbsp;&nbsp;I&nbsp;can&nbsp;whip&nbsp;this&nbsp;info&nbsp;out&nbsp;a&nbsp;lot&nbsp;faster<br>
if&nbsp;I'm&nbsp;not&nbsp;concerned&nbsp;about&nbsp;complex&nbsp;formatting.&nbsp;&nbsp;I'll&nbsp;get&nbsp;it&nbsp;into&nbsp;sgml&nbsp;for&nbsp;easy<br>
portability&nbsp;as&nbsp;time&nbsp;permits.<br>
<br>
&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;has&nbsp;a&nbsp;home!&nbsp;&nbsp;In&nbsp;addition&nbsp;to&nbsp;availability&nbsp;via&nbsp;CVS<br>
and&nbsp;released&nbsp;versions&nbsp;2.12&nbsp;and&nbsp;higher&nbsp;of&nbsp;Bugzilla,&nbsp;you&nbsp;can&nbsp;find&nbsp;the&nbsp;latest&nbsp;&#38;<br>
greatest&nbsp;version&nbsp;of&nbsp;the&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;at<br>
http://www.trilobyte.net/barnsons/.&nbsp;This&nbsp;is&nbsp;a&nbsp;living&nbsp;document;&nbsp;please&nbsp;be&nbsp;sure<br>
you&nbsp;are&nbsp;up-to-date&nbsp;with&nbsp;the&nbsp;latest&nbsp;version&nbsp;before&nbsp;mirroring.<br>
<br>
&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;is&nbsp;designed&nbsp;to&nbsp;provide&nbsp;vital&nbsp;information<br>
regarding&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;MySQL&nbsp;database.&nbsp;&nbsp;Where&nbsp;appropriate,&nbsp;this<br>
document&nbsp;will&nbsp;refer&nbsp;to&nbsp;URLs&nbsp;rather&nbsp;than&nbsp;including&nbsp;documents&nbsp;in&nbsp;their&nbsp;entirety<br>
to&nbsp;ensure&nbsp;completeness&nbsp;even&nbsp;should&nbsp;this&nbsp;paper&nbsp;become&nbsp;out&nbsp;of&nbsp;date.<br>
<br>
&nbsp;&nbsp;This&nbsp;document&nbsp;is&nbsp;not&nbsp;maintained&nbsp;by&nbsp;Netscape&nbsp;or&nbsp;Netscape&nbsp;employees,&nbsp;so&nbsp;please<br>
do&nbsp;not&nbsp;contact&nbsp;them&nbsp;regarding&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;contained&nbsp;herein.&nbsp;Please<br>
direct&nbsp;all&nbsp;questions,&nbsp;comments,&nbsp;updates,&nbsp;flames,&nbsp;etc.&nbsp;to&nbsp;Matthew&nbsp;P.&nbsp;Barnson<br>
mbarnson@excitehome.net)&nbsp;(barnboy&nbsp;or&nbsp;barnhome&nbsp;on&nbsp;irc.mozilla.org&nbsp;in<br>
#mozwebtools).<br>
<br>
&nbsp;&nbsp;I'm&nbsp;sure&nbsp;I've&nbsp;made&nbsp;some&nbsp;glaring&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;in&nbsp;this&nbsp;paper&nbsp;--&nbsp;please<br>
email&nbsp;me&nbsp;corrections&nbsp;or&nbsp;post&nbsp;corrections&nbsp;to&nbsp;the<br>
netscape.public.mozilla.webtools&nbsp;newsgroup.<br>
<br>
<br>
<br>
===<br>
INTRODUCTION<br>
===<br>
<br>
<br>
<br>
&nbsp;&nbsp;So,&nbsp;here&nbsp;you&nbsp;are&nbsp;with&nbsp;your&nbsp;brand-new&nbsp;installation&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;got<br>
MySQL&nbsp;set&nbsp;up,&nbsp;Apache&nbsp;working&nbsp;right,&nbsp;Perl&nbsp;DBI&nbsp;and&nbsp;DBD&nbsp;talking&nbsp;to&nbsp;the&nbsp;database<br>
flawlessly.&nbsp;&nbsp;Maybe&nbsp;you've&nbsp;even&nbsp;entered&nbsp;a&nbsp;few&nbsp;test&nbsp;bugs&nbsp;to&nbsp;make&nbsp;sure&nbsp;email's<br>
working;&nbsp;people&nbsp;seem&nbsp;to&nbsp;be&nbsp;notified&nbsp;of&nbsp;new&nbsp;bugs&nbsp;and&nbsp;changes,&nbsp;and&nbsp;you&nbsp;can<br>
enter&nbsp;and&nbsp;edit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;heart's&nbsp;content.&nbsp;&nbsp;Perhaps&nbsp;you've&nbsp;gone&nbsp;through&nbsp;the<br>
trouble&nbsp;of&nbsp;setting&nbsp;up&nbsp;a&nbsp;gateway&nbsp;for&nbsp;people&nbsp;to&nbsp;submit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;database&nbsp;via<br>
email,&nbsp;have&nbsp;had&nbsp;a&nbsp;few&nbsp;people&nbsp;test&nbsp;it,&nbsp;and&nbsp;received&nbsp;rave&nbsp;reviews&nbsp;from&nbsp;your&nbsp;beta<br>
testers.<br>
<br>
&nbsp;&nbsp;What's&nbsp;the&nbsp;next&nbsp;thing&nbsp;you&nbsp;do?&nbsp;&nbsp;Outline&nbsp;a&nbsp;training&nbsp;strategy&nbsp;for&nbsp;your<br>
development&nbsp;team,&nbsp;of&nbsp;course,&nbsp;and&nbsp;bring&nbsp;them&nbsp;up&nbsp;to&nbsp;speed&nbsp;on&nbsp;the&nbsp;new&nbsp;tool&nbsp;you've<br>
labored&nbsp;over&nbsp;for&nbsp;hours.<br>
<br>
&nbsp;&nbsp;Your&nbsp;first&nbsp;training&nbsp;session&nbsp;starts&nbsp;off&nbsp;very&nbsp;well!&nbsp;&nbsp;You&nbsp;have&nbsp;a&nbsp;captive<br>
audience&nbsp;which&nbsp;seems&nbsp;enraptured&nbsp;by&nbsp;the&nbsp;efficiency&nbsp;embodied&nbsp;in&nbsp;this&nbsp;thing&nbsp;called<br>
"Bugzilla".&nbsp;&nbsp;You&nbsp;are&nbsp;caught&nbsp;up&nbsp;describing&nbsp;the&nbsp;nifty&nbsp;features,&nbsp;how&nbsp;people&nbsp;can<br>
save&nbsp;favorite&nbsp;queries&nbsp;in&nbsp;the&nbsp;database,&nbsp;set&nbsp;them&nbsp;up&nbsp;as&nbsp;headers&nbsp;and&nbsp;footers&nbsp;on<br>
their&nbsp;pages,&nbsp;customize&nbsp;their&nbsp;layouts,&nbsp;generate&nbsp;reports,&nbsp;track&nbsp;status&nbsp;with<br>
greater&nbsp;efficiency&nbsp;than&nbsp;ever&nbsp;before,&nbsp;leap&nbsp;tall&nbsp;buildings&nbsp;with&nbsp;a&nbsp;single&nbsp;bound<br>
and&nbsp;rescue&nbsp;Jane&nbsp;from&nbsp;the&nbsp;clutches&nbsp;of&nbsp;Certain&nbsp;Death!<br>
<br>
&nbsp;&nbsp;But&nbsp;Certain&nbsp;Death&nbsp;speaks&nbsp;up&nbsp;--&nbsp;a&nbsp;tiny&nbsp;voice,&nbsp;from&nbsp;the&nbsp;dark&nbsp;corners&nbsp;of&nbsp;the<br>
conference&nbsp;room.&nbsp;&nbsp;"I&nbsp;have&nbsp;a&nbsp;concern,"&nbsp;the&nbsp;voice&nbsp;hisses&nbsp;from&nbsp;the&nbsp;darkness,<br>
"about&nbsp;the&nbsp;use&nbsp;of&nbsp;the&nbsp;word&nbsp;'verified'.<br>
<br>
&nbsp;&nbsp;The&nbsp;room,&nbsp;previously&nbsp;filled&nbsp;with&nbsp;happy&nbsp;chatter,&nbsp;lapses&nbsp;into&nbsp;reverential<br>
silence&nbsp;as&nbsp;Certain&nbsp;Death&nbsp;(better&nbsp;known&nbsp;as&nbsp;the&nbsp;Vice&nbsp;President&nbsp;of&nbsp;Software<br>
Engineering)&nbsp;continues.&nbsp;&nbsp;"You&nbsp;see,&nbsp;for&nbsp;two&nbsp;years&nbsp;we've&nbsp;used&nbsp;the&nbsp;word&nbsp;'verified'<br>
to&nbsp;indicate&nbsp;that&nbsp;a&nbsp;developer&nbsp;or&nbsp;quality&nbsp;assurance&nbsp;engineer&nbsp;has&nbsp;confirmed&nbsp;that,<br>
in&nbsp;fact,&nbsp;a&nbsp;bug&nbsp;is&nbsp;valid.&nbsp;I&nbsp;don't&nbsp;want&nbsp;to&nbsp;lose&nbsp;two&nbsp;years&nbsp;of&nbsp;training&nbsp;to&nbsp;a<br>
new&nbsp;software&nbsp;product.&nbsp;&nbsp;You&nbsp;need&nbsp;to&nbsp;change&nbsp;the&nbsp;bug&nbsp;status&nbsp;of&nbsp;'verified'&nbsp;to<br>
'approved'&nbsp;as&nbsp;soon&nbsp;as&nbsp;possible.&nbsp;To&nbsp;avoid&nbsp;confusion,&nbsp;of&nbsp;course."<br>
<br>
&nbsp;&nbsp;Oh&nbsp;no!&nbsp;&nbsp;Terror&nbsp;strikes&nbsp;your&nbsp;heart,&nbsp;as&nbsp;you&nbsp;find&nbsp;yourself&nbsp;mumbling&nbsp;"yes,&nbsp;yes,&nbsp;I<br>
don't&nbsp;think&nbsp;that&nbsp;would&nbsp;be&nbsp;a&nbsp;problem,"&nbsp;You&nbsp;review&nbsp;the&nbsp;changes&nbsp;with&nbsp;Certain<br>
Death,&nbsp;and&nbsp;continue&nbsp;to&nbsp;jabber&nbsp;on,&nbsp;"no,&nbsp;it's&nbsp;not&nbsp;too&nbsp;big&nbsp;a&nbsp;change.&nbsp;I&nbsp;mean,&nbsp;we<br>
have&nbsp;the&nbsp;source&nbsp;code,&nbsp;right?&nbsp;You&nbsp;know,&nbsp;'Use&nbsp;the&nbsp;Source,&nbsp;Luke'&nbsp;and&nbsp;all&nbsp;that...<br>
no&nbsp;problem,"&nbsp;All&nbsp;the&nbsp;while&nbsp;you&nbsp;quiver&nbsp;inside&nbsp;like&nbsp;a&nbsp;beached&nbsp;jellyfish&nbsp;bubbling,<br>
burbling,&nbsp;and&nbsp;boiling&nbsp;on&nbsp;a&nbsp;hot&nbsp;Jamaican&nbsp;sand&nbsp;dune...<br>
<br>
&nbsp;&nbsp;Thus&nbsp;begins&nbsp;your&nbsp;adventure&nbsp;into&nbsp;the&nbsp;heart&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;been&nbsp;forced<br>
to&nbsp;learn&nbsp;about&nbsp;non-portable&nbsp;enum()&nbsp;fields,&nbsp;varchar&nbsp;columns,&nbsp;and&nbsp;tinyint<br>
definitions.&nbsp;The&nbsp;Adventure&nbsp;Awaits&nbsp;You!<br>
<br>
<br>
<br>
===<br>
The&nbsp;Basics<br>
===<br>
<br>
&nbsp;&nbsp;If&nbsp;you&nbsp;were&nbsp;like&nbsp;me,&nbsp;at&nbsp;this&nbsp;point&nbsp;you're&nbsp;totally&nbsp;clueless&nbsp;about&nbsp;the<br>
internals&nbsp;of&nbsp;MySQL,&nbsp;and&nbsp;if&nbsp;it&nbsp;weren't&nbsp;for&nbsp;this&nbsp;executive&nbsp;order&nbsp;from&nbsp;the&nbsp;Vice<br>
President&nbsp;you&nbsp;couldn't&nbsp;care&nbsp;less&nbsp;about&nbsp;the&nbsp;difference&nbsp;between&nbsp;a&nbsp;"bigint"&nbsp;and&nbsp;a<br>
"tinyint"&nbsp;entry&nbsp;in&nbsp;MySQL.&nbsp;&nbsp;I'd&nbsp;refer&nbsp;you&nbsp;first&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;documentation,<br>
available&nbsp;at&nbsp;http://www.mysql.com/doc.html,&nbsp;but&nbsp;that's&nbsp;mostly&nbsp;a&nbsp;confusing<br>
morass&nbsp;of&nbsp;high-level&nbsp;database&nbsp;jargon.&nbsp;&nbsp;Here&nbsp;are&nbsp;the&nbsp;basics&nbsp;you&nbsp;need&nbsp;to&nbsp;know<br>
about&nbsp;the&nbsp;database&nbsp;to&nbsp;proceed:<br>
<br>
1.&nbsp;&nbsp;To&nbsp;connect&nbsp;to&nbsp;your&nbsp;database,&nbsp;type&nbsp;"mysql&nbsp;-u&nbsp;root"&nbsp;at&nbsp;the&nbsp;command&nbsp;prompt&nbsp;as<br>
any&nbsp;user.&nbsp;If&nbsp;this&nbsp;works&nbsp;without&nbsp;asking&nbsp;you&nbsp;for&nbsp;a&nbsp;password,&nbsp;SHAME&nbsp;ON&nbsp;YOU!&nbsp;&nbsp;You<br>
should&nbsp;have&nbsp;locked&nbsp;your&nbsp;security&nbsp;down&nbsp;like&nbsp;the&nbsp;README&nbsp;told&nbsp;you&nbsp;to.&nbsp;&nbsp;You&nbsp;can<br>
find&nbsp;details&nbsp;on&nbsp;locking&nbsp;down&nbsp;your&nbsp;database&nbsp;in&nbsp;the&nbsp;Bugzilla&nbsp;FAQ&nbsp;in&nbsp;this<br>
directory&nbsp;(under&nbsp;"Security"),&nbsp;or&nbsp;more&nbsp;robust&nbsp;security&nbsp;generalities&nbsp;in&nbsp;the<br>
MySQL&nbsp;searchable&nbsp;documentation&nbsp;at<br>
http://www.mysql.com/php/manual.php3?section=Privilege_system&nbsp;.<br>
<br>
2.&nbsp;&nbsp;You&nbsp;should&nbsp;now&nbsp;be&nbsp;at&nbsp;a&nbsp;prompt&nbsp;that&nbsp;looks&nbsp;like&nbsp;this:<br>
<br>
mysql&#62;<br>
<br>
At&nbsp;the&nbsp;prompt,&nbsp;if&nbsp;"bugs"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;your&nbsp;Bugzilla&nbsp;database,&nbsp;type:<br>
<br>
mysql&#62;&nbsp;use&nbsp;bugs;<br>
<br>
(don't&nbsp;forget&nbsp;the&nbsp;";"&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;each&nbsp;line,&nbsp;or&nbsp;you'll&nbsp;be&nbsp;kicking&nbsp;yourself<br>
all&nbsp;the&nbsp;way&nbsp;through&nbsp;this&nbsp;documentation)<br>
&nbsp;&nbsp;Young&nbsp;Grasshopper,&nbsp;you&nbsp;are&nbsp;now&nbsp;ready&nbsp;for&nbsp;the&nbsp;unveiling&nbsp;of&nbsp;the&nbsp;Bugzilla<br>
database,&nbsp;in&nbsp;the&nbsp;next&nbsp;section...<br>
<br>
<br>
<br>
===<br>
THE&nbsp;TABLES<br>
===<br>
<br>
&nbsp;&nbsp;Imagine&nbsp;your&nbsp;MySQL&nbsp;database&nbsp;as&nbsp;a&nbsp;series&nbsp;of&nbsp;spreadsheets,&nbsp;and&nbsp;you&nbsp;won't&nbsp;be&nbsp;too<br>
far&nbsp;off.&nbsp;&nbsp;If&nbsp;you&nbsp;use&nbsp;this&nbsp;command:<br>
<br>
mysql&#62;&nbsp;show&nbsp;tables&nbsp;from&nbsp;bugs;<br>
<br>
you'll&nbsp;be&nbsp;able&nbsp;to&nbsp;see&nbsp;all&nbsp;the&nbsp;"spreadsheets"&nbsp;(tables)&nbsp;in&nbsp;your&nbsp;database.&nbsp;&nbsp;Cool,<br>
huh?&nbsp;&nbsp;It's&nbsp;kinda'&nbsp;like&nbsp;a&nbsp;filesystem,&nbsp;only&nbsp;much&nbsp;faster&nbsp;and&nbsp;more&nbsp;robust.&nbsp;&nbsp;Come<br>
on,&nbsp;I'll&nbsp;show&nbsp;you&nbsp;more!<br>
<br>
&nbsp;&nbsp;From&nbsp;the&nbsp;command&nbsp;issued&nbsp;above,&nbsp;you&nbsp;should&nbsp;now&nbsp;have&nbsp;some&nbsp;output&nbsp;that&nbsp;looks<br>
like&nbsp;this:<br>
<br>
+-------------------+<br>
|&nbsp;Tables&nbsp;in&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+-------------------+<br>
|&nbsp;attachments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;bugs_activity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;components&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;dependencies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;fielddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;keyworddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;keywords&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;logincookies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;longdescs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;milestones&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;namedqueries&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;products&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;profiles&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;profiles_activity&nbsp;|<br>
|&nbsp;shadowlog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;versions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;votes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;watch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+-------------------+<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;it&nbsp;doesn't&nbsp;look&nbsp;quite&nbsp;the&nbsp;same,&nbsp;that&nbsp;probably&nbsp;means&nbsp;it's&nbsp;time&nbsp;to<br>
update&nbsp;this&nbsp;documentation&nbsp;:)<br>
<br>
&nbsp;&nbsp;Here's&nbsp;an&nbsp;overview&nbsp;of&nbsp;what&nbsp;each&nbsp;table&nbsp;does.&nbsp;&nbsp;Most&nbsp;columns&nbsp;in&nbsp;each&nbsp;table&nbsp;have<br>
descriptive&nbsp;names&nbsp;that&nbsp;make&nbsp;it&nbsp;fairly&nbsp;trivial&nbsp;to&nbsp;figure&nbsp;out&nbsp;their&nbsp;jobs.<br>
<br>
attachments:&nbsp;This&nbsp;table&nbsp;stores&nbsp;all&nbsp;attachments&nbsp;to&nbsp;bugs.&nbsp;&nbsp;It&nbsp;tends&nbsp;to&nbsp;be&nbsp;your<br>
largest&nbsp;table,&nbsp;yet&nbsp;also&nbsp;generally&nbsp;has&nbsp;the&nbsp;fewest&nbsp;entries&nbsp;because&nbsp;file<br>
attachments&nbsp;are&nbsp;so&nbsp;(relatively)&nbsp;large.<br>
<br>
bugs:&nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;core&nbsp;of&nbsp;your&nbsp;system.&nbsp;&nbsp;The&nbsp;bugs&nbsp;table&nbsp;stores&nbsp;most&nbsp;of&nbsp;the<br>
current&nbsp;information&nbsp;about&nbsp;a&nbsp;bug,&nbsp;with&nbsp;the&nbsp;exception&nbsp;of&nbsp;the&nbsp;info&nbsp;stored&nbsp;in&nbsp;the<br>
other&nbsp;tables.<br>
<br>
bugs_activity:&nbsp;&nbsp;This&nbsp;stores&nbsp;information&nbsp;regarding&nbsp;what&nbsp;changes&nbsp;are&nbsp;made&nbsp;to&nbsp;bugs<br>
when&nbsp;--&nbsp;a&nbsp;history&nbsp;file.<br>
<br>
cc:&nbsp;&nbsp;This&nbsp;tiny&nbsp;table&nbsp;simply&nbsp;stores&nbsp;all&nbsp;the&nbsp;CC&nbsp;information&nbsp;for&nbsp;any&nbsp;bug&nbsp;which&nbsp;has<br>
any&nbsp;entries&nbsp;in&nbsp;the&nbsp;CC&nbsp;field&nbsp;of&nbsp;the&nbsp;bug.&nbsp;&nbsp;Note&nbsp;that,&nbsp;like&nbsp;most&nbsp;other&nbsp;tables&nbsp;in<br>
Bugzilla,&nbsp;it&nbsp;does&nbsp;not&nbsp;refer&nbsp;to&nbsp;users&nbsp;by&nbsp;their&nbsp;user&nbsp;names,&nbsp;but&nbsp;by&nbsp;their&nbsp;unique<br>
userid,&nbsp;stored&nbsp;as&nbsp;a&nbsp;primary&nbsp;key&nbsp;in&nbsp;the&nbsp;profiles&nbsp;table.<br>
<br>
components:&nbsp;This&nbsp;stores&nbsp;the&nbsp;programs&nbsp;and&nbsp;components&nbsp;(or&nbsp;products&nbsp;and<br>
components,&nbsp;in&nbsp;newer&nbsp;Bugzilla&nbsp;parlance)&nbsp;for&nbsp;Bugzilla.&nbsp;&nbsp;Curiously,&nbsp;the&nbsp;"program"<br>
(product)&nbsp;field&nbsp;is&nbsp;the&nbsp;full&nbsp;name&nbsp;of&nbsp;the&nbsp;product,&nbsp;rather&nbsp;than&nbsp;some&nbsp;other&nbsp;unique<br>
identifier,&nbsp;like&nbsp;bug_id&nbsp;and&nbsp;user_id&nbsp;are&nbsp;elsewhere&nbsp;in&nbsp;the&nbsp;database.<br>
<br>
dependencies:&nbsp;Stores&nbsp;data&nbsp;about&nbsp;those&nbsp;cool&nbsp;dependency&nbsp;trees.<br>
<br>
fielddefs:&nbsp;&nbsp;A&nbsp;nifty&nbsp;table&nbsp;that&nbsp;defines&nbsp;other&nbsp;tables.&nbsp;&nbsp;For&nbsp;instance,&nbsp;when&nbsp;you<br>
submit&nbsp;a&nbsp;form&nbsp;that&nbsp;changes&nbsp;the&nbsp;value&nbsp;of&nbsp;"AssignedTo"&nbsp;this&nbsp;table&nbsp;allows<br>
translation&nbsp;to&nbsp;the&nbsp;actual&nbsp;field&nbsp;name&nbsp;"assigned_to"&nbsp;for&nbsp;entry&nbsp;into&nbsp;MySQL.<br>
<br>
groups:&nbsp;&nbsp;defines&nbsp;bitmasks&nbsp;for&nbsp;groups.&nbsp;&nbsp;A&nbsp;bitmask&nbsp;is&nbsp;a&nbsp;number&nbsp;that&nbsp;can&nbsp;uniquely<br>
identify&nbsp;group&nbsp;memberships.&nbsp;&nbsp;For&nbsp;instance,&nbsp;say&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to<br>
tweak&nbsp;parameters&nbsp;is&nbsp;assigned&nbsp;a&nbsp;value&nbsp;of&nbsp;"1",&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;edit<br>
users&nbsp;is&nbsp;assigned&nbsp;a&nbsp;"2",&nbsp;and&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;create&nbsp;new&nbsp;groups&nbsp;is<br>
assigned&nbsp;the&nbsp;bitmask&nbsp;of&nbsp;"4".&nbsp;&nbsp;By&nbsp;uniquely&nbsp;combining&nbsp;the&nbsp;group&nbsp;bitmasks&nbsp;(much<br>
like&nbsp;the&nbsp;chmod&nbsp;command&nbsp;in&nbsp;UNIX,)&nbsp;you&nbsp;can&nbsp;identify&nbsp;a&nbsp;user&nbsp;is&nbsp;allowed&nbsp;to&nbsp;tweak<br>
parameters&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;edit&nbsp;users,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of<br>
"5",&nbsp;or&nbsp;a&nbsp;user&nbsp;allowed&nbsp;to&nbsp;edit&nbsp;users&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;tweak<br>
parameters,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of&nbsp;"6"&nbsp;Simple,&nbsp;huh?<br>
&nbsp;&nbsp;If&nbsp;this&nbsp;makes&nbsp;no&nbsp;sense&nbsp;to&nbsp;you,&nbsp;try&nbsp;this&nbsp;at&nbsp;the&nbsp;mysql&nbsp;prompt:<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;groups;<br>
&nbsp;&nbsp;You'll&nbsp;see&nbsp;the&nbsp;list,&nbsp;it&nbsp;makes&nbsp;much&nbsp;more&nbsp;sense&nbsp;that&nbsp;way.<br>
<br>
keyworddefs:&nbsp;&nbsp;Definitions&nbsp;of&nbsp;keywords&nbsp;to&nbsp;be&nbsp;used<br>
<br>
keywords:&nbsp;Unlike&nbsp;what&nbsp;you'd&nbsp;think,&nbsp;this&nbsp;table&nbsp;holds&nbsp;which&nbsp;keywords&nbsp;are<br>
associated&nbsp;with&nbsp;which&nbsp;bug&nbsp;id's.<br>
<br>
logincookies:&nbsp;This&nbsp;stores&nbsp;every&nbsp;login&nbsp;cookie&nbsp;ever&nbsp;assigned&nbsp;to&nbsp;you&nbsp;for&nbsp;every<br>
machine&nbsp;you've&nbsp;ever&nbsp;logged&nbsp;into&nbsp;Bugzilla&nbsp;from.&nbsp;&nbsp;Curiously,&nbsp;it&nbsp;never&nbsp;does&nbsp;any<br>
housecleaning&nbsp;--&nbsp;I&nbsp;see&nbsp;cookies&nbsp;in&nbsp;this&nbsp;file&nbsp;I've&nbsp;not&nbsp;used&nbsp;for&nbsp;months.&nbsp;&nbsp;However,<br>
since&nbsp;Bugzilla&nbsp;never&nbsp;expires&nbsp;your&nbsp;cookie&nbsp;(for&nbsp;convenience'&nbsp;sake),&nbsp;it&nbsp;makes<br>
sense.<br>
<br>
longdescs:&nbsp;&nbsp;The&nbsp;meat&nbsp;of&nbsp;bugzilla&nbsp;--&nbsp;here&nbsp;is&nbsp;where&nbsp;all&nbsp;user&nbsp;comments&nbsp;are&nbsp;stored!<br>
You've&nbsp;only&nbsp;got&nbsp;2^24&nbsp;bytes&nbsp;per&nbsp;comment&nbsp;(it's&nbsp;a&nbsp;mediumtext&nbsp;field),&nbsp;so&nbsp;speak<br>
sparingly&nbsp;--&nbsp;that's&nbsp;only&nbsp;the&nbsp;amount&nbsp;of&nbsp;space&nbsp;the&nbsp;Old&nbsp;Testament&nbsp;from&nbsp;the&nbsp;Bible<br>
would&nbsp;take&nbsp;(uncompressed,&nbsp;16&nbsp;megabytes).&nbsp;&nbsp;Each&nbsp;comment&nbsp;is&nbsp;keyed&nbsp;to&nbsp;the<br>
bug_id&nbsp;to&nbsp;which&nbsp;it's&nbsp;attached,&nbsp;so&nbsp;the&nbsp;order&nbsp;is&nbsp;necessarily&nbsp;chronological,&nbsp;for<br>
comments&nbsp;are&nbsp;played&nbsp;back&nbsp;in&nbsp;the&nbsp;order&nbsp;in&nbsp;which&nbsp;they&nbsp;are&nbsp;received.<br>
<br>
milestones:&nbsp;&nbsp;Interesting&nbsp;that&nbsp;milestones&nbsp;are&nbsp;associated&nbsp;with&nbsp;a&nbsp;specific&nbsp;product<br>
in&nbsp;this&nbsp;table,&nbsp;but&nbsp;Bugzilla&nbsp;does&nbsp;not&nbsp;yet&nbsp;support&nbsp;differing&nbsp;milestones&nbsp;by<br>
product&nbsp;through&nbsp;the&nbsp;standard&nbsp;configuration&nbsp;interfaces.<br>
<br>
namedqueries:&nbsp;&nbsp;This&nbsp;is&nbsp;where&nbsp;everybody&nbsp;stores&nbsp;their&nbsp;"custom&nbsp;queries".&nbsp;&nbsp;Very<br>
cool&nbsp;feature;&nbsp;it&nbsp;beats&nbsp;the&nbsp;tar&nbsp;out&nbsp;of&nbsp;having&nbsp;to&nbsp;bookmark&nbsp;each&nbsp;cool&nbsp;query&nbsp;you<br>
construct.<br>
<br>
products:&nbsp;&nbsp;What&nbsp;products&nbsp;you&nbsp;have,&nbsp;whether&nbsp;new&nbsp;bug&nbsp;entries&nbsp;are&nbsp;allowed&nbsp;for&nbsp;the<br>
product,&nbsp;what&nbsp;milestone&nbsp;you're&nbsp;working&nbsp;toward&nbsp;on&nbsp;that&nbsp;product,&nbsp;votes,&nbsp;etc.&nbsp;&nbsp;It<br>
will&nbsp;be&nbsp;nice&nbsp;when&nbsp;the&nbsp;components&nbsp;table&nbsp;supports&nbsp;these&nbsp;same&nbsp;features,&nbsp;so&nbsp;you<br>
could&nbsp;close&nbsp;a&nbsp;particular&nbsp;component&nbsp;for&nbsp;bug&nbsp;entry&nbsp;without&nbsp;having&nbsp;to&nbsp;close&nbsp;an<br>
entire&nbsp;product...<br>
<br>
profiles:&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you&nbsp;were&nbsp;wondering&nbsp;where&nbsp;your&nbsp;precious&nbsp;user&nbsp;information&nbsp;was<br>
stored?&nbsp;&nbsp;Here&nbsp;it&nbsp;is!&nbsp;&nbsp;With&nbsp;the&nbsp;passwords&nbsp;in&nbsp;plain&nbsp;text&nbsp;for&nbsp;all&nbsp;to&nbsp;see!&nbsp;(but<br>
sshh...&nbsp;don't&nbsp;tell&nbsp;your&nbsp;users!)<br>
<br>
profiles_activity:&nbsp;&nbsp;Need&nbsp;to&nbsp;know&nbsp;who&nbsp;did&nbsp;what&nbsp;when&nbsp;to&nbsp;who's&nbsp;profile?&nbsp;&nbsp;This'll<br>
tell&nbsp;you,&nbsp;it's&nbsp;a&nbsp;pretty&nbsp;complete&nbsp;history.<br>
<br>
shadowlog:&nbsp;&nbsp;I&nbsp;could&nbsp;be&nbsp;mistaken&nbsp;here,&nbsp;but&nbsp;I&nbsp;believe&nbsp;this&nbsp;table&nbsp;tells&nbsp;you&nbsp;when<br>
your&nbsp;shadow&nbsp;database&nbsp;is&nbsp;updated&nbsp;and&nbsp;what&nbsp;commands&nbsp;were&nbsp;used&nbsp;to&nbsp;update&nbsp;it.&nbsp;&nbsp;We<br>
don't&nbsp;use&nbsp;a&nbsp;shadow&nbsp;database&nbsp;at&nbsp;our&nbsp;site&nbsp;yet,&nbsp;so&nbsp;it's&nbsp;pretty&nbsp;empty&nbsp;for&nbsp;us.<br>
<br>
versions:&nbsp;&nbsp;Version&nbsp;information&nbsp;for&nbsp;every&nbsp;product<br>
<br>
votes:&nbsp;&nbsp;Who&nbsp;voted&nbsp;for&nbsp;what&nbsp;when<br>
<br>
watch:&nbsp;&nbsp;Who&nbsp;(according&nbsp;to&nbsp;userid)&nbsp;is&nbsp;watching&nbsp;who's&nbsp;bugs&nbsp;(according&nbsp;to&nbsp;their<br>
userid).<br>
<br>
<br>
===<br>
THE&nbsp;DETAILS<br>
===<br>
<br>
&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you're&nbsp;wondering&nbsp;just&nbsp;what&nbsp;to&nbsp;do&nbsp;with&nbsp;the&nbsp;information&nbsp;above?&nbsp;&nbsp;At&nbsp;the<br>
mysql&nbsp;prompt,&nbsp;you&nbsp;can&nbsp;view&nbsp;any&nbsp;information&nbsp;about&nbsp;the&nbsp;columns&nbsp;in&nbsp;a&nbsp;table&nbsp;with<br>
this&nbsp;command&nbsp;(where&nbsp;"table"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;table&nbsp;you&nbsp;wish&nbsp;to&nbsp;view):<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;table;<br>
<br>
&nbsp;&nbsp;You&nbsp;can&nbsp;also&nbsp;view&nbsp;all&nbsp;the&nbsp;data&nbsp;in&nbsp;a&nbsp;table&nbsp;with&nbsp;this&nbsp;command:<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table;<br>
<br>
&nbsp;&nbsp;--&nbsp;note:&nbsp;this&nbsp;is&nbsp;a&nbsp;very&nbsp;bad&nbsp;idea&nbsp;to&nbsp;do&nbsp;on,&nbsp;for&nbsp;instance,&nbsp;the&nbsp;"bugs"&nbsp;table&nbsp;if<br>
you&nbsp;have&nbsp;50,000&nbsp;bugs.&nbsp;&nbsp;You'll&nbsp;be&nbsp;sitting&nbsp;there&nbsp;a&nbsp;while&nbsp;until&nbsp;you&nbsp;ctrl-c&nbsp;or<br>
50,000&nbsp;bugs&nbsp;play&nbsp;across&nbsp;your&nbsp;screen.<br>
<br>
&nbsp;&nbsp;You&nbsp;can&nbsp;limit&nbsp;the&nbsp;display&nbsp;from&nbsp;above&nbsp;a&nbsp;little&nbsp;with&nbsp;the&nbsp;command,&nbsp;where<br>
"column"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;column&nbsp;for&nbsp;which&nbsp;you&nbsp;wish&nbsp;to&nbsp;restrict&nbsp;information:<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;=&nbsp;"some&nbsp;info");<br>
<br>
&nbsp;&nbsp;--&nbsp;or&nbsp;the&nbsp;reverse&nbsp;of&nbsp;this<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;!=&nbsp;"some&nbsp;info");<br>
<br>
&nbsp;&nbsp;Let's&nbsp;take&nbsp;our&nbsp;example&nbsp;from&nbsp;the&nbsp;introduction,&nbsp;and&nbsp;assume&nbsp;you&nbsp;need&nbsp;to&nbsp;change<br>
the&nbsp;word&nbsp;"verified"&nbsp;to&nbsp;"approved"&nbsp;in&nbsp;the&nbsp;resolution&nbsp;field.&nbsp;&nbsp;We&nbsp;know&nbsp;from&nbsp;the<br>
above&nbsp;information&nbsp;that&nbsp;the&nbsp;resolution&nbsp;is&nbsp;likely&nbsp;to&nbsp;be&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"<br>
table.&nbsp;Note&nbsp;we'll&nbsp;need&nbsp;to&nbsp;change&nbsp;a&nbsp;little&nbsp;perl&nbsp;code&nbsp;as&nbsp;well&nbsp;as&nbsp;this&nbsp;database<br>
change,&nbsp;but&nbsp;I&nbsp;won't&nbsp;plunge&nbsp;into&nbsp;that&nbsp;in&nbsp;this&nbsp;document.&nbsp;Let's&nbsp;verify&nbsp;the<br>
information&nbsp;is&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"&nbsp;table:<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs<br>
<br>
&nbsp;&nbsp;(exceedingly&nbsp;long&nbsp;output&nbsp;truncated&nbsp;here)<br>
|&nbsp;bug_status|&nbsp;enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL&nbsp;|&nbsp;UNCONFIRMED||<br>
<br>
&nbsp;&nbsp;Sorry&nbsp;about&nbsp;that&nbsp;long&nbsp;line.&nbsp;&nbsp;We&nbsp;see&nbsp;from&nbsp;this&nbsp;that&nbsp;the&nbsp;"bug&nbsp;status"&nbsp;column&nbsp;is<br>
an&nbsp;"enum&nbsp;field",&nbsp;which&nbsp;is&nbsp;a&nbsp;MySQL&nbsp;peculiarity&nbsp;where&nbsp;a&nbsp;string&nbsp;type&nbsp;field&nbsp;can<br>
only&nbsp;have&nbsp;certain&nbsp;types&nbsp;of&nbsp;entries.&nbsp;&nbsp;While&nbsp;I&nbsp;think&nbsp;this&nbsp;is&nbsp;very&nbsp;cool,&nbsp;it's&nbsp;not<br>
standard&nbsp;SQL.&nbsp;&nbsp;Anyway,&nbsp;we&nbsp;need&nbsp;to&nbsp;add&nbsp;the&nbsp;possible&nbsp;enum&nbsp;field&nbsp;entry<br>
'APPROVED'&nbsp;by&nbsp;altering&nbsp;the&nbsp;"bugs"&nbsp;table.<br>
<br>
mysql&#62;&nbsp;ALTER&nbsp;table&nbsp;bugs&nbsp;CHANGE&nbsp;bug_status&nbsp;bug_status<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;enum("UNCONFIRMED",&nbsp;"NEW",&nbsp;"ASSIGNED",&nbsp;"REOPENED",&nbsp;"RESOLVED",<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;"VERIFIED",&nbsp;"APPROVED",&nbsp;"CLOSED")&nbsp;not&nbsp;null;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;(note&nbsp;we&nbsp;can&nbsp;take&nbsp;three&nbsp;lines&nbsp;or&nbsp;more&nbsp;--&nbsp;whatever&nbsp;you&nbsp;put&nbsp;in&nbsp;before&nbsp;the<br>
semicolon&nbsp;is&nbsp;evaluated&nbsp;as&nbsp;a&nbsp;single&nbsp;expression)<br>
<br>
Now&nbsp;if&nbsp;you&nbsp;do&nbsp;this:<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs;<br>
<br>
&nbsp;&nbsp;you'll&nbsp;see&nbsp;that&nbsp;the&nbsp;bug_status&nbsp;field&nbsp;has&nbsp;an&nbsp;extra&nbsp;"APPROVED"&nbsp;enum&nbsp;that's<br>
available!&nbsp;&nbsp;Cool&nbsp;thing,&nbsp;too,&nbsp;is&nbsp;that&nbsp;this&nbsp;is&nbsp;reflected&nbsp;on&nbsp;your&nbsp;query&nbsp;page&nbsp;as<br>
well&nbsp;--&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;new&nbsp;status.&nbsp;&nbsp;But&nbsp;how's&nbsp;it&nbsp;fit&nbsp;into&nbsp;the&nbsp;existing<br>
scheme&nbsp;of&nbsp;things?<br>
&nbsp;&nbsp;Looks&nbsp;like&nbsp;you&nbsp;need&nbsp;to&nbsp;go&nbsp;back&nbsp;and&nbsp;look&nbsp;for&nbsp;instances&nbsp;of&nbsp;the&nbsp;word&nbsp;"verified"<br>
in&nbsp;the&nbsp;perl&nbsp;code&nbsp;for&nbsp;Bugzilla&nbsp;--&nbsp;wherever&nbsp;you&nbsp;find&nbsp;"verified",&nbsp;change&nbsp;it&nbsp;to<br>
"approved"&nbsp;and&nbsp;you're&nbsp;in&nbsp;business&nbsp;(make&nbsp;sure&nbsp;that's&nbsp;a&nbsp;case-insensitive&nbsp;search).<br>
Although&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;enum&nbsp;field,&nbsp;you&nbsp;can't&nbsp;give&nbsp;something&nbsp;a&nbsp;status<br>
of&nbsp;"APPROVED"&nbsp;until&nbsp;you&nbsp;make&nbsp;the&nbsp;perl&nbsp;changes.&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;this&nbsp;change&nbsp;I<br>
mentioned&nbsp;can&nbsp;also&nbsp;be&nbsp;done&nbsp;by&nbsp;editing&nbsp;checksetup.pl,&nbsp;which&nbsp;automates&nbsp;a&nbsp;lot&nbsp;of<br>
this.&nbsp;&nbsp;But&nbsp;you&nbsp;need&nbsp;to&nbsp;know&nbsp;this&nbsp;stuff&nbsp;anyway,&nbsp;right?<br>
<br>
&nbsp;&nbsp;I&nbsp;hope&nbsp;this&nbsp;database&nbsp;tutorial&nbsp;has&nbsp;been&nbsp;useful&nbsp;for&nbsp;you.&nbsp;&nbsp;If&nbsp;you&nbsp;have&nbsp;comments<br>
to&nbsp;add,&nbsp;questions,&nbsp;concerns,&nbsp;etc.&nbsp;please&nbsp;direct&nbsp;them&nbsp;to<br>
mbarnson@excitehome.net.&nbsp;&nbsp;Please&nbsp;direct&nbsp;flames&nbsp;to&nbsp;/dev/null&nbsp;:)&nbsp;&nbsp;Have&nbsp;a&nbsp;nice<br>
day!<br>
<br>
<br>
<br>
===<br>
LINKS<br>
===<br>
<br>
Great&nbsp;MySQL&nbsp;tutorial&nbsp;site:<br>
http://www.devshed.com/Server_Side/MySQL/<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dbschema.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="granttables.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Database Schema Chart</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="database.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>MySQL Permissions &#38; Grant Tables</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Database Schema Chart</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="PREVIOUS"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="NEXT"
TITLE="MySQL Bugzilla Database Introduction"
HREF="dbdoc.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="database.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="dbdoc.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DBSCHEMA"
>B.1. Database Schema Chart</A
></H1
><P
> <DIV
CLASS="MEDIAOBJECT"
><P
><IMG
SRC="dbschema.jpg"
ALT="Database Relationships"
></IMG
><DIV
CLASS="CAPTION"
><P
>Bugzilla database relationships chart</P
></DIV
></P
></DIV
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="database.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="dbdoc.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The Bugzilla Database</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="database.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>MySQL Bugzilla Database Introduction</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Disclaimer</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Copyright Information"
HREF="copyright.html"><LINK
REL="NEXT"
TITLE="New Versions"
HREF="newversions.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="copyright.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="newversions.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DISCLAIMER"
>1.3. Disclaimer</A
></H1
><P
> No liability for the contents of this document can be accepted.
Use the concepts, examples, and other content at your own risk.
As this is a new edition of this document, there may be errors
and inaccuracies that may damage your system. Use of this document
may cause your girlfriend to leave you, your cats to pee on your
furniture and clothing, your computer to cease functioning, your
boss to fire you, and global thermonuclear war. Proceed with caution.
</P
><P
> All copyrights are held by their respective owners, unless specifically
noted otherwise. Use of a term in this document should not be regarded
as affecting the validity of any trademark or service mark.
In particular, I like to put down Microsoft(tm). Live with it.
</P
><P
> Naming of particular products or brands should not be seen as endorsements,
with the exception of the term "GNU/Linux".
Use GNU/Linux. Love it. Bathe with it. It is life and happiness.
I endorse it wholeheartedly and encourage you to do the same.
</P
><P
> You are strongly recommended to make a backup of your system before
installing Bugzilla and at regular intervals thereafter. Heaven knows
it's saved my bacon time after time; if you implement any suggestion in
this Guide, implement this one!
</P
><P
> Bugzilla has not undergone a complete security review.
Security holes probably exist in the code.
Great care should be taken both in the installation and usage of this software.
Carefully consider the implications of installing other network services with Bugzilla.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="copyright.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="newversions.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Copyright Information</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>New Versions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The Bugzilla FAQ</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Bugzilla 3.0"
HREF="bz30.html"><LINK
REL="NEXT"
TITLE="The Bugzilla Database"
HREF="database.html"></HEAD
><BODY
CLASS="APPENDIX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="bz30.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="database.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="FAQ"
>Appendix A. The Bugzilla FAQ</A
></H1
><DIV
CLASS="QANDASET"
><DL
><DT
>1. <A
HREF="faq.html#FAQ_GENERAL"
>General Questions</A
></DT
><DD
><DL
><DT
>A.1.1. <A
HREF="faq.html#AEN947"
> Where can I find information about Bugzilla?</A
></DT
><DT
>A.1.2. <A
HREF="faq.html#AEN953"
> What license is Bugzilla distributed under?
</A
></DT
><DT
>A.1.3. <A
HREF="faq.html#AEN959"
> How do I get commercial support for Bugzilla?
</A
></DT
><DT
>A.1.4. <A
HREF="faq.html#AEN966"
> What major companies or projects are currently using Bugzilla
for bug-tracking?
</A
></DT
><DT
>A.1.5. <A
HREF="faq.html#AEN991"
> Who maintains Bugzilla?
</A
></DT
><DT
>A.1.6. <A
HREF="faq.html#AEN996"
> How does Bugzilla stack up against other bug-tracking databases?
</A
></DT
><DT
>A.1.7. <A
HREF="faq.html#AEN1003"
> How do I change my user name in Bugzilla?
</A
></DT
><DT
>A.1.8. <A
HREF="faq.html#AEN1008"
> Why doesn't Bugzilla offer this or that feature or compatability
with this other tracking software?
</A
></DT
><DT
>A.1.9. <A
HREF="faq.html#AEN1015"
> Why MySQL? I'm interested in seeing Bugzilla run on
Oracle/Sybase/Msql/PostgreSQL/MSSQL?
</A
></DT
><DT
>A.1.10. <A
HREF="faq.html#AEN1033"
> Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
"/usr/bin/perl" or something else?
</A
></DT
></DL
></DD
><DT
>2. <A
HREF="faq.html#FAQ_REDHAT"
>Red Hat Bugzilla</A
></DT
><DD
><DL
><DT
>A.2.1. <A
HREF="faq.html#AEN1046"
> What about Red Hat Bugzilla?
</A
></DT
><DT
>A.2.2. <A
HREF="faq.html#AEN1054"
> What are the primary benefits of Red Hat Bugzilla?
</A
></DT
><DT
>A.2.3. <A
HREF="faq.html#AEN1082"
> What's the current status of Red Hat Bugzilla?
</A
></DT
></DL
></DD
><DT
>3. <A
HREF="faq.html#FAQ_LOKI"
>Loki Bugzilla (AKA Fenris)</A
></DT
><DD
><DL
><DT
>A.3.1. <A
HREF="faq.html#AEN1097"
> What about Loki Bugzilla?
</A
></DT
><DT
>A.3.2. <A
HREF="faq.html#AEN1104"
> Who maintains Fenris (Loki Bugzilla) now?
</A
></DT
><DT
>A.3.3. <A
HREF="faq.html#AEN1109"
>
</A
></DT
></DL
></DD
><DT
>4. <A
HREF="faq.html#FAQ_PHB"
>Pointy-Haired-Boss Questions</A
></DT
><DD
><DL
><DT
>A.4.1. <A
HREF="faq.html#AEN1116"
> Is Bugzilla web-based or do you have to have specific software or
specific operating system on your machine?
</A
></DT
><DT
>A.4.2. <A
HREF="faq.html#AEN1121"
> Has anyone you know of already done any Bugzilla integration with
Perforce (SCM software)?
</A
></DT
><DT
>A.4.3. <A
HREF="faq.html#AEN1126"
> Does Bugzilla allow the user to track multiple projects?
</A
></DT
><DT
>A.4.4. <A
HREF="faq.html#AEN1131"
> If I am on many projects, and search for all bugs assigned to me, will
Bugzilla list them for me and allow me to sort by project, severity etc?
</A
></DT
><DT
>A.4.5. <A
HREF="faq.html#AEN1136"
> Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
are there any that are NOT allowed?
</A
></DT
><DT
>A.4.6. <A
HREF="faq.html#AEN1141"
> 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.4.7. <A
HREF="faq.html#AEN1146"
> Does Bugzilla provide any reporting features, metrics, graphs, etc? You
know, the type of stuff that management likes to see. :)
</A
></DT
><DT
>A.4.8. <A
HREF="faq.html#AEN1154"
> Is there email notification and if so, what do you see when you get an
email? Do you see bug number and title or is it only the number?
</A
></DT
><DT
>A.4.9. <A
HREF="faq.html#AEN1159"
> Can email notification be set up to send to multiple
people, some on the To List, CC List, BCC List etc?
</A
></DT
><DT
>A.4.10. <A
HREF="faq.html#AEN1164"
> If there is email notification, do users have to have any particular
type of email application?
</A
></DT
><DT
>A.4.11. <A
HREF="faq.html#AEN1171"
> If I just wanted to track certain bugs, as they go through life, can I
set it up to alert me via email whenever that bug changes, whether it be
owner, status or description etc.?
</A
></DT
><DT
>A.4.12. <A
HREF="faq.html#AEN1176"
> Does Bugzilla allow data to be imported and exported? If I had outsiders
write up a bug report using a MS Word bug template, could that template be
imported into "matching" fields? If I wanted to take the results of a query
and export that data to MS Excel, could I do that?
</A
></DT
><DT
>A.4.13. <A
HREF="faq.html#AEN1184"
> Does Bugzilla allow fields to be added, changed or deleted? If I want to
customize the bug submission form to meet our needs, can I do that using our
terminology?
</A
></DT
><DT
>A.4.14. <A
HREF="faq.html#AEN1189"
> Has anyone converted Bugzilla to another language to be used in other
countries? Is it localizable?
</A
></DT
><DT
>A.4.15. <A
HREF="faq.html#AEN1194"
> Can a user create and save reports? Can they do this in Word format?
Excel format?
</A
></DT
><DT
>A.4.16. <A
HREF="faq.html#AEN1199"
> Can a user re-run a report with a new project, same query?
</A
></DT
><DT
>A.4.17. <A
HREF="faq.html#AEN1204"
> Can a user modify an existing report and then save it into another name?
</A
></DT
><DT
>A.4.18. <A
HREF="faq.html#AEN1209"
> Does Bugzilla have the ability to search by word, phrase, compound
search?
</A
></DT
><DT
>A.4.19. <A
HREF="faq.html#AEN1214"
> Can the admin person establish separate group and individual user
privileges?
</A
></DT
><DT
>A.4.20. <A
HREF="faq.html#AEN1219"
> 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.4.21. <A
HREF="faq.html#AEN1224"
> Are there any backup features provided?
</A
></DT
><DT
>A.4.22. <A
HREF="faq.html#AEN1230"
> Can users be on the system while a backup is in progress?
</A
></DT
><DT
>A.4.23. <A
HREF="faq.html#AEN1235"
> What type of human resources are needed to be on staff to install and
maintain Bugzilla? Specifically, what type of skills does the person need to
have? I need to find out if we were to go with Bugzilla, what types of
individuals would we need to hire and how much would that cost vs buying an
"Out-of-the-Box" solution.
</A
></DT
><DT
>A.4.24. <A
HREF="faq.html#AEN1242"
> What time frame are we looking at if we decide to hire people to install
and maintain the Bugzilla? Is this something that takes hours or weeks to
install and a couple of hours per week to maintain and customize or is this
a multi-week install process, plus a full time job for 1 person, 2 people,
etc?
</A
></DT
><DT
>A.4.25. <A
HREF="faq.html#AEN1247"
> Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
</A
></DT
></DL
></DD
><DT
>5. <A
HREF="faq.html#FAQ_INSTALL"
>Bugzilla Installation</A
></DT
><DD
><DL
><DT
>A.5.1. <A
HREF="faq.html#AEN1254"
> How do I download and install Bugzilla?
</A
></DT
><DT
>A.5.2. <A
HREF="faq.html#AEN1260"
> How do I install Bugzilla on Windows NT?
</A
></DT
><DT
>A.5.3. <A
HREF="faq.html#AEN1265"
> Is there an easy way to change the Bugzilla cookie name?
</A
></DT
></DL
></DD
><DT
>6. <A
HREF="faq.html#FAQ_SECURITY"
>Bugzilla Security</A
></DT
><DD
><DL
><DT
>A.6.1. <A
HREF="faq.html#AEN1272"
> How do I completely disable MySQL security if it's giving me problems
(I've followed the instructions in the README!)?
</A
></DT
><DT
>A.6.2. <A
HREF="faq.html#AEN1278"
> Are there any security problems with Bugzilla?
</A
></DT
><DT
>A.6.3. <A
HREF="faq.html#AEN1283"
> I've implemented the security fixes mentioned in Chris Yeh's security
advisory of 5/10/2000 advising not to run MySQL as root, and am running into
problems with MySQL no longer working correctly.
</A
></DT
></DL
></DD
><DT
>7. <A
HREF="faq.html#FAQ_EMAIL"
>Bugzilla Email</A
></DT
><DD
><DL
><DT
>A.7.1. <A
HREF="faq.html#AEN1290"
> 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.7.2. <A
HREF="faq.html#AEN1295"
> 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.7.3. <A
HREF="faq.html#AEN1300"
> I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
</A
></DT
><DT
>A.7.4. <A
HREF="faq.html#AEN1306"
> I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
</A
></DT
><DT
>A.7.5. <A
HREF="faq.html#AEN1313"
> How do I set up the email interface to submit/change bugs via email?
</A
></DT
><DT
>A.7.6. <A
HREF="faq.html#AEN1318"
> Email takes FOREVER to reach me from bugzilla -- it's extremely slow.
What gives?
</A
></DT
><DT
>A.7.7. <A
HREF="faq.html#AEN1325"
> How come email never reaches me from bugzilla changes?
</A
></DT
></DL
></DD
><DT
>8. <A
HREF="faq.html#FAQ_DB"
>Bugzilla Database</A
></DT
><DD
><DL
><DT
>A.8.1. <A
HREF="faq.html#AEN1333"
> I've heard Bugzilla can be used with Oracle?
</A
></DT
><DT
>A.8.2. <A
HREF="faq.html#AEN1338"
> Bugs are missing from queries, but exist in the database (and I can pull
them up by specifying the bug ID). What's wrong?
</A
></DT
><DT
>A.8.3. <A
HREF="faq.html#AEN1343"
> I think my database might be corrupted, or contain invalid entries. What
do I do?
</A
></DT
><DT
>A.8.4. <A
HREF="faq.html#AEN1348"
> I want to manually edit some entries in my database. How?
</A
></DT
><DT
>A.8.5. <A
HREF="faq.html#AEN1353"
> I try to add myself as a user, but Bugzilla always tells me my password is wrong.
</A
></DT
><DT
>A.8.6. <A
HREF="faq.html#AEN1358"
> I think I've set up MySQL permissions correctly, but bugzilla still can't
connect.
</A
></DT
><DT
>A.8.7. <A
HREF="faq.html#AEN1363"
> How do I synchronize bug information among multiple different Bugzilla
databases?
</A
></DT
><DT
>A.8.8. <A
HREF="faq.html#AEN1370"
> Why do I get bizarre errors when trying to submit data, particularly problems
with "groupset"?
</A
></DT
><DT
>A.8.9. <A
HREF="faq.html#AEN1375"
> How come even after I delete bugs, the long descriptions show up?
</A
></DT
></DL
></DD
><DT
>9. <A
HREF="faq.html#FAQ_NT"
>Bugzilla and Win32</A
></DT
><DD
><DL
><DT
>A.9.1. <A
HREF="faq.html#AEN1382"
> What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
</A
></DT
><DT
>A.9.2. <A
HREF="faq.html#AEN1387"
> Is there a "Bundle::Bugzilla" equivalent for Win32?
</A
></DT
><DT
>A.9.3. <A
HREF="faq.html#AEN1392"
> CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
</A
></DT
><DT
>A.9.4. <A
HREF="faq.html#AEN1400"
> Can I have some general instructions on how to make Bugzilla on Win32 work?
</A
></DT
><DT
>A.9.5. <A
HREF="faq.html#AEN1406"
> I'm having trouble with the perl modules for NT not being able to talk to
to the database.
</A
></DT
></DL
></DD
><DT
>10. <A
HREF="faq.html#FAQ_USE"
>Bugzilla Usage</A
></DT
><DD
><DL
><DT
>A.10.1. <A
HREF="faq.html#AEN1427"
> The query page is very confusing. Isn't there a simpler way to query?
</A
></DT
><DT
>A.10.2. <A
HREF="faq.html#AEN1433"
> I'm confused by the behavior of the "accept" button in the Show Bug form.
Why doesn't it assign the bug to me when I accept it?
</A
></DT
><DT
>A.10.3. <A
HREF="faq.html#AEN1443"
> I can't upload anything into the database via the "Create Attachment"
link. What am I doing wrong?
</A
></DT
><DT
>A.10.4. <A
HREF="faq.html#AEN1448"
> Email submissions to Bugzilla that have attachments end up asking me to
save it as a "cgi" file.
</A
></DT
><DT
>A.10.5. <A
HREF="faq.html#AEN1453"
> How do I change a keyword in Bugzilla, once some bugs are using it?
</A
></DT
></DL
></DD
><DT
>11. <A
HREF="faq.html#FAQ_HACKING"
>Bugzilla Hacking</A
></DT
><DD
><DL
><DT
>A.11.1. <A
HREF="faq.html#AEN1460"
> What bugs are in Bugzilla right now?
</A
></DT
><DT
>A.11.2. <A
HREF="faq.html#AEN1469"
> 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="AEN947"
></A
><B
>A.1.1. </B
> Where can I find information about Bugzilla?</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You can stay up-to-date with the latest Bugzilla
information at <A
HREF="http://www.mozilla.org/projects/bugzilla/"
TARGET="_top"
> http://www.mozilla.org/projects/bugzilla/</A
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN953"
></A
><B
>A.1.2. </B
> What license is Bugzilla distributed under?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Bugzilla is covered by the Mozilla Public License.
See details at <A
HREF="http://www.mozilla.org/MPL/"
TARGET="_top"
> http://www.mozilla.org/MPL/</A
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN959"
></A
><B
>A.1.3. </B
> How do I get commercial support for Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> <A
HREF="http://www.collab.net/"
TARGET="_top"
>www.collab.net</A
> offers
Bugzilla as part of their standard offering to large projects.
They do have some minimum fees that are pretty hefty, and generally
aren't interested in small projects.
</P
><P
> There are several experienced
Bugzilla hackers on the mailing list/newsgroup who are willing
to whore themselves out 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="AEN966"
></A
><B
>A.1.4. </B
> What major companies or projects are currently using Bugzilla
for bug-tracking?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> There are <EM
>dozens</EM
> of major comapanies with public
Bugzilla sites to track bugs in their products. A few include:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>Netscape/AOL</TD
></TR
><TR
><TD
>Mozilla.org</TD
></TR
><TR
><TD
>AtHome Corporation</TD
></TR
><TR
><TD
>Red Hat Software</TD
></TR
><TR
><TD
>Loki Entertainment Software</TD
></TR
><TR
><TD
>SuSe Corp</TD
></TR
><TR
><TD
>The Horde Project</TD
></TR
><TR
><TD
>The Eazel Project</TD
></TR
><TR
><TD
>AbiSource</TD
></TR
><TR
><TD
>Real Time Enterprises, Inc</TD
></TR
><TR
><TD
>Eggheads.org</TD
></TR
><TR
><TD
>Strata Software</TD
></TR
><TR
><TD
>RockLinux</TD
></TR
><TR
><TD
>Creative Labs (makers of SoundBlaster)</TD
></TR
><TR
><TD
>The Apache Foundation</TD
></TR
><TR
><TD
>The Gnome Foundation</TD
></TR
><TR
><TD
>Linux-Mandrake</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
><P
> Suffice to say, there are more than enough huge projects using Bugzilla
that we can safely say it's extremely popular.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN991"
></A
><B
>A.1.5. </B
> Who maintains Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> There are many, many contributors from around the world maintaining Bugzilla.
The designated "Maintainer" is Tara Hernandez, with QA support by Matthew Tuck.
Dan Mosedale and Dawn Endico are employees of Mozilla.org responsible for the
installation of Bugzilla there, and are very frequent code contributors.
Terry Weissman originally ported Bugzilla, but "these days, Terry just hangs around
and heckles." The rest of us are mostly transient developers; Bugzilla suits
our needs, and we contribute code as we have needs for updates.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN996"
></A
><B
>A.1.6. </B
> How does Bugzilla stack up against other bug-tracking databases?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> A year has gone by, and I <EM
>still</EM
> can't find any head-to-head
comparisons of Bugzilla against other defect-tracking software. However, from my
personal experience with other bug-trackers, Bugzilla offers
superior performance on commodity hardware, better price (free!), more developer-
friendly features (such as stored queries, email integration, and platform
independence), improved scalability, open source code, greater flexibility,
and superior ease-of-use.
</P
><P
> If you happen to be a commercial Bugzilla vendor, please step forward with a rebuttal
so I can include it in the FAQ. We're not in pursuit of Bugzilla ueber alles;
we simply love having a powerful, open-source tool to get our jobs done.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1003"
></A
><B
>A.1.7. </B
> How do I change my user name in Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You can't. However, the administrative account can, by simply opening
your user account in editusers.cgi and changing the login name.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1008"
></A
><B
>A.1.8. </B
> Why doesn't Bugzilla offer this or that feature or compatability
with this other tracking software?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> It may be that the support has not been built yet, or that you
have not yet found it. Bugzilla is making tremendous strides in
usability, customizability, scalability, and user interface. It
is widely considered the most complete and popular open-source
bug-tracking software in existence.
</P
><P
> That doesn't mean it can't use improvement!
You can help the project along by either hacking a patch yourself
that supports the functionality you require, or else submitting a
"Request for Enhancement" (RFE) using the bug submission interface
at <A
HREF="http://bugzilla.mozilla.org/"
TARGET="_top"
>bugzilla.mozilla.org</A
>.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1015"
></A
><B
>A.1.9. </B
> Why MySQL? I'm interested in seeing Bugzilla run on
Oracle/Sybase/Msql/PostgreSQL/MSSQL?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
>Terry Weissman answers,
<A
NAME="AEN1019"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> You're not the only one. But <EM
>I</EM
> am not very interested. I'm not
a real SQL or database person. I just wanted to make a useful tool,
and build it on top of free software. So, I picked MySQL, and
learned SQL by staring at the MySQL manual and some code lying
around here, and
wrote Bugzilla. I didn't know that Enum's were non-standard SQL.
I'm not sure if I would have cared, but I didn't even know. So, to
me, things are "portable" because it uses MySQL, and MySQL is
portable enough. I fully understand (now) that people want to be
portable to other databases, but that's never been a real concern
of mine.
</P
></BLOCKQUOTE
>
</P
><P
> Things aren't quite that grim these days, however. Terry pretty much
sums up much of the thinking many of us have for Bugzilla, but there
is light on the horizon for database-independence! Here are some options:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <EM
><A
HREF="http://bugzilla.redhat.com/"
TARGET="_top"
>Red Hat Bugzilla</A
></EM
>:
Runs a modified Bugzilla 2.8 atop an Oracle database.
</TD
></TR
><TR
><TD
> <EM
><A
HREF="http://sourceforge.net/projects/interzilla"
TARGET="_top"
>Interzilla</A
></EM
>:
A project to run Bugzilla on Interbase. No code released yet, however.
</TD
></TR
><TR
><TD
> <EM
>Bugzilla 3.0</EM
>: One of the primary stated goals
is multiple database support.
</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1033"
></A
><B
>A.1.10. </B
> Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
"/usr/bin/perl" or something else?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Mozilla.org uses /usr/bonsaitools/bin/perl. The prime rule in making
submissions is "don't break bugzilla.mozilla.org". If it breaks it, your
patch will be reverted faster than you can do a diff.
</P
><P
> Here's Terry Weissman's comment, for some historical context:
<A
NAME="AEN1038"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> [This was] purely my own convention. I wanted a place to put a version of
Perl and other tools that was strictly under my control for the
various webtools, and not subject to anyone else. Edit it to point
to whatever you like.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> We always recommend that, if possible, you keep the path
as /usr/bonsaitools/bin/perl, and simply add a /usr/bonsaitools
and /usr/bonsaitools/bin directory, then symlink your version
of perl to /usr/bonsaitools/bin/perl. This will make upgrading
your Bugzilla much easier in the future.
</P
><P
> Obviously, if you do not have root access to your Bugzilla
box, our suggestion is irrelevant.
</P
></BLOCKQUOTE
></DIV
></BLOCKQUOTE
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_REDHAT"
></A
>2. Red Hat Bugzilla</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1046"
></A
><B
>A.2.1. </B
> What about Red Hat Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Red Hat Bugzilla is arguably more user-friendly, customizable, and scalable
than stock Bugzilla. Check it out at
http://bugzilla.redhat.com and the sources at ftp://people.redhat.com/dkl/.
They've set their Bugzilla up to work with Oracle out of the box.
Note that Redhat Bugzilla is based upon the 2.8 Bugzilla tree;
Bugzilla has made some tremendous advances since the 2.8 release.
Why not download both Bugzillas to check out the differences for
yourself?
</P
><P
> Dave Lawrence, the original Red Hat Bugzilla maintainer, mentions:
<A
NAME="AEN1051"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> Somebody needs to take the ball and run with it. I'm the only
maintainer and am very pressed for time.
</P
></BLOCKQUOTE
>
If you, or someone you know, has the time and expertise to do the integration
work so main-tree Bugzilla 2.12 and higher integrates the Red
Hat Bugzilla Oracle modifications, please donate your
time to supporting the Bugzilla project.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1054"
></A
><B
>A.2.2. </B
> What are the primary benefits of Red Hat Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> <EM
>Dave Lawrence</EM
>:
<A
NAME="AEN1059"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> For the record, we are not using any template type implementation for
the cosmetic changes maded to Bugzilla. It is just alot of html changes
in the code itself. I admit I may have gotten a little carried away with it
but the corporate types asked for a more standardized interface to match up
with other projects relating to Red Hat web sites. A lot of other web based
internal tools I am working on also look like Bugzilla.
</P
><P
> I do want to land the changes that I have made to Bugzilla but I may
have to back out a good deal and make a different version of Red Hat's
Bugzilla for checking in to CVS. Especially the cosmetic changes because it
seems they may not fit the general public. I will do that as soon as I can.
I also still do my regular QA responsibilities along with Bugzilla so time
is difficult sometimes to come by.
</P
><P
> There are also a good deal of other changes that were requested by
management for things like support contracts and different permission
groups for making bugs private. Here is a short list of the major
changes that have been made:
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> No enum types. All old enum types are now separate smaller tables.
</P
></LI
><LI
><P
> No bit wise operations. Not all databases support this so they were
changed to a more generic way of doing this task
</P
></LI
><LI
><P
> Bug reports can only be altered by the reporter, assignee, or a
privileged bugzilla user. The rest of the world can see the bug but in
a non-changeable format (unless the bug has been marked private). They
can however add comments, add and remove themselves from the CC list
</P
></LI
><LI
><P
> Different group scheme. Each group has an id number related to it.
There is a user_group table which contains userid to groupid mappings
to determine which groups each user belongs to. Additionally there is
a bug_group table that has bugid to groupid mappings to show which
groups can see a particular bug. If there are no entries for a bug in
this table then the bug is public.
</P
></LI
><LI
><P
> Product groups. product_table created to only allow certain products to
be visible for certain groups in both bug entry and query. This was
particulary helpful for support contracts.
</P
></LI
><LI
><P
> Of course many (too many) changes to Bugzilla code itself to allow use
with Oracle and still allow operation with Mysql if so desired.
Currently if you use Mysql it is set to use Mysql's old permission
scheme to keep breakage to a minimum. Hopefully one day this will
standardize on one style which may of course be something completely
different.
</P
></LI
><LI
><P
> Uses Text::Template perl module for rendering of the dynamic HTML pages
such as enter_bug.cgi, query.cgi, bug_form.pl, and for the header and
footer parts of the page. This allows the html to be separate from the
perl code for customizing the look and feel of the page to one's
preference.
</P
></LI
><LI
><P
> There are many other smaller changes. There is also a port to Oracle
that I have been working on as time permits but is not completely
finished but somewhat usable. I will merge it into our standard code
base when it becomes production quality. Unfortunately there will have
to be some conditionals in the code to make it work with other than
Oracle due to some differences between Oracle and Mysql.
</P
></LI
></OL
><P
> Both the Mysql and Oracle versions of our current code base are
available from ftp://people.redhat.com/dkl. If Terry/Tara wants I can submit
patch files for all of the changes I have made and he can determine what is
suitable for addition to the main bugzilla cade base. But for me to commit
changes to the actual CVS I will need to back out alot of things that are
not suitable for the rest of the Bugzilla community. I am open to
suggestions.
</P
></BLOCKQUOTE
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1082"
></A
><B
>A.2.3. </B
> What's the current status of Red Hat Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> <DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> This information is somewhat dated; I last updated it
7 June 2000.
</P
></BLOCKQUOTE
></DIV
>
<EM
>Dave Lawrence</EM
>:
<A
NAME="AEN1089"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> I suppose the current thread warrants an update on the status of
Oracle and bugzilla ;) We have now been running Bugzilla 2.8 on
Oracle for the last two days in our production environment. I
tried to do as much testing as possible with it before going live
which is some of the reason for the long delay. I did not get
enough feedback as I would have liked from internal developers to
help weed out any bugs still left so I said "Fine, i will take it
live and then I will get the feedback I want :)" So it is now
starting to stabilize and it running quite well after working
feverishly the last two days fixing problems as soon as they came
in from the outside world. The current branch in cvs is up2date if
anyone would like to grab it and try it out. The oracle _setup.pl
is broken right now due to some last minute changes but I will
update that soon. Therefore you would probably need to create the
database tables the old fashioned way using the supplied sql
creation scripts located in the ./oracle directory. We have heavy
optimizations in the database it self thanks to the in-house DBA
here at Red Hat so it is running quite fast. The database itself
is located on a dual PII450 with 1GB ram and 14 high voltage
differential raided scsi drives. The tables and indexes are
partitioned in 4 chuncks across the raided drive which is nice
because when ever you need to do a full table scan, it is actually
starting in 4 different locations on 4 different drives
simultaneously. And the indexes of course are on separate drives
from the data so that speeds things up tremendously. When I can
find the time I will document all that we have done to get this
thing going to help others that may need it.
</P
><P
> As Matt has mentioned it is still using out-dated code and with a
little help I would like to bring everything up to date for
eventual incorporation with the main cvs tree. Due to other
duties I have with the company any help with this wiould be
appreciated. What we are using now is what I call a best first
effort. It definitely can be improved on and may even need
complete rewrites in a lot of areas. A lot of changes may have to
be made in the way Bugzilla does things currently to make this
transition to a more generic database interface. Fortunately when
making the Oracle changes I made sure I didn't do anything that I
would consider Oracle specific and could not be easily done with
other databases. Alot of the sql statements need to be broken up
into smaller utilities that themselves would need to make
decisions on what database they are using but the majority of the
code can be made database neutral.
</P
></BLOCKQUOTE
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_LOKI"
></A
>3. Loki Bugzilla (AKA Fenris)</H3
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Loki's "Fenris" Bugzilla is no longer actively maintained.
It works well enough for Loki. Additionally, the major
differences in Fenris have now been integrated into
the main source tree of Bugzilla, so there's not much
reason to go grab the source. I left this section of the
FAQ principally for historical interest.
</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1097"
></A
><B
>A.3.1. </B
> What about Loki Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Loki Games has a customized version of Bugzilla available at
http://fenris.lokigames.com. From that page,
<A
NAME="AEN1101"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> You may have noticed that Fenris is a fork from Bugzilla-- our
patches weren't suitable for integration --and a few people have
expressed interest in the code. Fenris has one major improvement
over Bugzilla, and that is individual comments are not appended
onto a string blob, they are stored as a record in a separate
table. This allows you to, for instance, separate comments out
according to privilege levels in case your bug database could
contain sensitive information not for public eyes. We also provide
things like email hiding to protect user's privacy, additional
fields such as 'user_affected' in case someone enters someone
else's bug, comment editing and deletion, and more conditional
system variables than Bugzilla does (turn off attachments,
qacontact, etc.).
</P
></BLOCKQUOTE
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1104"
></A
><B
>A.3.2. </B
> Who maintains Fenris (Loki Bugzilla) now?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Raphael Barrerro &#60;raistlin@lokigames.com&#62;.
Michael Vance created the initial fork, but no longer
maintains the project.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1109"
></A
><B
>A.3.3. </B
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_PHB"
></A
>4. Pointy-Haired-Boss Questions</H3
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The title of this section doesn't mean you're a PHB -- it just means
you probably HAVE a PHB who wants to know this :)
</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1116"
></A
><B
>A.4.1. </B
> Is Bugzilla web-based or do you have to have specific software or
specific operating system on your machine?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> It is web and e-mail based. You can edit bugs by sending specially
formatted email to a properly configured Bugzilla, or control via the web.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1121"
></A
><B
>A.4.2. </B
> Has anyone you know of already done any Bugzilla integration with
Perforce (SCM software)?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes! You can find more information elsewhere in "The Bugzilla
Guide" in the "Integration with Third-Party Products" section.
The section on Perforce isn't very large, but as the maintainer
of the Guide is charged with Perforce/Bugzilla integration by
his company, you can expect this section to grow.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1126"
></A
><B
>A.4.3. </B
> Does Bugzilla allow the user to track multiple projects?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Absolutely! You can track up to a "soft-limit" of around
64 individual "Products", that can each be composed of as
many "Components" as you want. Check the Administration
section of the Bugzilla Guide for more information regarding
setting up Products and Components.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1131"
></A
><B
>A.4.4. </B
> If I am on many projects, and search for all bugs assigned to me, will
Bugzilla list them for me and allow me to sort by project, severity etc?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1136"
></A
><B
>A.4.5. </B
> Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
are there any that are NOT allowed?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. There are many specific MIME-types that are pre-defined by Bugzilla,
but you may specify any arbitrary MIME-type you need when you
upload the file. Since all attachments are stored in the database,
however, I recommend storing large binary attachments elsewhere
in the web server's file system and providing a hyperlink
as a comment, or in the provided "URL" field in the bug report.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1141"
></A
><B
>A.4.6. </B
> Does Bugzilla allow us to define our own priorities and levels? Do we
have complete freedom to change the labels of fields and format of them, and
the choice of acceptable values?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. However, modifying some fields, notably those related to bug
progression states, also require adjusting the program logic to
compensate for the change.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1146"
></A
><B
>A.4.7. </B
> Does Bugzilla provide any reporting features, metrics, graphs, etc? You
know, the type of stuff that management likes to see. :)
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. Look at <A
HREF="http://bugzilla.mozilla.org/reports.cgi"
TARGET="_top"
> http://bugzilla.mozilla.org/reports.cgi</A
> for basic reporting
facilities.
</P
><P
> For more advanced reporting, I recommend hooking up a professional
reporting package, such as Crystal Reports, and use ODBC to access
the MySQL database. You can do a lot through the Query page of
Bugzilla as well, but right now Advanced Reporting is much
better accomplished through third-party utilities that can
interface with the database directly.
</P
><P
> Advanced Reporting is a Bugzilla 3.X proposed feature.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1154"
></A
><B
>A.4.8. </B
> Is there email notification and if so, what do you see when you get an
email? Do you see bug number and title or is it only the number?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Email notification is user-configurable. The bug id and Topic
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="AEN1159"
></A
><B
>A.4.9. </B
> Can email notification be set up to send to multiple
people, some on the To List, CC List, BCC List etc?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1164"
></A
><B
>A.4.10. </B
> If there is email notification, 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"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> If you decide to use the bugzilla_email integration features
to allow Bugzilla to record responses to mail with the associated bug,
you may need to caution your users to set their mailer to "respond
to messages in the format in which they were sent". For security reasons
Bugzilla ignores HTML tags in comments, and if a user sends HTML-based
email into Bugzilla the resulting comment looks downright awful.
</P
></BLOCKQUOTE
></DIV
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1171"
></A
><B
>A.4.11. </B
> If I just wanted to track certain bugs, as they go through life, can I
set it up to alert me via email whenever that bug changes, whether it be
owner, status or description etc.?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. Place yourself in the "cc" field of the bug you wish to monitor.
Then change your "Notify me of changes to" field in the Email Settings
tab of the User Preferences screen in Bugzilla to the "Only those
bugs which I am listed on the CC line" option.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1176"
></A
><B
>A.4.12. </B
> Does Bugzilla allow data to be imported and exported? If I had outsiders
write up a bug report using a MS Word bug template, could that template be
imported into "matching" fields? If I wanted to take the results of a query
and export that data to MS Excel, could I do that?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Mozilla allows data export through a custom DTD in XML format.
It does not, however, export to specific formats other than the
XML Mozilla DTD. Importing the data into Excel or any other application
is left as an exercise for the reader.
</P
><P
> If you create import filters to other applications from Mozilla's XML,
please submit your modifications for inclusion in future Bugzilla
distributions.
</P
><P
> As for data import, any application can send data to Bugzilla through
the HTTP protocol, or through Mozilla's XML API. However, it seems
kind of silly to put another front-end in front of Bugzilla;
it makes more sense to create a simplified bug submission form in
HTML. You can find an excellent example at
<A
HREF="http://www.mozilla.org/quality/help/bugzilla-helper.html"
TARGET="_top"
> http://www.mozilla.org/quality/help/bugzilla-helper.html</A
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1184"
></A
><B
>A.4.13. </B
> Does Bugzilla allow fields to be added, changed or deleted? If I want to
customize the bug submission form to meet our needs, can I do that using our
terminology?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1189"
></A
><B
>A.4.14. </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
> Currently, no. Internationalization support for Perl did not
exist in a robust fashion until the recent release of version 5.6.0;
Bugzilla is, and likely will remain (until 3.X) completely
non-localized.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1194"
></A
><B
>A.4.15. </B
> Can a user create and save reports? Can they do this in Word format?
Excel format?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. No. No.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1199"
></A
><B
>A.4.16. </B
> Can a user re-run a report with a new project, same query?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1204"
></A
><B
>A.4.17. </B
> Can a user modify an existing report and then save it into another name?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You can save an unlimited number of queries in Bugzilla. You are free
to modify them and rename them to your heart's desire.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1209"
></A
><B
>A.4.18. </B
> Does Bugzilla have the ability to search by word, phrase, compound
search?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You have no idea. Bugzilla's query interface, particularly with the
advanced Boolean operators, is incredibly versatile.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1214"
></A
><B
>A.4.19. </B
> Can the admin person establish separate group and individual user
privileges?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1219"
></A
><B
>A.4.20. </B
> Does Bugzilla provide record locking when there is simultaneous access
to the same bug? Does the second person get a notice that the bug is in use
or how are they notified?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Bugzilla does not lock records. It provides mid-air collision detection,
and offers the offending user a choice of options to deal with the conflict.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1224"
></A
><B
>A.4.21. </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="AEN1230"
></A
><B
>A.4.22. </B
> Can users be on the system while a backup is in progress?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. However, commits to the database must wait
until the tables are unlocked. Bugzilla databases are typically
very small, and backups routinely take less than a minute.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1235"
></A
><B
>A.4.23. </B
> What type of human resources are needed to be on staff to install and
maintain Bugzilla? Specifically, what type of skills does the person need to
have? I need to find out if we were to go with Bugzilla, what types of
individuals would we need to hire and how much would that cost vs buying an
"Out-of-the-Box" solution.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> If Bugzilla is set up correctly from the start, continuing maintenance needs
are minimal and can be completed by unskilled labor. Things like rotate
backup tapes and check log files for the word "error".
</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.
</P
><P
> As an example, as of this writing I typically charge
$115 for the first hour, and $89 each hour thereafter
for consulting work. It takes me three to five hours to make Bugzilla
happy on a Development installation of Linux-Mandrake.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1242"
></A
><B
>A.4.24. </B
> What time frame are we looking at if we decide to hire people to install
and maintain the Bugzilla? Is this something that takes hours or weeks to
install and a couple of hours per week to maintain and customize or is this
a multi-week install process, plus a full time job for 1 person, 2 people,
etc?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> It all depends on your level of commitment. Someone with much Bugzilla
experience can get you up and running in less than a day, and
your Bugzilla install can run untended for years. If your
Bugzilla strategy is critical to your business workflow, hire somebody
with reasonable UNIX or Perl skills to handle your process management and
bug-tracking maintenance &#38; customization.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1247"
></A
><B
>A.4.25. </B
> Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> No. MySQL asks, if you find their product valuable, that you purchase
a support contract from them that suits your needs.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_INSTALL"
></A
>5. Bugzilla Installation</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1254"
></A
><B
>A.5.1. </B
> How do I download and install Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Check <A
HREF="http://www.mozilla.org/projects/bugzilla/"
TARGET="_top"
> http://www.mozilla.org/projects/bugzilla/</A
> for details.
Once you download it, untar it, read the README and
the Bugzilla Guide.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1260"
></A
><B
>A.5.2. </B
> How do I install Bugzilla on Windows NT?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Installation on Windows NT has its own section in
"The Bugzilla Guide".
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1265"
></A
><B
>A.5.3. </B
> Is there an easy way to change the Bugzilla cookie name?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> At present, no.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_SECURITY"
></A
>6. Bugzilla Security</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1272"
></A
><B
>A.6.1. </B
> How do I completely disable MySQL security if it's giving me problems
(I've followed the instructions in the README!)?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Run mysql like this: "mysqld --skip-grant-tables". Please remember <EM
>this
makes mysql as secure as taping a $100 to the floor of a football stadium
bathroom for safekeeping.</EM
> Please read the Security section of the
Administration chapter of "The Bugzilla Guide" before proceeding.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1278"
></A
><B
>A.6.2. </B
> Are there any security problems with Bugzilla?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> The Bugzilla code has not undergone a complete security audit.
It is recommended that you closely examine permissions on your Bugzilla
installation, and follow the recommended security guidelines found
in the README and in The Bugzilla Guide.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1283"
></A
><B
>A.6.3. </B
> I've implemented the security fixes mentioned in Chris Yeh's security
advisory of 5/10/2000 advising not to run MySQL as root, and am running into
problems with MySQL no longer working correctly.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> This is a common problem, related to running out of file descriptors.
Simply add "ulimit -n unlimited" to the script which starts
mysqld.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_EMAIL"
></A
>7. Bugzilla Email</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1290"
></A
><B
>A.7.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
> With the email changes to 2.12, the user should be able to set
this in user email preferences.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1295"
></A
><B
>A.7.2. </B
> I'm evaluating/testing Bugzilla, and don't want it to send email to
anyone but me. How do I do it?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Edit the param for the mail text. Replace "To:" with "X-Real-To:",
replace "Cc:" with "X-Real-CC:", and add a "To: (myemailaddress)".
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1300"
></A
><B
>A.7.3. </B
> I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Try Klaas Freitag's excellent patch for "whineatassigned" functionality.
You can find it at<A
HREF=" http://bugzilla.mozilla.org/show_bug.cgi?id=6679"
TARGET="_top"
> http://bugzilla.mozilla.org/show_bug.cgi?id=6679</A
>. This
patch is against an older version of Bugzilla, so you must apply
the diffs manually.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1306"
></A
><B
>A.7.4. </B
> I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You can call bug_email.pl directly from your aliases file, with
an entry like this:
<A
NAME="AEN1310"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
</P
></BLOCKQUOTE
>
However, this is fairly nasty and subject to problems; you also
need to set up your smrsh (sendmail restricted shell) to allow
it. In a pinch, though, it can work.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1313"
></A
><B
>A.7.5. </B
> How do I set up the email interface to submit/change bugs via email?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You can find an updated README.mailif file in the contrib/ directory
of your Bugzilla distribution that walks you through the setup.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1318"
></A
><B
>A.7.6. </B
> Email takes FOREVER to reach me from bugzilla -- it's extremely slow.
What gives?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> If you are using an alternate Mail Transport Agent (MTA other than
sendmail), make sure the options given in the "processmail" script for all
instances of "sendmail" are correct for your MTA. If you are using Sendmail,
you may wish to delete the "-ODeliveryMode=deferred" option in the
"processmail" script for every invocation of "sendmail". (Be sure and leave
the "-t" option, though!)
</P
><P
> A better alternative is to change the "-O" option to
"-ODeliveryMode=background". This prevents Sendmail from hanging your
Bugzilla Perl processes if the domain to which it must send mail
is unavailable.
</P
><P
> This is now a configurable parameter called "sendmailparm", available
from editparams.cgi.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1325"
></A
><B
>A.7.7. </B
> How come email never reaches me from bugzilla changes?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Double-check that you have not turned off email in your user preferences.
Confirm that Bugzilla is able to send email by visiting the "Log In"
link of your Bugzilla installation and clicking the "Email me a password"
button after entering your email address.
</P
><P
> If you never receive mail from Bugzilla, chances you do not have
sendmail in "/usr/lib/sendmail". Ensure sendmail lives in, or is symlinked
to, "/usr/lib/sendmail".
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_DB"
></A
>8. Bugzilla Database</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1333"
></A
><B
>A.8.1. </B
> I've heard Bugzilla can be used with Oracle?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Red Hat Bugzilla, mentioned above, works with Oracle. The current version
from Mozilla.org does not have this capability. Unfortunately, though
you will sacrifice a lot of the really great features available in
Bugzilla 2.10 and 2.12 if you go with the 2.8-based Redhat version.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1338"
></A
><B
>A.8.2. </B
> Bugs are missing from queries, but exist in the database (and I can pull
them up by specifying the bug ID). What's wrong?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You've almost certainly enabled the "shadow database", but for some
reason it hasn't been updated for all your bugs. This is the database
against which queries are run, so that really complex or slow queries won't
lock up portions of the database for other users. You can turn off the
shadow database in editparams.cgi. If you wish to continue using the shadow
database, then as your "bugs" user run "./syncshadowdb -syncall" from the
command line in the bugzilla installation directory to recreate your shadow
database. After it finishes, be sure to check the params and make sure that
"queryagainstshadowdb" is still turned on. The syncshadowdb program turns it
off if it was on, and is supposed to turn it back on when completed; that
way, if it crashes in the middle of recreating the database, it will stay
off forever until someone turns it back on by hand. Apparently, it doesn't
always do that yet.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1343"
></A
><B
>A.8.3. </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 "sanity check" utility (./sanitycheck.cgi in the bugzilla_home
directory) to see! If it all comes back, you're 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...
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1348"
></A
><B
>A.8.4. </B
> I want to manually edit some entries in my database. How?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> There is no facility in Bugzilla itself to do this. It's also generally
not a smart thing to do if you don't know exactly what you're doing.
However, if you understand SQL you can use the mysqladmin utility to
manually insert, delete, and modify table information. Personally, I
use "phpMyAdmin". You have to compile a PHP module with MySQL
support to make it work, but it's very clean and easy to use.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1353"
></A
><B
>A.8.5. </B
> I try to add myself as a user, but Bugzilla always tells me my password is wrong.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Certain version of MySQL (notably, 3.23.29 and 3.23.30) accidentally disabled
the "crypt()" function. This prevented MySQL from storing encrypted passwords.
Upgrade to the "3.23 stable" version of MySQL and you should be good to go.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1358"
></A
><B
>A.8.6. </B
> I think I've set up MySQL permissions correctly, but bugzilla still can't
connect.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Try running MySQL from its binary: "mysqld --skip-grant-tables". This
will allow you to completely rule out grant tables as the cause of your
frustration. However, I do not recommend you run it this way on a regular
basis, unless you really want your web site defaced and your machine
cracked.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1363"
></A
><B
>A.8.7. </B
> How do I synchronize bug information among multiple different Bugzilla
databases?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Well, you can synchronize or you can move bugs. Synchronization will
only work one way -- you can create a read-only copy of the database
at one site, and have it regularly updated at intervals from the main
database.
</P
><P
> MySQL has some synchronization features builtin to the latest releases.
It would be great if someone looked into the possibilities there
and provided a report to the newsgroup on how to effectively
synchronize two Bugzilla installations.
</P
><P
> If you simply need to transfer bugs from one Bugzilla to another,
checkout the "move.pl" script in the Bugzilla distribution.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1370"
></A
><B
>A.8.8. </B
> Why do I get bizarre errors when trying to submit data, particularly problems
with "groupset"?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> If you're sure your MySQL parameters are correct, you might want turn
"strictvaluechecks" OFF in editparams.cgi. If you have "usebugsentry" set
"On", you also cannot submit a bug as readable by more than one group with
"strictvaluechecks" ON.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1375"
></A
><B
>A.8.9. </B
> How come even after I delete bugs, the long descriptions show up?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Delete everything from $BUZILLA_HOME/shadow. Bugzilla creates shadow
files there, with each filename corresponding to a
bug number. Also be sure to run syncshadowdb to make sure, if you are using
a shadow database, that the shadow database is current.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_NT"
></A
>9. Bugzilla and Win32</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1382"
></A
><B
>A.9.1. </B
> What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Remove Windows. Install Linux. Install Bugzilla.
The boss will never know the difference.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1387"
></A
><B
>A.9.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="AEN1392"
></A
><B
>A.9.3. </B
> CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Depending on what Web server you are using, you will have to configure
the Web server to treat *.cgi files as CGI scripts. In IIS, you do this by
adding *.cgi to the App Mappings with the &#60;path&#62;\perl.exe %s %s as the
executable.
</P
><P
> Microsoft has some advice on this matter, as well:
<A
NAME="AEN1397"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> "Set application mappings. In the ISM, map the extension for the script
file(s) to the executable for the script interpreter. For example, you might
map the extension .py to Python.exe, the executable for the Python script
interpreter. Note For the ActiveState Perl script interpreter, the extension
.pl is associated with PerlIS.dll by default. If you want to change the
association of .pl to perl.exe, you need to change the application mapping.
In the mapping, you must add two percent (%) characters to the end of the
pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe %s %s"
</P
></BLOCKQUOTE
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1400"
></A
><B
>A.9.4. </B
> Can I have some general instructions on how to make Bugzilla on Win32 work?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> The following couple entries are deprecated in favor of the Windows installation
instructions available in the "Administration" portion of "The Bugzilla Guide".
However, they are provided here for historical interest and insight.
<P
CLASS="LITERALLAYOUT"
>&nbsp;&nbsp;1.&nbsp;#!C:/perl/bin/perl&nbsp;had&nbsp;to&nbsp;be&nbsp;added&nbsp;to&nbsp;every&nbsp;perl&nbsp;file.<br>
&nbsp;&nbsp;2.&nbsp;Converted&nbsp;to&nbsp;Net::SMTP&nbsp;to&nbsp;handle&nbsp;mail&nbsp;messages&nbsp;instead&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/usr/bin/sendmail.<br>
&nbsp;&nbsp;3.&nbsp;The&nbsp;crypt&nbsp;function&nbsp;isn't&nbsp;available&nbsp;on&nbsp;Windows&nbsp;NT&nbsp;(at&nbsp;least&nbsp;none&nbsp;that&nbsp;I<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;am&nbsp;aware),&nbsp;so&nbsp;I&nbsp;made&nbsp;encrypted&nbsp;passwords&nbsp;=&nbsp;plaintext&nbsp;passwords.<br>
&nbsp;&nbsp;4.&nbsp;The&nbsp;system&nbsp;call&nbsp;to&nbsp;diff&nbsp;had&nbsp;to&nbsp;be&nbsp;changed&nbsp;to&nbsp;the&nbsp;Cygwin&nbsp;diff.<br>
&nbsp;&nbsp;5.&nbsp;This&nbsp;was&nbsp;just&nbsp;to&nbsp;get&nbsp;a&nbsp;demo&nbsp;running&nbsp;under&nbsp;NT,&nbsp;it&nbsp;seems&nbsp;to&nbsp;be&nbsp;working<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;good,&nbsp;and&nbsp;I&nbsp;have&nbsp;inserted&nbsp;almost&nbsp;100&nbsp;bugs&nbsp;from&nbsp;another&nbsp;bug&nbsp;tracking<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system.&nbsp;Since&nbsp;this&nbsp;work&nbsp;was&nbsp;done&nbsp;just&nbsp;to&nbsp;get&nbsp;an&nbsp;in-house&nbsp;demo,&nbsp;I&nbsp;am&nbsp;NOT<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;planning&nbsp;on&nbsp;making&nbsp;a&nbsp;patch&nbsp;for&nbsp;submission&nbsp;to&nbsp;Bugzilla.&nbsp;If&nbsp;you&nbsp;would<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;a&nbsp;zip&nbsp;file,&nbsp;let&nbsp;me&nbsp;know.<br>
<br>
Q:&nbsp;Hmm,&nbsp;couldn't&nbsp;figure&nbsp;it&nbsp;out&nbsp;from&nbsp;the&nbsp;general&nbsp;instructions&nbsp;above.&nbsp;&nbsp;How<br>
about&nbsp;step-by-step?<br>
A:&nbsp;Sure!&nbsp;Here&nbsp;ya&nbsp;go!<br>
<br>
&nbsp;&nbsp;1.&nbsp;Install&nbsp;IIS&nbsp;4.0&nbsp;from&nbsp;the&nbsp;NT&nbsp;Option&nbsp;Pack&nbsp;#4.<br>
&nbsp;&nbsp;2.&nbsp;Download&nbsp;and&nbsp;install&nbsp;Active&nbsp;Perl.<br>
&nbsp;&nbsp;3.&nbsp;Install&nbsp;the&nbsp;Windows&nbsp;GNU&nbsp;tools&nbsp;from&nbsp;Cygwin.&nbsp;Make&nbsp;sure&nbsp;to&nbsp;add&nbsp;the&nbsp;bin<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;directory&nbsp;to&nbsp;your&nbsp;system&nbsp;path.&nbsp;(Everyone&nbsp;should&nbsp;have&nbsp;these,&nbsp;whether<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;they&nbsp;decide&nbsp;to&nbsp;use&nbsp;Bugzilla&nbsp;or&nbsp;not.&nbsp;:-)&nbsp;)<br>
&nbsp;&nbsp;4.&nbsp;Download&nbsp;relevant&nbsp;packages&nbsp;from&nbsp;ActiveState&nbsp;at<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.activestate.com/packages/zips/.&nbsp;+&nbsp;DBD-Mysql.zip<br>
&nbsp;&nbsp;5.&nbsp;Extract&nbsp;each&nbsp;zip&nbsp;file&nbsp;with&nbsp;WinZip,&nbsp;and&nbsp;install&nbsp;each&nbsp;ppd&nbsp;file&nbsp;using&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;notation:&nbsp;ppm&nbsp;install&nbsp;&#60;module&#62;.ppd<br>
&nbsp;&nbsp;6.&nbsp;Install&nbsp;Mysql.&nbsp;&nbsp;*Note:&nbsp;If&nbsp;you&nbsp;move&nbsp;the&nbsp;default&nbsp;install&nbsp;from&nbsp;c:\mysql,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you&nbsp;must&nbsp;add&nbsp;the&nbsp;appropriate&nbsp;startup&nbsp;parameters&nbsp;to&nbsp;the&nbsp;NT&nbsp;service.&nbsp;(ex.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-b&nbsp;e:\\programs\\mysql)<br>
&nbsp;&nbsp;7.&nbsp;Download&nbsp;any&nbsp;Mysql&nbsp;client.&nbsp;http://www.mysql.com/download_win.html<br>
&nbsp;&nbsp;8.&nbsp;Setup&nbsp;MySql.&nbsp;(These&nbsp;are&nbsp;the&nbsp;commands&nbsp;that&nbsp;I&nbsp;used.)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I.&nbsp;Cleanup&nbsp;default&nbsp;database&nbsp;settings.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysql&nbsp;-u&nbsp;root&nbsp;mysql<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;DELETE&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;Host='localhost'&nbsp;AND&nbsp;User='';<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;quit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysqladmin&nbsp;reload<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;II.&nbsp;Set&nbsp;password&nbsp;for&nbsp;root.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysql&nbsp;-u&nbsp;root&nbsp;mysql<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;UPDATE&nbsp;user&nbsp;SET&nbsp;Password=PASSWORD('new_password')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;user='root';<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;FLUSH&nbsp;PRIVILEGES;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;quit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysqladmin&nbsp;-u&nbsp;root&nbsp;reload<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;III.&nbsp;Create&nbsp;bugs&nbsp;user.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysql&nbsp;-u&nbsp;root&nbsp;-p<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;insert&nbsp;into&nbsp;user&nbsp;(host,user,password)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values('localhost','bugs','');<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;quit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysqladmin&nbsp;-u&nbsp;root&nbsp;reload<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IV.&nbsp;Create&nbsp;the&nbsp;bugs&nbsp;database.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysql&nbsp;-u&nbsp;root&nbsp;-p<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;create&nbsp;database&nbsp;bugs;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V.&nbsp;Give&nbsp;the&nbsp;bugs&nbsp;user&nbsp;access&nbsp;to&nbsp;the&nbsp;bugs&nbsp;database.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;insert&nbsp;into&nbsp;db<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values('localhost','bugs','bugs','Y','Y','Y','Y','Y','N')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&#62;&nbsp;quit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\mysql\bin\mysqladmin&nbsp;-u&nbsp;root&nbsp;reload<br>
&nbsp;&nbsp;9.&nbsp;Run&nbsp;the&nbsp;table&nbsp;scripts&nbsp;to&nbsp;setup&nbsp;the&nbsp;bugs&nbsp;database.<br>
&nbsp;10.&nbsp;Change&nbsp;CGI.pm&nbsp;to&nbsp;use&nbsp;the&nbsp;following&nbsp;regular&nbsp;expression&nbsp;because&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differing&nbsp;backslashes&nbsp;in&nbsp;NT&nbsp;versus&nbsp;UNIX.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;$0&nbsp;=~&nbsp;m:[^\\]*$:;<br>
&nbsp;11.&nbsp;Had&nbsp;to&nbsp;make&nbsp;the&nbsp;crypt&nbsp;password&nbsp;=&nbsp;plain&nbsp;text&nbsp;password&nbsp;in&nbsp;the&nbsp;database.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Thanks&nbsp;to&nbsp;Andrew&nbsp;Lahser"&nbsp;&#60;andrew_lahser@merck.com&#62;"&nbsp;on&nbsp;this&nbsp;one.)&nbsp;The<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;that&nbsp;I&nbsp;changed&nbsp;were:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;globals.pl<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;CGI.pl<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;alternately,&nbsp;you&nbsp;can&nbsp;try&nbsp;commenting&nbsp;all&nbsp;references&nbsp;to&nbsp;'crypt'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;and&nbsp;replace&nbsp;them&nbsp;with&nbsp;similar&nbsp;lines&nbsp;but&nbsp;without&nbsp;encrypt()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;crypr()&nbsp;functions&nbsp;insida&nbsp;all&nbsp;files.<br>
&nbsp;12.&nbsp;Replaced&nbsp;sendmail&nbsp;with&nbsp;Windmail.&nbsp;Basically,&nbsp;you&nbsp;have&nbsp;to&nbsp;come&nbsp;up&nbsp;with&nbsp;a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendmail&nbsp;substitute&nbsp;for&nbsp;NT.&nbsp;Someone&nbsp;said&nbsp;that&nbsp;they&nbsp;used&nbsp;a&nbsp;Perl&nbsp;module<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Net::SMTP),&nbsp;but&nbsp;I&nbsp;was&nbsp;trying&nbsp;to&nbsp;save&nbsp;time&nbsp;and&nbsp;do&nbsp;as&nbsp;little&nbsp;Perl&nbsp;coding<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as&nbsp;possible.<br>
&nbsp;13.&nbsp;Added&nbsp;"perl"&nbsp;to&nbsp;the&nbsp;beginning&nbsp;of&nbsp;all&nbsp;Perl&nbsp;system&nbsp;calls&nbsp;that&nbsp;use&nbsp;a&nbsp;perl<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;as&nbsp;an&nbsp;argument&nbsp;and&nbsp;renamed&nbsp;processmail&nbsp;to&nbsp;processmail.pl.<br>
&nbsp;14.&nbsp;In&nbsp;processmail.pl,&nbsp;I&nbsp;added&nbsp;binmode(HANDLE)&nbsp;before&nbsp;all&nbsp;read()&nbsp;calls.&nbsp;I'm<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;sure&nbsp;about&nbsp;this&nbsp;one,&nbsp;but&nbsp;the&nbsp;read()&nbsp;under&nbsp;NT&nbsp;wasn't&nbsp;counting&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EOLs&nbsp;without&nbsp;the&nbsp;binary&nbsp;read."<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
>
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1406"
></A
><B
>A.9.5. </B
> I'm having trouble with the perl modules for NT not being able to talk to
to the database.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Your modules may be outdated or inaccurate. Try:
<P
></P
><OL
TYPE="1"
><LI
><P
> Hitting http://www.activestate.com/ActivePerl
</P
></LI
><LI
><P
> Download ActivePerl
</P
></LI
><LI
><P
> Go to your prompt
</P
></LI
><LI
><P
> Type 'ppm'
</P
></LI
><LI
><P
> <TT
CLASS="PROMPT"
>PPM&#62;</TT
> <B
CLASS="COMMAND"
>install DBI DBD-mysql GD</B
>
</P
></LI
></OL
>
I reckon TimeDate and Data::Dumper come with the activeperl. You can check
the ActiveState site for packages for installation through PPM.
<A
HREF=" http://www.activestate.com/Packages/"
TARGET="_top"
> http://www.activestate.com/Packages/</A
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_USE"
></A
>10. Bugzilla Usage</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1427"
></A
><B
>A.10.1. </B
> The query page is very confusing. Isn't there a simpler way to query?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> We are developing in that direction. You can follow progress on this
at <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=16775"
TARGET="_top"
> http://bugzilla.mozilla.org/show_bug.cgi?id=16775</A
>. Some functionality
is available in Bugzilla 2.12, and is available as "quicksearch.html"
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1433"
></A
><B
>A.10.2. </B
> I'm confused by the behavior of the "accept" button in the Show Bug form.
Why doesn't it assign the bug to me when I accept it?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> The current behavior is acceptable to bugzilla.mozilla.org and most
users. I personally don't like it. You have your choice of patches
to change this behavior, however.
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><A
HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029"
TARGET="_top"
> Add a "and accept bug" radio button</A
></TD
></TR
><TR
><TD
><A
HREF="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8153"
TARGET="_top"
> "Accept" button automatically assigns to you</A
></TD
></TR
></TBODY
></TABLE
><P
></P
>
Note that these patches are somewhat dated. You will need to do the find
and replace manually to apply them. They are very small, though. It is easy.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1443"
></A
><B
>A.10.3. </B
> I can't upload anything into the database via the "Create Attachment"
link. What am I doing wrong?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> The most likely cause is a very old browser or a browser that is
incompatible with file upload via POST. Download the latest Netscape,
Microsoft, or Mozilla browser to handle uploads correctly.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1448"
></A
><B
>A.10.4. </B
> Email submissions to Bugzilla that have attachments end up asking me to
save it as a "cgi" file.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yup. Just rename it once you download it, or save it under a different
filename. This will not be fixed anytime too soon, because it would
cripple some other functionality.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1453"
></A
><B
>A.10.5. </B
> How do I change a keyword in Bugzilla, once some bugs are using it?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> In the Bugzilla administrator UI, edit the keyword and it will let you
replace the old keyword name with a new one. This will cause a problem
with the keyword cache. Run sanitycheck.cgi to fix it.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="QANDADIV"
><H3
><A
NAME="FAQ_HACKING"
></A
>11. Bugzilla Hacking</H3
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1460"
></A
><B
>A.11.1. </B
> What bugs are in Bugzilla right now?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Try <A
HREF="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Webtools&component=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.14 release
<A
HREF="http://bugzilla.mozilla.org/buglist.cgi?product=Webtools&component=Bugzilla&target_milestone=Bugzilla+2.14"
TARGET="_top"
>here</A
>.
This list includes bugs for the 2.14 release that have already
been fixed and checked into CVS. Please consult the
<A
HREF="http://www.mozilla.org/projects/bugzilla/"
TARGET="_top"
> Bugzilla Project Page</A
> for details on how to
check current sources out of CVS so you can have these
bug fixes early!
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN1469"
></A
><B
>A.11.2. </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 "Webtools" product,
"Bugzilla" component.
</P
></LI
><LI
><P
> Upload your patch as a unified DIFF (having used "diff -u" against
the <EM
>current sources</EM
> checked out of CVS),
or new source file by clicking
"Create a new attachment" link on the bug page you've just created, and
include any descriptions of database changes you may make, into the bug
ID you submitted in step #1. Be sure and click the "Patch" radio
button 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=XXXX) 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="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="bz30.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="database.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bugzilla 3.0</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Bugzilla Database</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Feedback</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Contributors"
HREF="contributors.html"><LINK
REL="NEXT"
TITLE="Translations"
HREF="translations.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="contributors.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="translations.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="FEEDBACK"
>1.7. Feedback</A
></H1
><P
> I welcome feedback on this document. Without your submissions and input,
this Guide cannot continue to exist. Please mail additions, comments, criticisms, etc.
to <TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:barnboy@trilobyte.net"
>barnboy@trilobyte.net</A
>&#62;</TT
>. Please send flames to
<TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:devnull@localhost"
>devnull@localhost</A
>&#62;</TT
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="contributors.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="translations.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Contributors</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Translations</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The Future of Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Tinderbox"
HREF="tinderbox.html"><LINK
REL="NEXT"
TITLE="Reducing Spam"
HREF="spamlite.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="tinderbox.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="spamlite.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="FUTURE"
>Chapter 6. The Future of Bugzilla</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>6.1. <A
HREF="spamlite.html"
>Reducing Spam</A
></DT
><DT
>6.2. <A
HREF="searching.html"
>Better Searching</A
></DT
><DT
>6.3. <A
HREF="trackingbugs.html"
>Description Flags and Tracking Bugs</A
></DT
><DT
>6.4. <A
HREF="bugprobs.html"
>Bug Issues</A
></DT
><DT
>6.5. <A
HREF="dbaseintegrity.html"
>Database Integrity</A
></DT
><DT
>6.6. <A
HREF="bz30.html"
>Bugzilla 3.0</A
></DT
></DL
></DIV
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>This section largely contributed by Matthew Tuck</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="tinderbox.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="spamlite.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Tinderbox</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Reducing Spam</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>GNU Free Documentation License</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="The Quicksearch Utility"
HREF="quicksearch.html"><LINK
REL="NEXT"
TITLE="PREAMBLE"
HREF="gfdl_0.html"></HEAD
><BODY
CLASS="APPENDIX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="quicksearch.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_0.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="GFDL"
>Appendix D. GNU Free Documentation License</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>0. <A
HREF="gfdl_0.html"
>PREAMBLE</A
></DT
><DT
>1. <A
HREF="gfdl_1.html"
>APPLICABILITY AND DEFINITIONS</A
></DT
><DT
>2. <A
HREF="gfdl_2.html"
>VERBATIM COPYING</A
></DT
><DT
>3. <A
HREF="gfdl_3.html"
>COPYING IN QUANTITY</A
></DT
><DT
>4. <A
HREF="gfdl_4.html"
>MODIFICATIONS</A
></DT
><DT
>5. <A
HREF="gfdl_5.html"
>COMBINING DOCUMENTS</A
></DT
><DT
>6. <A
HREF="gfdl_6.html"
>COLLECTIONS OF DOCUMENTS</A
></DT
><DT
>7. <A
HREF="gfdl_7.html"
>AGGREGATION WITH INDEPENDENT WORKS</A
></DT
><DT
>8. <A
HREF="gfdl_8.html"
>TRANSLATION</A
></DT
><DT
>9. <A
HREF="gfdl_9.html"
>TERMINATION</A
></DT
><DT
>10. <A
HREF="gfdl_10.html"
>FUTURE REVISIONS OF THIS LICENSE</A
></DT
><DT
><A
HREF="gfdl_howto.html"
>How to use this License for your documents</A
></DT
></DL
></DIV
><P
>Version 1.1, March 2000</P
><A
NAME="AEN1609"
></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
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="quicksearch.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_0.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The Quicksearch Utility</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>PREAMBLE</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>PREAMBLE</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="NEXT"
TITLE="APPLICABILITY AND DEFINITIONS"
HREF="gfdl_1.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_1.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_0"
>0. PREAMBLE</A
></H1
><P
>The purpose of this License is to make a manual, textbook,
or other written document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or
noncommercially. Secondarily, this License preserves for the
author and publisher a way to get credit for their work, while not
being considered responsible for modifications made by
others.</P
><P
>This License is a kind of "copyleft", which means that
derivative works of the document must themselves be free in the
same sense. It complements the GNU General Public License, which
is a copyleft license designed for free software.</P
><P
>We have designed this License in order to use it for manuals
for free software, because free software needs free documentation:
a free program should come with manuals providing the same
freedoms that the software does. But this License is not limited
to software manuals; it can be used for any textual work,
regardless of subject matter or whether it is published as a
printed book. We recommend this License principally for works
whose purpose is instruction or reference.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_1.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>GNU Free Documentation License</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>APPLICABILITY AND DEFINITIONS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>APPLICABILITY AND DEFINITIONS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="PREAMBLE"
HREF="gfdl_0.html"><LINK
REL="NEXT"
TITLE="VERBATIM COPYING"
HREF="gfdl_2.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_0.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_2.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_1"
>1. APPLICABILITY AND DEFINITIONS</A
></H1
><P
>This License applies to any manual or other work that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. The "Document",
below, refers to any such manual or work. Any member of the
public is a licensee, and is addressed as "you".</P
><P
>A "Modified Version" of the Document means any work
containing the Document or a portion of it, either copied
verbatim, or with modifications and/or translated into another
language.</P
><P
>A "Secondary Section" is a named appendix or a front-matter
section of the Document that deals exclusively with the
relationship of the publishers or authors of the Document to the
Document's overall subject (or to related matters) and contains
nothing that could fall directly within that overall subject.
(For example, if the Document is in part a textbook of
mathematics, a Secondary Section may not explain any mathematics.)
The relationship could be a matter of historical connection with
the subject or with related matters, or of legal, commercial,
philosophical, ethical or political position regarding
them.</P
><P
>The "Invariant Sections" are certain Secondary Sections
whose titles are designated, as being those of Invariant Sections,
in the notice that says that the Document is released under this
License.</P
><P
>The "Cover Texts" are certain short passages of text that
are listed, as Front-Cover Texts or Back-Cover Texts, in the
notice that says that the Document is released under this
License.</P
><P
>A "Transparent" copy of the Document means a
machine-readable copy, represented in a format whose specification
is available to the general public, whose contents can be viewed
and edited directly and straightforwardly with generic text
editors or (for images composed of pixels) generic paint programs
or (for drawings) some widely available drawing editor, and that
is suitable for input to text formatters or for automatic
translation to a variety of formats suitable for input to text
formatters. A copy made in an otherwise Transparent file format
whose markup has been designed to thwart or discourage subsequent
modification by readers is not Transparent. A copy that is not
"Transparent" is called "Opaque".</P
><P
>Examples of suitable formats for Transparent copies include
plain ASCII without markup, Texinfo input format, LaTeX input
format, SGML or XML using a publicly available DTD, and
standard-conforming simple HTML designed for human modification.
Opaque formats include PostScript, PDF, proprietary formats that
can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML produced by some word
processors for output purposes only.</P
><P
>The "Title Page" means, for a printed book, the title page
itself, plus such following pages as are needed to hold, legibly,
the material this License requires to appear in the title page.
For works in formats which do not have any title page as such,
"Title Page" means the text near the most prominent appearance of
the work's title, preceding the beginning of the body of the
text.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_0.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_2.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>PREAMBLE</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>VERBATIM COPYING</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>FUTURE REVISIONS OF THIS LICENSE</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="TERMINATION"
HREF="gfdl_9.html"><LINK
REL="NEXT"
TITLE="How to use this License for your documents"
HREF="gfdl_howto.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_9.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_howto.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_10"
>10. FUTURE REVISIONS OF THIS LICENSE</A
></H1
><P
>The Free Software Foundation may publish new, revised
versions of the GNU Free Documentation License from time to time.
Such new versions will be similar in spirit to the present
version, but may differ in detail to address new problems or
concerns. See <A
HREF="http://www.gnu.org/copyleft/"
TARGET="_top"
>http://www.gnu.org/copyleft/</A
>.</P
><P
>Each version of the License is given a distinguishing
version number. If the Document specifies that a particular
numbered version of this License "or any later version" applies to
it, you have the option of following the terms and conditions
either of that specified version or of any later version that has
been published (not as a draft) by the Free Software Foundation.
If the Document does not specify a version number of this License,
you may choose any version ever published (not as a draft) by the
Free Software Foundation.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_9.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_howto.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>TERMINATION</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>How to use this License for your documents</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>VERBATIM COPYING</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="APPLICABILITY AND DEFINITIONS"
HREF="gfdl_1.html"><LINK
REL="NEXT"
TITLE="COPYING IN QUANTITY"
HREF="gfdl_3.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_1.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_3.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_2"
>2. VERBATIM COPYING</A
></H1
><P
>You may copy and distribute the Document in any medium,
either commercially or noncommercially, provided that this
License, the copyright notices, and the license notice saying this
License applies to the Document are reproduced in all copies, and
that you add no other conditions whatsoever to those of this
License. You may not use technical measures to obstruct or
control the reading or further copying of the copies you make or
distribute. However, you may accept compensation in exchange for
copies. If you distribute a large enough number of copies you
must also follow the conditions in section 3.</P
><P
>You may also lend copies, under the same conditions stated
above, and you may publicly display copies.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_1.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_3.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>APPLICABILITY AND DEFINITIONS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>COPYING IN QUANTITY</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>COPYING IN QUANTITY</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="VERBATIM COPYING"
HREF="gfdl_2.html"><LINK
REL="NEXT"
TITLE="MODIFICATIONS"
HREF="gfdl_4.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_2.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_4.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_3"
>3. COPYING IN QUANTITY</A
></H1
><P
>If you publish printed copies of the Document numbering more
than 100, and the Document's license notice requires Cover Texts,
you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front
cover, and Back-Cover Texts on the back cover. Both covers must
also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all
words of the title equally prominent and visible. You may add
other material on the covers in addition. Copying with changes
limited to the covers, as long as they preserve the title of the
Document and satisfy these conditions, can be treated as verbatim
copying in other respects.</P
><P
>If the required texts for either cover are too voluminous to
fit legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto
adjacent pages.</P
><P
>If you publish or distribute Opaque copies of the Document
numbering more than 100, you must either include a
machine-readable Transparent copy along with each Opaque copy, or
state in or with each Opaque copy a publicly-accessible
computer-network location containing a complete Transparent copy
of the Document, free of added material, which the general
network-using public has access to download anonymously at no
charge using public-standard network protocols. If you use the
latter option, you must take reasonably prudent steps, when you
begin distribution of Opaque copies in quantity, to ensure that
this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you
distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.</P
><P
>It is requested, but not required, that you contact the
authors of the Document well before redistributing any large
number of copies, to give them a chance to provide you with an
updated version of the Document.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_2.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_4.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>VERBATIM COPYING</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>MODIFICATIONS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>MODIFICATIONS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="COPYING IN QUANTITY"
HREF="gfdl_3.html"><LINK
REL="NEXT"
TITLE="COMBINING DOCUMENTS"
HREF="gfdl_5.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_3.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_5.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_4"
>4. MODIFICATIONS</A
></H1
><P
>You may copy and distribute a Modified Version of the
Document under the conditions of sections 2 and 3 above, provided
that you release the Modified Version under precisely this
License, with the Modified Version filling the role of the
Document, thus licensing distribution and modification of the
Modified Version to whoever possesses a copy of it. In addition,
you must do these things in the Modified Version:</P
><P
></P
><OL
TYPE="A"
><LI
><P
>Use in the Title Page
(and on the covers, if any) a title distinct from that of the
Document, and from those of previous versions (which should, if
there were any, be listed in the History section of the
Document). You may use the same title as a previous version if
the original publisher of that version gives permission.</P
></LI
><LI
><P
>List on the Title Page,
as authors, one or more persons or entities responsible for
authorship of the modifications in the Modified Version,
together with at least five of the principal authors of the
Document (all of its principal authors, if it has less than
five).</P
></LI
><LI
><P
>State on the Title page
the name of the publisher of the Modified Version, as the
publisher.</P
></LI
><LI
><P
>Preserve all the
copyright notices of the Document.</P
></LI
><LI
><P
>Add an appropriate
copyright notice for your modifications adjacent to the other
copyright notices.</P
></LI
><LI
><P
>Include, immediately
after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this
License, in the form shown in the Addendum below.</P
></LI
><LI
><P
>Preserve in that license
notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.</P
></LI
><LI
><P
>Include an unaltered
copy of this License.</P
></LI
><LI
><P
>Preserve the section
entitled "History", and its title, and add to it an item stating
at least the title, year, new authors, and publisher of the
Modified Version as given on the Title Page. If there is no
section entitled "History" in the Document, create one stating
the title, year, authors, and publisher of the Document as given
on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.</P
></LI
><LI
><P
>Preserve the network
location, if any, given in the Document for public access to a
Transparent copy of the Document, and likewise the network
locations given in the Document for previous versions it was
based on. These may be placed in the "History" section. You
may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.</P
></LI
><LI
><P
>In any section entitled
"Acknowledgements" or "Dedications", preserve the section's
title, and preserve in the section all the substance and tone of
each of the contributor acknowledgements and/or dedications
given therein.</P
></LI
><LI
><P
>Preserve all the
Invariant Sections of the Document, unaltered in their text and
in their titles. Section numbers or the equivalent are not
considered part of the section titles.</P
></LI
><LI
><P
>Delete any section
entitled "Endorsements". Such a section may not be included in
the Modified Version.</P
></LI
><LI
><P
>Do not retitle any
existing section as "Endorsements" or to conflict in title with
any Invariant Section.</P
></LI
></OL
><P
>If the Modified Version includes new front-matter sections
or appendices that qualify as Secondary Sections and contain no
material copied from the Document, you may at your option
designate some or all of these sections as invariant. To do this,
add their titles to the list of Invariant Sections in the Modified
Version's license notice. These titles must be distinct from any
other section titles.</P
><P
>You may add a section entitled "Endorsements", provided it
contains nothing but endorsements of your Modified Version by
various parties--for example, statements of peer review or that
the text has been approved by an organization as the authoritative
definition of a standard.</P
><P
>You may add a passage of up to five words as a Front-Cover
Text, and a passage of up to 25 words as a Back-Cover Text, to the
end of the list of Cover Texts in the Modified Version. Only one
passage of Front-Cover Text and one of Back-Cover Text may be
added by (or through arrangements made by) any one entity. If the
Document already includes a cover text for the same cover,
previously added by you or by arrangement made by the same entity
you are acting on behalf of, you may not add another; but you may
replace the old one, on explicit permission from the previous
publisher that added the old one.</P
><P
>The author(s) and publisher(s) of the Document do not by
this License give permission to use their names for publicity for
or to assert or imply endorsement of any Modified Version.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_3.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_5.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>COPYING IN QUANTITY</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>COMBINING DOCUMENTS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>COMBINING DOCUMENTS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="MODIFICATIONS"
HREF="gfdl_4.html"><LINK
REL="NEXT"
TITLE="COLLECTIONS OF DOCUMENTS"
HREF="gfdl_6.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_4.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_6.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_5"
>5. COMBINING DOCUMENTS</A
></H1
><P
>You may combine the Document with other documents released
under this License, under the terms defined in section 4 above for
modified versions, provided that you include in the combination
all of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice.</P
><P
>The combined work need only contain one copy of this
License, and multiple identical Invariant Sections may be replaced
with a single copy. If there are multiple Invariant Sections with
the same name but different contents, make the title of each such
section unique by adding at the end of it, in parentheses, the
name of the original author or publisher of that section if known,
or else a unique number. Make the same adjustment to the section
titles in the list of Invariant Sections in the license notice of
the combined work.</P
><P
>In the combination, you must combine any sections entitled
"History" in the various original documents, forming one section
entitled "History"; likewise combine any sections entitled
"Acknowledgements", and any sections entitled "Dedications". You
must delete all sections entitled "Endorsements."</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_4.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_6.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>MODIFICATIONS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>COLLECTIONS OF DOCUMENTS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>COLLECTIONS OF DOCUMENTS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="COMBINING DOCUMENTS"
HREF="gfdl_5.html"><LINK
REL="NEXT"
TITLE="AGGREGATION WITH INDEPENDENT WORKS"
HREF="gfdl_7.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_5.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_7.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_6"
>6. COLLECTIONS OF DOCUMENTS</A
></H1
><P
>You may make a collection consisting of the Document and
other documents released under this License, and replace the
individual copies of this License in the various documents with a
single copy that is included in the collection, provided that you
follow the rules of this License for verbatim copying of each of
the documents in all other respects.</P
><P
>You may extract a single document from such a collection,
and distribute it individually under this License, provided you
insert a copy of this License into the extracted document, and
follow this License in all other respects regarding verbatim
copying of that document.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_5.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_7.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>COMBINING DOCUMENTS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>AGGREGATION WITH INDEPENDENT WORKS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>AGGREGATION WITH INDEPENDENT WORKS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="COLLECTIONS OF DOCUMENTS"
HREF="gfdl_6.html"><LINK
REL="NEXT"
TITLE="TRANSLATION"
HREF="gfdl_8.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_6.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_8.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_7"
>7. AGGREGATION WITH INDEPENDENT WORKS</A
></H1
><P
>A compilation of the Document or its derivatives with other
separate and independent documents or works, in or on a volume of
a storage or distribution medium, does not as a whole count as a
Modified Version of the Document, provided no compilation
copyright is claimed for the compilation. Such a compilation is
called an "aggregate", and this License does not apply to the
other self-contained works thus compiled with the Document, on
account of their being thus compiled, if they are not themselves
derivative works of the Document.</P
><P
>If the Cover Text requirement of section 3 is applicable to
these copies of the Document, then if the Document is less than
one quarter of the entire aggregate, the Document's Cover Texts
may be placed on covers that surround only the Document within the
aggregate. Otherwise they must appear on covers around the whole
aggregate.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_6.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_8.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>COLLECTIONS OF DOCUMENTS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>TRANSLATION</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>TRANSLATION</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="AGGREGATION WITH INDEPENDENT WORKS"
HREF="gfdl_7.html"><LINK
REL="NEXT"
TITLE="TERMINATION"
HREF="gfdl_9.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_7.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_9.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_8"
>8. TRANSLATION</A
></H1
><P
>Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section
4. Replacing Invariant Sections with translations requires
special permission from their copyright holders, but you may
include translations of some or all Invariant Sections in addition
to the original versions of these Invariant Sections. You may
include a translation of this License provided that you also
include the original English version of this License. In case of
a disagreement between the translation and the original English
version of this License, the original English version will
prevail.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_7.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_9.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>AGGREGATION WITH INDEPENDENT WORKS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>TERMINATION</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>TERMINATION</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="TRANSLATION"
HREF="gfdl_8.html"><LINK
REL="NEXT"
TITLE="FUTURE REVISIONS OF THIS LICENSE"
HREF="gfdl_10.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_8.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl_10.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_9"
>9. TERMINATION</A
></H1
><P
>You may not copy, modify, sublicense, or distribute the
Document except as expressly provided for under this License. Any
other attempt to copy, modify, sublicense or distribute the
Document is void, and will automatically terminate your rights
under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses
terminated so long as such parties remain in full
compliance.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_8.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl_10.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>TRANSLATION</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>FUTURE REVISIONS OF THIS LICENSE</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>How to use this License for your documents</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"><LINK
REL="PREVIOUS"
TITLE="FUTURE REVISIONS OF THIS LICENSE"
HREF="gfdl_10.html"><LINK
REL="NEXT"
TITLE="Glossary"
HREF="glossary.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_10.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix D. GNU Free Documentation License</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="glossary.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="GFDL_HOWTO"
>How to use this License for your documents</A
></H1
><P
>To use this License in a document you have written, include
a copy of the License in the document and put the following
copyright and license notices just after the title page:</P
><A
NAME="AEN1699"
></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
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_10.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="glossary.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>FUTURE REVISIONS OF THIS LICENSE</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gfdl.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Glossary</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Glossary</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="How to use this License for your documents"
HREF="gfdl_howto.html"></HEAD
><BODY
CLASS="GLOSSARY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gfdl_howto.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="GLOSSARY"
><H1
><A
NAME="GLOSSARY"
>Glossary</A
></H1
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_A"
>A</A
></H1
><DL
><DT
><B
>There are no entries for A</B
></DT
><DD
><P
></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 "Bug" in Bugzilla refers to an issue entered into the database which has an associated number, assignments, comments, etc. Many also refer to a "Ticket" or "Issue"; in this context, they are synonymous.</P
></DD
><DT
><B
>Bug Number</B
></DT
><DD
><P
>Each Bugzilla Bug is assigned a number that uniquely identifies that Bug. The Bug associated with a Bug Number can be pulled up via a query, or easily from the very front page by typing the number in the "Find" box.</P
></DD
><DT
><B
>Bug Life Cycle</B
></DT
><DD
><P
>A Bug has stages through which it must pass before becoming a "closed bug", including acceptance, resolution, and verification. The "Bug Life Cycle" is moderately flexible according to the needs of the organization using it, though.</P
></DD
></DL
></DIV
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_I"
>I</A
></H1
><DL
><DT
><A
NAME="GLOSS_INFINITELOOP"
><B
>Infinite Loop</B
></A
></DT
><DD
><P
><EM
>See: </EM
><A
HREF="glossary.html#GLOSS_RECURSION"
>Recursion</A
></P
></DD
></DL
></DIV
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_P"
>P</A
></H1
><DL
><DT
><B
>Product</B
></DT
><DD
><P
>A Product is a broad category of types of bugs. In general, there are several Components to a Product. A Product also defines a default Group (used for Bug Security) for all bugs entered into components beneath it.</P
><DIV
CLASS="EXAMPLE"
><A
NAME="AEN1735"
></A
><P
><B
>Example 1. A Sample Product</B
></P
><P
>A company sells a software product called "X". They also maintain some older software called "Y", and have a secret project "Z". An effective use of Products might be to create Products "X", "Y", and "Z", each with Components "User Interface", "Database", and "Business Logic". They might also change group permissions so that only those people who are members of Group "Z" can see components and bugs under Product "Z".</P
></DIV
></DD
></DL
></DIV
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_Q"
>Q</A
></H1
><DL
><DT
><B
>Q/A</B
></DT
><DD
><P
>"Q/A" is short for "Quality Assurance". 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 "Q/A Contact" field in a Bug.</P
></DD
></DL
></DIV
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_R"
>R</A
></H1
><DL
><DT
><B
>Recursion</B
></DT
><DD
><P
><EM
>See: </EM
><A
HREF="glossary.html#GLOSS_INFINITELOOP"
>Infinite Loop</A
></P
></DD
></DL
></DIV
><DIV
CLASS="GLOSSDIV"
><H1
CLASS="GLOSSDIV"
><A
NAME="GLOSS_Z"
>Z</A
></H1
><DL
><DT
><B
>Zarro Boogs Found</B
></DT
><DD
><P
>This is the cryptic response sent by Bugzilla when a query returned no results. It is just a goofy way of saying "Zero Bugs Found".</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gfdl_howto.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>How to use this License for your documents</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>MySQL Permissions &#38; Grant Tables</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="PREVIOUS"
TITLE="MySQL Bugzilla Database Introduction"
HREF="dbdoc.html"><LINK
REL="NEXT"
TITLE="Cleaning up after mucking with Bugzilla"
HREF="cleanupwork.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dbdoc.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cleanupwork.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="GRANTTABLES"
>B.3. MySQL Permissions &#38; Grant Tables</A
></H1
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>The following portion of documentation comes from my answer to an old discussion of Keynote, a cool product that does trouble-ticket tracking for IT departments. I wrote this post to the Keynote support group regarding MySQL grant table permissions, and how to use them effectively. It is badly in need of updating, as I believe MySQL has added a field or two to the grant tables since this time, but it serves as a decent introduction and troubleshooting document for grant table issues. I used Keynote to track my troubles until I discovered Bugzilla, which gave me a whole new set of troubles to work on : )</P
></BLOCKQUOTE
></DIV
><P
CLASS="LITERALLAYOUT"
>From&nbsp;matt_barnson@singletrac.com&nbsp;Wed&nbsp;Jul&nbsp;&nbsp;7&nbsp;09:00:07&nbsp;1999<br>
Date:&nbsp;Mon,&nbsp;1&nbsp;Mar&nbsp;1999&nbsp;21:37:04&nbsp;-0700&nbsp;<br>
From:&nbsp;Matthew&nbsp;Barnson&nbsp;matt_barnson@singletrac.com<br>
To:&nbsp;keystone-users@homeport.org<br>
Subject:&nbsp;[keystone-users]&nbsp;Grant&nbsp;Tables&nbsp;FAQ<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;[The&nbsp;following&nbsp;text&nbsp;is&nbsp;in&nbsp;the&nbsp;"iso-8859-1"&nbsp;character&nbsp;set]<br>
&nbsp;&nbsp;&nbsp;&nbsp;[Your&nbsp;display&nbsp;is&nbsp;set&nbsp;for&nbsp;the&nbsp;"US-ASCII"&nbsp;character&nbsp;set]<br>
&nbsp;&nbsp;&nbsp;&nbsp;[Some&nbsp;characters&nbsp;may&nbsp;be&nbsp;displayed&nbsp;incorrectly]<br>
<br>
Maybe&nbsp;we&nbsp;can&nbsp;include&nbsp;this&nbsp;rambling&nbsp;message&nbsp;in&nbsp;the&nbsp;Keystone&nbsp;FAQ?&nbsp;&nbsp;It&nbsp;gets<br>
asked&nbsp;a&nbsp;lot,&nbsp;and&nbsp;the&nbsp;only&nbsp;option&nbsp;current&nbsp;listed&nbsp;in&nbsp;the&nbsp;FAQ&nbsp;is<br>
"--skip-grant-tables".<br>
<br>
Really,&nbsp;you&nbsp;can't&nbsp;go&nbsp;wrong&nbsp;by&nbsp;reading&nbsp;section&nbsp;6&nbsp;of&nbsp;the&nbsp;MySQL&nbsp;manual,&nbsp;at<br>
http://www.mysql.com/Manual/manual.html.&nbsp;&nbsp;I&nbsp;am&nbsp;sure&nbsp;their&nbsp;description&nbsp;is<br>
better&nbsp;than&nbsp;mine.<br>
<br>
MySQL&nbsp;runs&nbsp;fine&nbsp;without&nbsp;permissions&nbsp;set&nbsp;up&nbsp;correctly&nbsp;if&nbsp;you&nbsp;run&nbsp;the&nbsp;mysql<br>
daemon&nbsp;with&nbsp;the&nbsp;"--skip-grant-tables"&nbsp;option.&nbsp;&nbsp;Running&nbsp;this&nbsp;way&nbsp;denies<br>
access&nbsp;to&nbsp;nobody.&nbsp;&nbsp;Unfortunately,&nbsp;unless&nbsp;you've&nbsp;got&nbsp;yourself&nbsp;firewalled&nbsp;it<br>
also&nbsp;opens&nbsp;the&nbsp;potential&nbsp;for&nbsp;abuse&nbsp;if&nbsp;someone&nbsp;knows&nbsp;you're&nbsp;running&nbsp;it.<br>
<br>
Additionally,&nbsp;the&nbsp;default&nbsp;permissions&nbsp;for&nbsp;MySQL&nbsp;allow&nbsp;anyone&nbsp;at&nbsp;localhost<br>
access&nbsp;to&nbsp;the&nbsp;database&nbsp;if&nbsp;the&nbsp;database&nbsp;name&nbsp;begins&nbsp;with&nbsp;"test_"&nbsp;or&nbsp;is&nbsp;named<br>
"test"&nbsp;(i.e.&nbsp;"test_keystone").&nbsp;&nbsp;You&nbsp;can&nbsp;change&nbsp;the&nbsp;name&nbsp;of&nbsp;your&nbsp;database&nbsp;in<br>
the&nbsp;keystone.conf&nbsp;file&nbsp;($sys_dbname).&nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;way&nbsp;I&nbsp;am&nbsp;doing&nbsp;it&nbsp;for<br>
some&nbsp;of&nbsp;my&nbsp;databases,&nbsp;and&nbsp;it&nbsp;works&nbsp;fine.<br>
<br>
The&nbsp;methods&nbsp;described&nbsp;below&nbsp;assume&nbsp;you're&nbsp;running&nbsp;MySQL&nbsp;on&nbsp;the&nbsp;same&nbsp;box&nbsp;as<br>
your&nbsp;webserver,&nbsp;and&nbsp;that&nbsp;you&nbsp;don't&nbsp;mind&nbsp;if&nbsp;your&nbsp;$sys_dbuser&nbsp;for&nbsp;Keystone&nbsp;has<br>
superuser&nbsp;access.&nbsp;&nbsp;See&nbsp;near&nbsp;the&nbsp;bottom&nbsp;of&nbsp;this&nbsp;message&nbsp;for&nbsp;a&nbsp;description&nbsp;of<br>
what&nbsp;each&nbsp;field&nbsp;does.<br>
<br>
Method&nbsp;#1:<br>
<br>
1.&nbsp;&nbsp;cd&nbsp;/var/lib<br>
#location&nbsp;where&nbsp;you'll&nbsp;want&nbsp;to&nbsp;run&nbsp;/usr/bin/mysql_install_db&nbsp;shell<br>
script&nbsp;from&nbsp;to&nbsp;get&nbsp;it&nbsp;to&nbsp;work.<br>
<br>
2.&nbsp;&nbsp;ln&nbsp;-s&nbsp;mysql&nbsp;data&nbsp;&nbsp;<br>
#&nbsp;soft&nbsp;links&nbsp;the&nbsp;"mysql"&nbsp;directory&nbsp;to&nbsp;"data",&nbsp;which&nbsp;is&nbsp;what<br>
mysql_install_db&nbsp;expects.&nbsp;&nbsp;Alternately,&nbsp;you&nbsp;can&nbsp;edit&nbsp;mysql_install_db&nbsp;and<br>
change&nbsp;all&nbsp;the&nbsp;"./data"&nbsp;references&nbsp;to&nbsp;"./mysql".<br>
<br>
3.&nbsp;&nbsp;Edit&nbsp;/usr/bin/mysql_install_db&nbsp;with&nbsp;your&nbsp;favorite&nbsp;text&nbsp;editor&nbsp;(vi,<br>
emacs,&nbsp;jot,&nbsp;pico,&nbsp;etc.)<br>
A)&nbsp;&nbsp;Copy&nbsp;the&nbsp;"INSERT&nbsp;INTO&nbsp;db&nbsp;VALUES<br>
('%','test\_%','','Y','Y','Y','Y','Y','Y');"&nbsp;and&nbsp;paste&nbsp;it&nbsp;immediately&nbsp;after<br>
itself.&nbsp;&nbsp;Chage&nbsp;the&nbsp;'test\_%'&nbsp;value&nbsp;to&nbsp;'keystone',&nbsp;or&nbsp;the&nbsp;value&nbsp;of<br>
$sys_dbname&nbsp;in&nbsp;keystone.conf.<br>
B)&nbsp;&nbsp;If&nbsp;you&nbsp;are&nbsp;running&nbsp;your&nbsp;keystone&nbsp;database&nbsp;with&nbsp;any&nbsp;user,&nbsp;you'll&nbsp;need&nbsp;to<br>
copy&nbsp;the&nbsp;"INSERT&nbsp;INTO&nbsp;user&nbsp;VALUES<br>
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');"&nbsp;line&nbsp;after<br>
itself&nbsp;and&nbsp;change&nbsp;'root'&nbsp;to&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;keystone&nbsp;database&nbsp;user<br>
($sys_dbuser)&nbsp;in&nbsp;keystone.conf.<br>
<br>
#&nbsp;adds&nbsp;entries&nbsp;to&nbsp;the&nbsp;script&nbsp;to&nbsp;create&nbsp;grant&nbsp;tables&nbsp;for&nbsp;specific<br>
hosts&nbsp;and&nbsp;users.&nbsp;&nbsp;The&nbsp;user&nbsp;you&nbsp;set&nbsp;up&nbsp;has&nbsp;super-user&nbsp;access&nbsp;($sys_dbuser)&nbsp;--<br>
you&nbsp;may&nbsp;or&nbsp;may&nbsp;not&nbsp;want&nbsp;this.&nbsp;&nbsp;The&nbsp;layout&nbsp;of&nbsp;mysql_install_db&nbsp;is&nbsp;really&nbsp;very<br>
uncomplicated.<br>
<br>
4.&nbsp;&nbsp;/usr/bin/mysqladmin&nbsp;shutdown<br>
#&nbsp;ya&nbsp;gotta&nbsp;shut&nbsp;it&nbsp;down&nbsp;before&nbsp;you&nbsp;can&nbsp;reinstall&nbsp;the&nbsp;grant&nbsp;tables!<br>
<br>
5.&nbsp;&nbsp;rm&nbsp;-i&nbsp;/var/lib/mysql/mysql/*.IS?'&nbsp;and&nbsp;answer&nbsp;'Y'&nbsp;to&nbsp;the&nbsp;deletion<br>
questions.<br>
#&nbsp;nuke&nbsp;your&nbsp;current&nbsp;grant&nbsp;tables.&nbsp;&nbsp;This&nbsp;WILL&nbsp;NOT&nbsp;delete&nbsp;any&nbsp;other<br>
databases&nbsp;than&nbsp;your&nbsp;grant&nbsp;tables.<br>
<br>
6.&nbsp;&nbsp;/usr/bin/mysql_install_db<br>
#&nbsp;run&nbsp;the&nbsp;script&nbsp;you&nbsp;just&nbsp;edited&nbsp;to&nbsp;install&nbsp;your&nbsp;new&nbsp;grant&nbsp;tables.<br>
<br>
7.&nbsp;&nbsp;mysqladmin&nbsp;-u&nbsp;root&nbsp;password&nbsp;(new_password)&nbsp;&nbsp;<br>
#&nbsp;change&nbsp;the&nbsp;root&nbsp;MySQL&nbsp;password,&nbsp;or&nbsp;else&nbsp;anyone&nbsp;on&nbsp;localhost&nbsp;can<br>
login&nbsp;to&nbsp;MySQL&nbsp;as&nbsp;root&nbsp;and&nbsp;make&nbsp;changes.&nbsp;&nbsp;You&nbsp;can&nbsp;skip&nbsp;this&nbsp;step&nbsp;if&nbsp;you&nbsp;want<br>
keystone&nbsp;to&nbsp;connect&nbsp;as&nbsp;root&nbsp;with&nbsp;no&nbsp;password.<br>
<br>
8.&nbsp;&nbsp;mysqladmin&nbsp;-u&nbsp;(webserver_user_name)&nbsp;password&nbsp;(new_password)&nbsp;&nbsp;<br>
#&nbsp;change&nbsp;the&nbsp;password&nbsp;of&nbsp;the&nbsp;$sys_dbuser.&nbsp;&nbsp;Note&nbsp;that&nbsp;you&nbsp;will&nbsp;need<br>
to&nbsp;change&nbsp;the&nbsp;password&nbsp;in&nbsp;the&nbsp;keystone.conf&nbsp;file&nbsp;as&nbsp;well&nbsp;in&nbsp;$sys_dbpasswd,<br>
and&nbsp;if&nbsp;your&nbsp;permissions&nbsp;are&nbsp;set&nbsp;up&nbsp;incorrectly&nbsp;anybody&nbsp;can&nbsp;type&nbsp;the&nbsp;URL&nbsp;to<br>
your&nbsp;keystone.conf&nbsp;file&nbsp;and&nbsp;get&nbsp;the&nbsp;password.&nbsp;&nbsp;Not&nbsp;that&nbsp;this&nbsp;will&nbsp;help&nbsp;them<br>
much&nbsp;if&nbsp;your&nbsp;permissions&nbsp;are&nbsp;set&nbsp;to&nbsp;@localhost.<br>
<br>
<br>
<br>
Method&nbsp;#2:&nbsp;&nbsp;easier,&nbsp;but&nbsp;a&nbsp;pain&nbsp;reproducing&nbsp;if&nbsp;you&nbsp;have&nbsp;to&nbsp;delete&nbsp;your&nbsp;grant<br>
tables.&nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;"recommended"&nbsp;method&nbsp;for&nbsp;altering&nbsp;grant&nbsp;tables&nbsp;in<br>
MySQL.&nbsp;&nbsp;I&nbsp;don't&nbsp;use&nbsp;it&nbsp;because&nbsp;I&nbsp;like&nbsp;the&nbsp;other&nbsp;way&nbsp;:)<br>
<br>
shell&#62;&nbsp;mysql&nbsp;--user=root&nbsp;keystone<br>
<br>
mysql&#62;&nbsp;GRANT<br>
SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,<br>
FILE,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;keystone.*<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TO&nbsp;&#60;$sys_dbuser&nbsp;name&#62;@localhost<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDENTIFIED&nbsp;BY&nbsp;'(password)'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WITH&nbsp;GRANT&nbsp;OPTION;<br>
<br>
OR<br>
<br>
mysql&#62;&nbsp;GRANT&nbsp;ALL&nbsp;PRIVELEGES&nbsp;<br>
ON&nbsp;keystone.*<br>
TO&nbsp;&#60;$sys_dbuser&nbsp;name&#62;@localhost<br>
IDENTIFIED&nbsp;BY&nbsp;'(password)'<br>
WITH&nbsp;GRANT&nbsp;OPTION;<br>
<br>
#&nbsp;this&nbsp;grants&nbsp;the&nbsp;required&nbsp;permissions&nbsp;to&nbsp;the&nbsp;keystone&nbsp;($sys_dbuser)<br>
account&nbsp;defined&nbsp;in&nbsp;keystone.conf.&nbsp;&nbsp;However,&nbsp;if&nbsp;you&nbsp;are&nbsp;runnning&nbsp;many<br>
different&nbsp;MySQL-based&nbsp;apps,&nbsp;as&nbsp;we&nbsp;are,&nbsp;it's&nbsp;generally&nbsp;better&nbsp;to&nbsp;edit&nbsp;the<br>
mysql_install_db&nbsp;script&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;quickly&nbsp;reproduce&nbsp;your&nbsp;permissions<br>
structure&nbsp;again.&nbsp;&nbsp;Note&nbsp;that&nbsp;the&nbsp;FILE&nbsp;privelege&nbsp;and&nbsp;WITH&nbsp;GRANT&nbsp;OPTION&nbsp;may&nbsp;not<br>
be&nbsp;in&nbsp;your&nbsp;best&nbsp;interest&nbsp;to&nbsp;include.<br>
<br>
<br>
GRANT&nbsp;TABLE&nbsp;FIELDS&nbsp;EXPLANATION:<br>
Quick&nbsp;syntax&nbsp;summary:&nbsp;&nbsp;"%"&nbsp;in&nbsp;MySQL&nbsp;is&nbsp;a&nbsp;wildcard.&nbsp;&nbsp;I.E.,&nbsp;if&nbsp;you&nbsp;are<br>
defining&nbsp;your&nbsp;DB&nbsp;table&nbsp;and&nbsp;in&nbsp;the&nbsp;'host'&nbsp;field&nbsp;and&nbsp;enter&nbsp;'%',&nbsp;that&nbsp;means<br>
that&nbsp;any&nbsp;host&nbsp;can&nbsp;access&nbsp;that&nbsp;database.&nbsp;&nbsp;Of&nbsp;course,&nbsp;that&nbsp;host&nbsp;must&nbsp;also&nbsp;have<br>
a&nbsp;valid&nbsp;db&nbsp;user&nbsp;in&nbsp;order&nbsp;to&nbsp;do&nbsp;anything&nbsp;useful.&nbsp;&nbsp;'db'=name&nbsp;of&nbsp;database.&nbsp;&nbsp;In<br>
our&nbsp;case,&nbsp;it&nbsp;should&nbsp;be&nbsp;"keystone".&nbsp;&nbsp;"user"&nbsp;should&nbsp;be&nbsp;your&nbsp;"$sys_dbuser"<br>
defined&nbsp;in&nbsp;keystone.conf.&nbsp;&nbsp;Note&nbsp;that&nbsp;you&nbsp;CANNOT&nbsp;add&nbsp;or&nbsp;change&nbsp;a&nbsp;password&nbsp;by<br>
using&nbsp;the&nbsp;"INSERT&nbsp;INTO&nbsp;db&nbsp;(X)"&nbsp;command&nbsp;--&nbsp;you&nbsp;must&nbsp;change&nbsp;it&nbsp;with&nbsp;the&nbsp;mysql<br>
-u&nbsp;command&nbsp;as&nbsp;defined&nbsp;above.&nbsp;&nbsp;Passwords&nbsp;are&nbsp;stored&nbsp;encrypted&nbsp;in&nbsp;the&nbsp;MySQL<br>
database,&nbsp;and&nbsp;if&nbsp;you&nbsp;try&nbsp;to&nbsp;enter&nbsp;it&nbsp;directly&nbsp;into&nbsp;the&nbsp;table&nbsp;they&nbsp;will&nbsp;not<br>
match.<br>
<br>
TABLE:&nbsp;&nbsp;USER.&nbsp;&nbsp;Everything&nbsp;after&nbsp;"password"&nbsp;is&nbsp;a&nbsp;privelege&nbsp;granted&nbsp;(Y/N).<br>
This&nbsp;table&nbsp;controls&nbsp;individual&nbsp;user&nbsp;global&nbsp;access&nbsp;rights.<br>
<br>
'host','user','password','select','insert','update','delete','index','alter'<br>
,'create','drop','grant','reload','shutdown','process','file'<br>
<br>
TABLE:&nbsp;&nbsp;DB.&nbsp;&nbsp;This&nbsp;controls&nbsp;access&nbsp;of&nbsp;USERS&nbsp;to&nbsp;databases.<br>
<br>
'host','db','user','select','insert','update','delete','index','alter','crea<br>
te','drop','grant'<br>
<br>
TABLE:&nbsp;&nbsp;HOST.&nbsp;&nbsp;This&nbsp;controls&nbsp;which&nbsp;HOSTS&nbsp;are&nbsp;allowed&nbsp;what&nbsp;global&nbsp;access<br>
rights.&nbsp;&nbsp;Note&nbsp;that&nbsp;the&nbsp;HOST&nbsp;table,&nbsp;USER&nbsp;table,&nbsp;and&nbsp;DB&nbsp;table&nbsp;are&nbsp;very&nbsp;closely<br>
connected&nbsp;--&nbsp;if&nbsp;an&nbsp;authorized&nbsp;USER&nbsp;attempts&nbsp;an&nbsp;SQL&nbsp;request&nbsp;from&nbsp;an<br>
unauthorized&nbsp;HOST,&nbsp;she's&nbsp;denied.&nbsp;&nbsp;If&nbsp;a&nbsp;request&nbsp;from&nbsp;an&nbsp;authorized&nbsp;HOST&nbsp;is<br>
not&nbsp;an&nbsp;authorized&nbsp;USER,&nbsp;it&nbsp;is&nbsp;denied.&nbsp;&nbsp;If&nbsp;a&nbsp;globally&nbsp;authorized&nbsp;USER&nbsp;does<br>
not&nbsp;have&nbsp;rights&nbsp;to&nbsp;a&nbsp;certain&nbsp;DB,&nbsp;she's&nbsp;denied.&nbsp;&nbsp;Get&nbsp;the&nbsp;picture?<br>
<br>
'host','db','select','insert','update','delete','index','alter','create','dr<br>
op','grant'<br>
<br>
<br>
You&nbsp;should&nbsp;now&nbsp;have&nbsp;a&nbsp;working&nbsp;knowledge&nbsp;of&nbsp;MySQL&nbsp;grant&nbsp;tables.&nbsp;&nbsp;If&nbsp;there&nbsp;is<br>
anything&nbsp;I've&nbsp;left&nbsp;out&nbsp;of&nbsp;this&nbsp;answer&nbsp;that&nbsp;you&nbsp;feel&nbsp;is&nbsp;pertinent,&nbsp;or&nbsp;if&nbsp;my<br>
instructions&nbsp;don't&nbsp;work&nbsp;for&nbsp;you,&nbsp;please&nbsp;let&nbsp;me&nbsp;know&nbsp;and&nbsp;I'll&nbsp;re-post&nbsp;this<br>
letter&nbsp;again,&nbsp;corrected.&nbsp;&nbsp;I&nbsp;threw&nbsp;it&nbsp;together&nbsp;one&nbsp;night&nbsp;out&nbsp;of&nbsp;exasperation<br>
for&nbsp;all&nbsp;the&nbsp;newbies&nbsp;who&nbsp;don't&nbsp;know&nbsp;squat&nbsp;about&nbsp;MySQL&nbsp;yet,&nbsp;so&nbsp;it&nbsp;is&nbsp;almost<br>
guaranteed&nbsp;to&nbsp;have&nbsp;errors.<br>
<br>
Once&nbsp;again,&nbsp;you&nbsp;can't&nbsp;go&nbsp;wrong&nbsp;by&nbsp;reading&nbsp;section&nbsp;6&nbsp;of&nbsp;the&nbsp;MySQL&nbsp;manual.&nbsp;&nbsp;It<br>
is&nbsp;more&nbsp;detailed&nbsp;than&nbsp;I!<br>
http://www.mysql.com/Manual/manual.html.<br>
<br>
----------------------------------------------------------------------------<br>
10/12/2000<br>
Matthew&nbsp;sent&nbsp;in&nbsp;some&nbsp;mail&nbsp;with&nbsp;updated&nbsp;contact&nbsp;information:<br>
NEW&nbsp;CONTACT&nbsp;INFORMATION:&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------------------------&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manager,&nbsp;Systems&nbsp;Administration&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Excite@Home&nbsp;Business&nbsp;Applications&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mbarnson@excitehome.net&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(801)234-8300&nbsp;<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dbdoc.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cleanupwork.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>MySQL Bugzilla Database Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="database.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Cleaning up after mucking with Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>How do I use Bugzilla?</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="Why Should We Use Bugzilla?"
HREF="why.html"><LINK
REL="NEXT"
TITLE="What's in it for me?"
HREF="init4me.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="why.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="init4me.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="HOW"
>4.3. How do I use Bugzilla?</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>Hey! I'm Woody! Howdy, Howdy, Howdy!</I
></P
></I
></TD
></TR
></TABLE
><P
> Bugzilla is a large and complex system. Describing how to use it
requires some time. If you are only interested in installing or administering
a Bugzilla installation, please consult the Installing and Administering
Bugzilla portions of this Guide. This section is principally aimed towards
developing end-user mastery of Bugzilla, so you may fully enjoy the benefits
afforded by using this reliable open-source bug-tracking software.
</P
><P
> Throughout this portion of the Guide, we will refer to user account
options available at the Bugzilla test installation,
<A
HREF="http://landfill.tequilarista.org/"
TARGET="_top"
> landfill.tequilarista.org</A
>.
Although Landfill serves as a great introduction to Bugzilla, it does not offer
all the options you would have as a user on your own installation of Bugzilla,
nor can it do more than serve as a general introduction to Bugzilla.
However, please use it if you want to
follow this tutorial.
</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="MYACCOUNT"
>4.3.1. Create a Bugzilla Account</A
></H2
><P
> First thing's first! 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 the end-user Bugzilla experience, use this URL:
<A
HREF="http://landfill.tequilarista.org/mozilla/bugzilla/"
TARGET="_top"
> http://landfill.tequilarista.org/mozilla/bugzilla/</A
>
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Click the "Open a new Bugzilla account" link.
</P
></LI
><LI
><P
> Enter your "E-mail address" and "Real Name" (or whatever name you want to call yourself)
in the spaces provided, then select the "Create Account" button.
</P
></LI
><LI
><P
> Within 5-10 minutes, you should receive an email to the address you provided above,
which contains your login name (generally the same as the email address), and
a password you can use to access your account. This password is randomly generated,
and should be changed at your nearest opportunity (we'll go into how to do it later).
</P
></LI
><LI
><P
> Click the "Log In" link in the yellow area at the bottom of the page in your browser,
then enter your "E-mail address" and "Password" you just received into the spaces provided,
and select "Login".
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> If you ever forget your password, you can come back to this page, enter your
"E-mail address", then select the "E-mail me a password" button to have your password
mailed to you again so that you can login.
</P
></BLOCKQUOTE
></DIV
>
<DIV
CLASS="CAUTION"
><P
></P
><TABLE
CLASS="CAUTION"
BORDER="1"
WIDTH="90%"
><TR
><TD
ALIGN="CENTER"
><B
>Caution</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
> Many modern browsers include an "Auto-Complete" or "Form Fill" feature to
remember the user names and passwords you type in at many sites. Unfortunately,
sometimes they attempt to "guess" what you will put in as your password, and guess
wrong. If you notice a text box is already filled out, please overwrite the contents
of the text box so you can be sure to input the correct information.
</P
></TD
></TR
></TABLE
></DIV
>
</P
></LI
></OL
><P
> Congratulations! If you followed these directions, you now are the
proud owner of a user account on landfill.tequilarista.org (Landfill) or
your local Bugzilla install. You should now see in your browser a
page called the "Bugzilla Query Page". It may look daunting, but
with this Guide to walk you through it, you will master it in no time.
</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="QUERY"
>4.3.2. The Bugzilla Query Page</A
></H2
><P
> The Bugzilla Query Page is the heart and soul of Bugzilla. It is the master
interface where you can find any bug report, comment, or patch currently in the Bugzilla
system. We'll go into how to create your own bug report later on.
</P
><P
> There are efforts underway to simplify query usage. If you have a local installation
of Bugzilla 2.12 or higher, you should have "quicksearch.html" available
to use and simplify your searches. There is also, or shortly will be, a helper
for the query interface, called "queryhelp.cgi". Landfill tends to run the latest code,
so these two utilities should be available there for your perusal.
</P
><P
> At this point, please visit the main Bugzilla site,
<A
HREF="http://bugzilla.mozilla.org/query.cgi"
TARGET="_top"
> bugzilla.mozilla.org</A
>, to see a more fleshed-out query page.
</P
><P
> The first thing you need to notice about the Bugzilla Query Page is that
nearly every box you see on your screen has a hyperlink nearby, explaining what
it is or what it does. Near the upper-left-hand corner of your browser window
you should see the word "Status" underlined. Select it.
</P
><P
> Notice the page that popped up? Every underlined word you see on your screen
is a hyperlink that will take you to context-sensitive help.
Click around for a while, and learn what everything here does. To return
to the query interface after pulling up a help page, use the "Back" button in
your browser.
</P
><P
> I'm sure that after checking out the online help, you are now an Expert
on the Bugzilla Query Page. If, however, you feel you haven't mastered it yet,
let me walk you through making a few successful queries to find out what there
are in the Bugzilla bug-tracking system itself.
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Ensure you are back on the "Bugzilla Query Page"
Do nothing in the boxes marked "Status", "Resolution", "Platform", "OpSys",
"Priority", or "Severity". The default query for "Status" is to find all bugs that
are NEW, ASSIGNED, or REOPENED, which is what we want. If you don't select anything
in the other 5 scrollboxes there, then you are saying that "any of these are OK";
we're not locking ourselves into only finding bugs on the "DEC" Platform, or "Windows 95"
OpSys (Operating System). You're smart, I think you have it figured out.
</P
><P
> Basically, selecting <EM
>anything</EM
> on the query page narrows your search
down. Leaving stuff unselected, or text boxes unfilled, broadens your search!
</P
></LI
><LI
><P
> You see the box immediately below the top six boxes that contains an "Email" text box,
with the words "matching as", a drop-down selection box, then some checkboxes with
"Assigned To" checked by default? This allows you to filter your search down based upon
email address. Let's put my email address in there, and see what happens.
</P
><P
> Type "barnboy@trilobyte.net" in the top Email text box.
</P
></LI
><LI
><P
> Let's narrow the search some more. Scroll down until you find the box with the word
"Program" over the top of it. This is where we can narrow our search down to only
specific products (software programs or product lines) in our Bugzilla database.
Please notice the box is a <EM
>scrollbox</EM
>. Using the down arrow on the
scrollbox, scroll down until you can see an entry called "Webtools". Select this entry.
</P
></LI
><LI
><P
> Did you notice that some of the boxes to the right changed when you selected "Webtools"?
Every Program (or Product) has different Versions, Components, and Target Milestones associated
with it. A "Version" is the number of a software program.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN745"
></A
><P
><B
>Example 4-1. Some Famous Software Versions</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN747"
></A
><P
></P
><P
> Do you remember the hype in 1995 when Microsoft Windows 95(r) was released?
It may have been several years
ago, but Microsoft(tm) spent over $300 Million advertising this new Version of their
software. Three years later, they released Microsoft Windows 98(r),
another new version, to great fanfare, and then in 2000 quietly
released Microsoft Windows ME(Millenium Edition)(r).
</P
><P
> Software "Versions" help a manufacturer differentiate
their current product from their
previous products. Most do not identify their products
by the year they were released.
Instead, the "original" version of their software will
often be numbered "1.0", with
small bug-fix releases on subsequent tenths of a digit. In most cases, it's not
a decimal number; for instance, often 1.9 is an <EM
>older</EM
> version
of the software than 1.11,
but is a <EM
>newer</EM
> version than 1.1.1.
</P
><P
> In general, a "Version" in Bugzilla should refer to
<EM
>released</EM
>
products, not products that have not yet been released
to the public. Forthcoming products
are what the Target Milestone field is for.
</P
><P
></P
></DIV
></DIV
>
</P
><P
> A "Component" is a piece of a Product.
It may be a standalone program, or some other logical
division of a Product or Program.
Normally, a Component has a single Owner, who is responsible
for overseeing efforts to improve that Component.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN755"
></A
><P
><B
>Example 4-2. Mozilla Webtools Components</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN757"
></A
><P
></P
><P
> Mozilla's "Webtools" Product is composed of several pieces (Components):
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><EM
>Bonsai</EM
>,
a tool to show recent changes to Mozilla</TD
></TR
><TR
><TD
><EM
>Bugzilla</EM
>,
a defect-tracking tool</TD
></TR
><TR
><TD
><EM
>Build</EM
>,
a tool to automatically compile source code
into machine-readable form</TD
></TR
><TR
><TD
><EM
>Despot</EM
>,
a program that controls access to the other Webtools</TD
></TR
><TR
><TD
><EM
>LXR</EM
>,
a utility that automatically marks up text files
to make them more readable</TD
></TR
><TR
><TD
><EM
>MozBot</EM
>,
a "robot" that announces changes to Mozilla in Chat</TD
></TR
><TR
><TD
><EM
>TestManager</EM
>,
a tool to help find bugs in Mozilla</TD
></TR
><TR
><TD
><EM
>Tinderbox</EM
>,
which displays reports from Build</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
><P
> A different person is responsible for each of these Components.
Tara Hernandez keeps
the "Bugzilla" component up-to-date.
</P
><P
></P
></DIV
></DIV
>
</P
><P
> A "Milestone", or "Target Milestone" is a often a planned future "Version" of a
product. In many cases, though, Milestones simply represent significant dates for
a developer. Having certain features in your Product is frequently
tied to revenue (money)
the developer will receive if the features work by the time she
reaches the Target Milestone.
Target Milestones are a great tool to organize your time.
If someone will pay you $100,000 for
incorporating certain features by a certain date,
those features by that Milestone date become
a very high priority. Milestones tend to be highly malleable creatures,
though, that appear
to be in reach but are out of reach by the time the important day arrives.
</P
><P
> The Bugzilla Project has set up Milestones for future
Bugzilla versions 2.14, 2.16, 2.18, 3.0, etc. However,
a Target Milestone can just as easily be a specific date,
code name, or weird alphanumeric
combination, like "M19".
</P
></LI
><LI
><P
> OK, now let's select the "Bugzilla" component from its scrollbox.
</P
></LI
><LI
><P
> Skip down the page a bit -- do you see the "submit query" button?
Select it, and let's run
this query!
</P
></LI
><LI
><P
> Congratulations! You've completed your first Query, and have before you the Bug List
of the author of this Guide, Matthew P. Barnson (barnboy@trilobyte.net). If I'm
doing well,
you'll have a cryptic "Zarro Boogs Found" message on your screen. It is just
a happy hacker's way of saying "Zero Bugs Found". However, I am fairly certain I will
always have some bugs assigned to me that aren't done yet,
so you won't often see that message!
</P
></LI
></OL
><P
> I encourage you to click the bug numbers in the left-hand column and examine
my bugs. Also notice that if you click the underlined
links near the top of this page, they do
not take you to context-sensitive help here,
but instead sort the columns of bugs on the screen!
When you need to sort your bugs by priority, severity,
or the people they are assigned to, this
is a tremendous timesaver.
</P
><P
> A couple more interesting things about the Bug List page:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><EM
>Change Columns</EM
>:
by selecting this link, you can show all kinds
of information in the Bug List</TD
></TR
><TR
><TD
><EM
>Change several bugs at once</EM
>:
If you have sufficient rights to change all
the bugs shown in the Bug List, you can mass-modify them.
This is a big time-saver.</TD
></TR
><TR
><TD
><EM
>Send mail to bug owners</EM
>:
If you have many related bugs, you can request
an update from every person who owns the bugs in
the Bug List asking them the status.</TD
></TR
><TR
><TD
><EM
>Edit this query</EM
>:
If you didn't get exactly the results you were looking for,
you can return to the Query page through this link and make
small revisions to the query you just made so
you get more accurate results.</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> There are many more options to the Bugzilla Query Page
and the Bug List than I have shown you.
But this should be enough for you to learn to get around.
I encourage you to check out the
<A
HREF="http://www.mozilla.org/bugs/"
TARGET="_top"
>Bugzilla Home Page</A
>
to learn about the Anatomy
and Life Cycle of a Bug before continuing.
</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="BUGREPORTS"
>4.3.3. Creating and Managing Bug Reports</A
></H2
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>And all this time, I thought we were taking bugs <EM
>out</EM
>...</I
></P
></I
></TD
></TR
></TABLE
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="BUG_WRITING"
>4.3.3.1. Writing a Great Bug Report</A
></H3
><P
> Before we plunge into writing your first bug report, I encourage you to read
<A
HREF="http://www.mozilla.org/quality/bug-writing-guidelines.html"
TARGET="_top"
>Mozilla.org's 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
> While you are at it, why not learn how to find previously reported bugs? Mozilla.org
has published a great tutorial on finding duplicate bugs, available at
<A
HREF="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html"
TARGET="_top"
> http://www.mozilla.org/quality/help/beginning-duplicate-finding.html</A
>.
</P
><P
> I realize this was a lot to read. However, understanding the mentality of writing
great bug reports will help us on the next part!
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Go back to <A
HREF="http://landfill.tequilarista.org/mozilla/bugzilla/"
TARGET="_top"
> http://landfill.tequilarista.org/mozilla/bugzilla/</A
>
in your browser.
</P
></LI
><LI
><P
> Select the
<A
HREF="http://landfill.tequilarista.org/mozilla/bugzilla/enter_bug.cgi"
TARGET="_top"
> Enter a new bug report</A
> link.
</P
></LI
><LI
><P
> Select a product.
</P
></LI
><LI
><P
> Now you should be at the "Enter Bug" form.
The "reporter" should have been automatically filled out
for you (or else Bugzilla prompted you to Log In again
-- you did keep the email with your username
and password, didn't you?).
</P
></LI
><LI
><P
> Select a Component in the scrollbox.
</P
></LI
><LI
><P
> Bugzilla should have made reasonable guesses, based upon your browser,
for the "Platform" and "OS" drop-down
boxes. If those are wrong, change them -- if you're on an SGI box
running IRIX, we want to know!
</P
></LI
><LI
><P
> Fill in the "Assigned To" box with the email address you provided earlier.
This way you don't end up sending copies of your bug to lots of other people,
since it's just a test bug.
</P
></LI
><LI
><P
> Leave the "CC" text box blank.
Fill in the "URL" box with "http://www.mozilla.org".
</P
></LI
><LI
><P
> Enter "The Bugzilla Guide" in the Summary text box,
and place any comments you have on this
tutorial, or the Guide in general, into the Description box.
</P
></LI
></OL
><P
> Voila! Select "Commit" and send in your bug report!
Next we'll look at resolving bugs.
</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="BUG_MANAGE"
>4.3.3.2. Managing your Bug Reports</A
></H3
><P
> OK, you should have a link to the bug you just created near the top of your page.
It should say
"Bug XXXX posted", with a link to the right saying "Back to BUG# XXXX".
Select this link.
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Scroll down a bit on the subsequent page,
until you see the "Resolve bug, changing resolution to (dropdown box).
Normally, you would
"Accept bug (change status to ASSIGNED)", fix it, and then resolve.
But in this case, we're
going to short-circuit the process because this wasn't a real bug.
Change the dropdown next to
"Resolve Bug" to "INVALID", make sure the radio button is
marked next to "Resolve Bug", then
click "Commit".
</P
></LI
><LI
><P
> Hey! It said it couldn't take the change in a big red box!
That's right, you must specify
a Comment in order to make this change. Select the "Back"
button in your browser, add a
Comment, then try Resolving the bug with INVALID status again.
This time it should work.
</P
></LI
></OL
><P
> You have now learned the basics of Bugzilla navigation,
entering a bug, and bug maintenance.
I encourage you to explore these features, and see what you can do with them!
We'll spend no more time on individual Bugs or Queries from this point on, so you are
on your own there.
</P
><P
> But I'll give a few last hints!
</P
><P
> There is a <A
HREF="http://bugzilla.mozilla.org/help.html"
TARGET="_top"
>CLUE</A
>
on the Query page
that will teach you more how to use the form.
</P
><P
> If you click the hyperlink on the
<A
HREF="http://bugzilla.mozilla.org/describecomponents.cgi"
TARGET="_top"
>Component</A
>
box of the Query page, you will be presented a form that will describe what all
the components are.
</P
><P
> Possibly the most powerful feature of the Query page is the
<A
HREF="http://bugzilla.mozilla.org/booleanchart.html"
TARGET="_top"
>Boolean Chart</A
> section.
It's a bit confusing to use the first time, but can provide unparalleled
flexibility in your queries,
allowing you to build extremely powerful requests.
</P
><P
> Finally, you can build some nifty
<A
HREF="http://bugzilla.mozilla.org/reports.cgi"
TARGET="_top"
>Reports</A
>
using the "Bug Reports" link near the bottom of the query page, and also
available via the "Reports" link
at the footer of each page.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="why.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="init4me.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Why Should We Use Bugzilla?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>What's in it for me?</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The Bugzilla Guide</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="NEXT"
TITLE="About This Guide"
HREF="about.html"><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</A
></H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
>Matthew P. Barnson</A
></H3
><DIV
CLASS="AFFILIATION"
><DIV
CLASS="ADDRESS"
><P
CLASS="ADDRESS"
>barnboy@trilobyte.net</P
></DIV
></DIV
><DIV
><DIV
CLASS="ABSTRACT"
><A
NAME="AEN12"
></A
><P
></P
><P
>This is the documentation for Bugzilla, the Mozilla bug-tracking system.</P
><P
></P
></DIV
></DIV
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="about.html"
>About This Guide</A
></DT
><DD
><DL
><DT
>1.1. <A
HREF="aboutthisguide.html"
>Purpose and Scope of this Guide</A
></DT
><DT
>1.2. <A
HREF="copyright.html"
>Copyright Information</A
></DT
><DT
>1.3. <A
HREF="disclaimer.html"
>Disclaimer</A
></DT
><DT
>1.4. <A
HREF="newversions.html"
>New Versions</A
></DT
><DT
>1.5. <A
HREF="credits.html"
>Credits</A
></DT
><DT
>1.6. <A
HREF="contributors.html"
>Contributors</A
></DT
><DT
>1.7. <A
HREF="feedback.html"
>Feedback</A
></DT
><DT
>1.8. <A
HREF="translations.html"
>Translations</A
></DT
><DT
>1.9. <A
HREF="conventions.html"
>Document Conventions</A
></DT
></DL
></DD
><DT
>2. <A
HREF="installation.html"
>Installing Bugzilla</A
></DT
><DD
><DL
><DT
>2.1. <A
HREF="readme.unix.html"
>UNIX Installation</A
></DT
><DT
>2.2. <A
HREF="readme.windows.html"
>Win32 (Win98+/NT/2K) Installation</A
></DT
></DL
></DD
><DT
>3. <A
HREF="administration.html"
>Administering Bugzilla</A
></DT
><DD
><DL
><DT
>3.1. <A
HREF="postinstall-check.html"
>Post-Installation Checklist</A
></DT
><DT
>3.2. <A
HREF="useradmin.html"
>User Administration</A
></DT
><DT
>3.3. <A
HREF="programadmin.html"
>Product, Component, Milestone, and Version Administration</A
></DT
><DT
>3.4. <A
HREF="security.html"
>Bugzilla Security</A
></DT
></DL
></DD
><DT
>4. <A
HREF="using.html"
>Using Bugzilla</A
></DT
><DD
><DL
><DT
>4.1. <A
HREF="whatis.html"
>What is Bugzilla?</A
></DT
><DT
>4.2. <A
HREF="why.html"
>Why Should We Use Bugzilla?</A
></DT
><DT
>4.3. <A
HREF="how.html"
>How do I use Bugzilla?</A
></DT
><DT
>4.4. <A
HREF="init4me.html"
>What's in it for me?</A
></DT
><DT
>4.5. <A
HREF="usingbz-conc.html"
>Using Bugzilla-Conclusion</A
></DT
></DL
></DD
><DT
>5. <A
HREF="integration.html"
>Integrating Bugzilla with Third-Party Tools</A
></DT
><DD
><DL
><DT
>5.1. <A
HREF="bonsai.html"
>Bonsai</A
></DT
><DT
>5.2. <A
HREF="cvs.html"
>CVS</A
></DT
><DT
>5.3. <A
HREF="scm.html"
>Perforce SCM</A
></DT
><DT
>5.4. <A
HREF="tinderbox.html"
>Tinderbox</A
></DT
></DL
></DD
><DT
>6. <A
HREF="future.html"
>The Future of Bugzilla</A
></DT
><DD
><DL
><DT
>6.1. <A
HREF="spamlite.html"
>Reducing Spam</A
></DT
><DT
>6.2. <A
HREF="searching.html"
>Better Searching</A
></DT
><DT
>6.3. <A
HREF="trackingbugs.html"
>Description Flags and Tracking Bugs</A
></DT
><DT
>6.4. <A
HREF="bugprobs.html"
>Bug Issues</A
></DT
><DT
>6.5. <A
HREF="dbaseintegrity.html"
>Database Integrity</A
></DT
><DT
>6.6. <A
HREF="bz30.html"
>Bugzilla 3.0</A
></DT
></DL
></DD
><DT
>A. <A
HREF="faq.html"
>The Bugzilla FAQ</A
></DT
><DT
>B. <A
HREF="database.html"
>The Bugzilla Database</A
></DT
><DD
><DL
><DT
>B.1. <A
HREF="dbschema.html"
>Database Schema Chart</A
></DT
><DT
>B.2. <A
HREF="dbdoc.html"
>MySQL Bugzilla Database Introduction</A
></DT
><DT
>B.3. <A
HREF="granttables.html"
>MySQL Permissions &#38; Grant Tables</A
></DT
><DT
>B.4. <A
HREF="cleanupwork.html"
>Cleaning up after mucking with Bugzilla</A
></DT
></DL
></DD
><DT
>C. <A
HREF="patches.html"
>Useful Patches and Utilities for Bugzilla</A
></DT
><DD
><DL
><DT
>C.1. <A
HREF="setperl.html"
>The setperl.pl Utility</A
></DT
><DT
>C.2. <A
HREF="cmdline.html"
>Command-line Bugzilla Queries</A
></DT
><DT
>C.3. <A
HREF="quicksearch.html"
>The Quicksearch Utility</A
></DT
></DL
></DD
><DT
>D. <A
HREF="gfdl.html"
>GNU Free Documentation License</A
></DT
><DD
><DL
><DT
>0. <A
HREF="gfdl_0.html"
>PREAMBLE</A
></DT
><DT
>1. <A
HREF="gfdl_1.html"
>APPLICABILITY AND DEFINITIONS</A
></DT
><DT
>2. <A
HREF="gfdl_2.html"
>VERBATIM COPYING</A
></DT
><DT
>3. <A
HREF="gfdl_3.html"
>COPYING IN QUANTITY</A
></DT
><DT
>4. <A
HREF="gfdl_4.html"
>MODIFICATIONS</A
></DT
><DT
>5. <A
HREF="gfdl_5.html"
>COMBINING DOCUMENTS</A
></DT
><DT
>6. <A
HREF="gfdl_6.html"
>COLLECTIONS OF DOCUMENTS</A
></DT
><DT
>7. <A
HREF="gfdl_7.html"
>AGGREGATION WITH INDEPENDENT WORKS</A
></DT
><DT
>8. <A
HREF="gfdl_8.html"
>TRANSLATION</A
></DT
><DT
>9. <A
HREF="gfdl_9.html"
>TERMINATION</A
></DT
><DT
>10. <A
HREF="gfdl_10.html"
>FUTURE REVISIONS OF THIS LICENSE</A
></DT
><DT
><A
HREF="gfdl_howto.html"
>How to use this License for your documents</A
></DT
></DL
></DD
><DT
><A
HREF="glossary.html"
>Glossary</A
></DT
></DL
></DIV
><DIV
CLASS="LOT"
><DL
CLASS="LOT"
><DT
><B
>List of Examples</B
></DT
><DT
>3-1. <A
HREF="programadmin.html#AEN491"
>Creating some Components</A
></DT
><DT
>3-2. <A
HREF="programadmin.html#AEN520"
>Common Use of Versions</A
></DT
><DT
>3-3. <A
HREF="programadmin.html#AEN524"
>A Different Use of Versions</A
></DT
><DT
>3-4. <A
HREF="programadmin.html#AEN552"
>Using SortKey with Target Milestone</A
></DT
><DT
>3-5. <A
HREF="programadmin.html#AEN590"
>When to Use Group Security</A
></DT
><DT
>3-6. <A
HREF="programadmin.html#AEN607"
>Creating a New Group</A
></DT
><DT
>4-1. <A
HREF="how.html#AEN745"
>Some Famous Software Versions</A
></DT
><DT
>4-2. <A
HREF="how.html#AEN755"
>Mozilla Webtools Components</A
></DT
><DT
>1. <A
HREF="glossary.html#AEN1735"
>A Sample Product</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="about.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>About This Guide</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>What's in it for me?</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="How do I use Bugzilla?"
HREF="how.html"><LINK
REL="NEXT"
TITLE="Using Bugzilla-Conclusion"
HREF="usingbz-conc.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="how.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="usingbz-conc.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="INIT4ME"
>4.4. What's in it for me?</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>Indiana, it feels like we walking on fortune cookies!</I
></P
><P
><I
>These ain't fortune cookies, kid...</I
></P
></I
></TD
></TR
></TABLE
><P
> Customized User Preferences offer tremendous versatility to
your individual Bugzilla experience.
Let's plunge into what you can do! The first step is to click
the "Edit prefs" link at the footer of each page once you
have logged in to
<A
HREF="http://landfill.tequilarista.org/mozilla/bugzilla/query.cgi?GoAheadAndLogIn=1"
TARGET="_top"
> Landfill</A
>.
</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="ACCOUNTSETTINGS"
>4.4.1. Account Settings</A
></H2
><P
> On this page, you can change your basic Account Settings,
including your password and full name.
For security reasons, in order to change anything on this page you
must type your <EM
>current</EM
>
password into the "Old Password" field.
If you wish to change your password, type the new password you
want into the "New Password" field and again into the "Re-enter
new password" field to ensure
you typed your new password correctly. Select the "Submit" button and you're done!
</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="EMAILSETTINGS"
>4.4.2. Email Settings</A
></H2
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="NOTIFICATION"
>4.4.2.1. Email Notification</A
></H3
><P
> Ahh, here you can reduce or increase the amount of email sent you from Bugzilla!
In the drop-down "Notify me of changes to", select one of
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><EM
>All qualifying bugs</EM
>: sends you every change to every bug
where your name is somewhere on it, regardless of who changed it.</TD
></TR
><TR
><TD
><EM
>Only those bugs which I am listed in the CC line</EM
>: prevents
you from receiving mail for which you are the reporter,'
owner, or QA contact. If you are on the CC
list, presumably someone had a <EM
>good</EM
>
reason for you to get the email.</TD
></TR
><TR
><TD
><EM
>All qulifying bugs except those which I change</EM
>:
This is the default, and
a sensible setting. If someone else changes your bugs, you will get emailed,
but if you change bugs
yourself you will receive no notification of the change.</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="NEWEMAILTECH"
>4.4.2.2. New Email Technology</A
></H3
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable newemailtech
in Params"
and "make it the default for all new users", referring her to the Administration section
of this Guide.
</P
></BLOCKQUOTE
></DIV
><P
> Disregard the warnings about "experimental and bleeding edge"; the code to handle email
in a cleaner manner than that historically used for Bugzilla is
quite robust and well-tested now.
</P
><P
> I recommend you enable the option, "Click here to sign up (and risk any bugs)".
Your email-box
will thank you for it. The fundamental shift in "newemailtech" is away from standard UNIX
"diff" output, which is quite ugly, to a prettier, better laid-out email.
</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="WATCHSETTINGS"
>4.4.2.3. "Watching" Users</A
></H3
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable watchers in Params".
</P
></BLOCKQUOTE
></DIV
><P
> By entering user email names into the "Users to watch" text entry box, delineated by commas,
you can watch bugs of other users. This powerful functionality enables seamless transitions
as developers change projects, managers wish to get in touch with the issues faced by their
direct reports, or users go on vacation. If any of these three situations apply
to you, you will undoubtedly find this feature quite convenient.
</P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="FOOTERSETTINGS"
>4.4.3. Page Footer</A
></H2
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> By default, this page is quite barren. However, go explore the Query Page some more; you will
find that you can store numerous queries on the server, so if you regularly run a particular query
it is just a drop-down menu away. On this page of Preferences, if you have many stored
queries you can elect to have them always one-click away!
</P
></BLOCKQUOTE
></DIV
><P
> If you have many stored queries on the server, here you will find individual drop-downs for each
stored query. Each drop-down gives you the option of that query appearing on the footer of every
page in Bugzilla! This gives you powerful one-click access to any complex searches you may set up,
and is an excellent way to impress your boss...
</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>By default, the "My Bugs" link appears at the bottom of each page. However, this query
gives you both the bugs you have reported, as well as those you are assigned. One of the most
common uses for this page is to remove the "My Bugs" link, replacing it with two other queries,
commonly called "My Bug Reports" and "My Bugs" (but only referencing bugs assigned to you). This
allows you to distinguish those bugs you have reported from those you are assigned. I commonly
set up complex Boolean queries in the Query page and link them to my footer in this page. When
they are significantly complex, a one-click reference can save hours of work.</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="PERMISSIONSETTINGS"
>4.4.4. Permissions</A
></H2
><P
> This is a purely informative page which outlines your current permissions on
this installation of Bugzilla. If you have permissions to grant certain permissions to
other users, the "other users" link appears on this page as well as the footer.
For more information regarding user administration, please consult the Administration
section of this Guide.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="how.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="usingbz-conc.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>How do I use Bugzilla?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Bugzilla-Conclusion</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Installing Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Document Conventions"
HREF="conventions.html"><LINK
REL="NEXT"
TITLE="UNIX Installation"
HREF="readme.unix.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="conventions.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="readme.unix.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="INSTALLATION"
>Chapter 2. Installing Bugzilla</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>2.1. <A
HREF="readme.unix.html"
>UNIX Installation</A
></DT
><DT
>2.2. <A
HREF="readme.windows.html"
>Win32 (Win98+/NT/2K) Installation</A
></DT
><DD
><DL
><DT
>2.2.1. <A
HREF="readme.windows.html#NTVERIFIED"
>Win32 Installation: Step-by-step</A
></DT
><DT
>2.2.2. <A
HREF="readme.windows.html#ADDLWINTIPS"
>Additional Windows Tips</A
></DT
></DL
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="conventions.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="readme.unix.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Document Conventions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>UNIX Installation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Integrating Bugzilla with Third-Party Tools</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Using Bugzilla-Conclusion"
HREF="usingbz-conc.html"><LINK
REL="NEXT"
TITLE="Bonsai"
HREF="bonsai.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="usingbz-conc.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="bonsai.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="INTEGRATION"
>Chapter 5. Integrating Bugzilla with Third-Party Tools</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>5.1. <A
HREF="bonsai.html"
>Bonsai</A
></DT
><DT
>5.2. <A
HREF="cvs.html"
>CVS</A
></DT
><DT
>5.3. <A
HREF="scm.html"
>Perforce SCM</A
></DT
><DT
>5.4. <A
HREF="tinderbox.html"
>Tinderbox</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="usingbz-conc.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="bonsai.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Bugzilla-Conclusion</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bonsai</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>New Versions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Disclaimer"
HREF="disclaimer.html"><LINK
REL="NEXT"
TITLE="Credits"
HREF="credits.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="disclaimer.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="credits.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="NEWVERSIONS"
>1.4. New Versions</A
></H1
><P
> This is the initial release of the Bugzilla Guide.
</P
><P
> This document can be found in the following places:
</P
><P
> <P
></P
><UL
><LI
><P
> <A
HREF="http://www.trilobyte.net/barnsons/"
TARGET="_top"
>TriloBYTE</A
>
</P
></LI
><LI
><P
> <A
HREF="http://www.mozilla.org/projects/bugzilla/"
TARGET="_top"
>Mozilla.org</A
>
</P
></LI
><LI
><P
> <A
HREF="http://www.linuxdoc.org/"
TARGET="_top"
>The Linux Documentation Project</A
>
</P
></LI
></UL
>
</P
><P
> The latest version of this document can be checked out via CVS.
Please follow the instructions available at
<A
HREF="http://www.mozilla.org/cvs.html"
TARGET="_top"
>the Mozilla CVS page</A
>,
and check out the mozilla/webtools/bugzilla/docs/ branch.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="disclaimer.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="credits.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Disclaimer</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Credits</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Useful Patches and Utilities for Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Cleaning up after mucking with Bugzilla"
HREF="cleanupwork.html"><LINK
REL="NEXT"
TITLE="The setperl.pl Utility"
HREF="setperl.html"></HEAD
><BODY
CLASS="APPENDIX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="cleanupwork.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="setperl.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="PATCHES"
>Appendix C. Useful Patches and Utilities for Bugzilla</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>C.1. <A
HREF="setperl.html"
>The setperl.pl Utility</A
></DT
><DT
>C.2. <A
HREF="cmdline.html"
>Command-line Bugzilla Queries</A
></DT
><DT
>C.3. <A
HREF="quicksearch.html"
>The Quicksearch Utility</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="cleanupwork.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="setperl.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Cleaning up after mucking with Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The setperl.pl Utility</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Post-Installation Checklist</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="PREVIOUS"
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="NEXT"
TITLE="User Administration"
HREF="useradmin.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="administration.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Administering Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="useradmin.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="POSTINSTALL-CHECK"
>3.1. Post-Installation Checklist</A
></H1
><P
> After installation, follow the checklist below to ensure that
you have a successful installation.
If you do not see a recommended setting for a parameter,
consider leaving it at the default
while you perform your initial tests on your Bugzilla setup.
</P
><DIV
CLASS="PROCEDURE"
><OL
TYPE="1"
><LI
><P
> Set "maintainer" to <EM
>your</EM
> email address.
This allows Bugzilla's error messages
to display your email
address and allow people to contact you for help.
</P
></LI
><LI
><P
> Set "urlbase" to the URL reference for your Bugzilla installation.
If your bugzilla query page is at http://www.foo.com/bugzilla/query.cgi,
your url base is http://www.foo.com/bugzilla/
</P
></LI
><LI
><P
> Set "usebuggroups" to "1" <EM
>only</EM
>
if you need to restrict access to products.
I suggest leaving this parameter <EM
>off</EM
>
while initially testing your Bugzilla.
</P
></LI
><LI
><P
> Set "usebuggroupsentry" to "1" if you want to be able to restrict access to products.
Once again, if you are simply testing your installation, I suggest against
turning this parameter on; the strict security checking may stop you from
being able to modify your new entries.
</P
></LI
><LI
><P
> Set "shadowdb" to "bug_shadowdb" if you will be
running a *very* large installation of Bugzilla.
The shadow database enables many simultaneous users
to read and write to the database
without interfering with one another.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Enabling "shadowdb" can adversely affect the stability
of your installation of Bugzilla.
You may frequently need to manually synchronize your databases,
or schedule nightly syncs
via "cron"
</P
></BLOCKQUOTE
></DIV
>
Once again, in testing you should
avoid this option -- use it if or when you <EM
>need</EM
> to use it, and have
repeatedly run into the problem it was designed to solve -- very long wait times while
attempting to commit a change to the database.
</P
><P
> If you use the "shadowdb" option, it is only natural that you should turn the "queryagainstshadowdb"
option "On" as well. Otherwise you are replicating data into a shadow database for no reason!
</P
></LI
><LI
><P
> If you have custom logos or HTML you must put in place to fit within your site design guidelines,
place the code in the "headerhtml", "footerhtml", "errorhtml", "bannerhtml", or "blurbhtml" text boxes.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The "headerhtml" text box is the HTML printed out <EM
>before</EM
> any other code on the page.
If you have a special banner, put the code for it in "bannerhtml". You may want to leave these
settings at the defaults initially.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> Add any text you wish to the "passwordmail" parameter box. For instance,
many people choose to use this box to give a quick training blurb about how to
use Bugzilla at your site.
</P
></LI
><LI
><P
> Set "newemailtech" to "on". Your users will thank you. This is the default in the post-2.12 world.
</P
></LI
><LI
><P
> Do you want to use the qa contact ("useqacontact") and status whiteboard ("usestatuswhiteboard") fields?
These fields are useful because they allow for more flexibility, particularly when you have an existing
Quality Assurance and/or Release Engineering team,
but they may not be needed for smaller installations.
</P
></LI
><LI
><P
> Set "whinedays" to the amount 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 README, or set this value to "0".
</P
></LI
><LI
><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.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> 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
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> Set "supportwatchers" to "On". This feature is helpful for team leads to monitor progress in their
respective areas, and can offer many other benefits, such as allowing a developer to pick up a
former engineer's bugs without requiring her to change all the information in the bug.
</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="administration.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="useradmin.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Administering Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="administration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>User Administration</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Product, Component, Milestone, and Version Administration</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="PREVIOUS"
TITLE="User Administration"
HREF="useradmin.html"><LINK
REL="NEXT"
TITLE="Bugzilla Security"
HREF="security.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="useradmin.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Administering Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="security.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="PROGRAMADMIN"
>3.3. Product, Component, Milestone, and Version Administration</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>Dear Lord, we have to get our users to do WHAT?</I
></P
></I
></TD
></TR
></TABLE
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="PRODUCTS"
>3.3.1. Products</A
></H2
><FONT
COLOR="RED"
>Formerly, and in some spots still, called "Programs"</FONT
><P
> <A
HREF="glossary.html#GLOSS_PRODUCT"
><I
CLASS="GLOSSTERM"
>Products</I
></A
> are the
broadest category in Bugzilla, and you should have the least of these.
If your company makes computer games, you should have one product per game,
and possibly a few special products
(website, meetings...)
</P
><P
> A Product (formerly called "Program", and still referred to that way
in some portions of the source code) controls some very important functions.
The number of "votes" available for users to vote for the most important bugs
is set per-product, as is the number of votes required to move a bug automatically
from the UNCONFIRMED status to the NEW status. One can close a Product for further
bug entry and define various Versions available from the Edit Product screen.
</P
><P
>To create a new product:</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Select "components" from the yellow footer
</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> It may seem counterintuitive to click "components" when you want
to edit the properties associated with Products. This is one of a long
list of things we want in Bugzilla 3.0...
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Select the "Add" link to the right of "Add a new product".
</P
></LI
><LI
><P
> Enter the name of the product and a description.
The Description field is free-form.
</P
></LI
></OL
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> 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
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="COMPONENTS"
>3.3.2. Components</A
></H2
><P
> Components are subsections of a Product.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN491"
></A
><P
><B
>Example 3-1. Creating some Components</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN493"
></A
><P
></P
><P
> The computer game you are designing may 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
></P
></DIV
></DIV
>
Each component has a owner and (if you turned it on in the parameters), a qa
contact. The owner should be the primary person who fixes bugs in that component. The QA
Contact should be the person who will ensure these bugs are completely fixed. The Owner,
QA Contact, and Reporter will get email when new bugs are created in this Component and
when these bugs change. Default Owner and Default QA Contact fields only dictate the
<EM
>default assignments</EM
>; the Owner and Q/A Contact fields in a bug
are otherwise unrelated to the Component.
</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 to the right of the "Add a new component" text
on the "Select Component" page.
</P
></LI
><LI
><P
> Fill out the "Component" field, a short "Description", and the "Initial Owner".
The "Component" field should not contain a space. The "Description" field is
free-form. The "Initial Owner" field must be that of a valid user already
existing in the database. If the initial owner does not exist, Bugzilla
will refuse to create the component.
<DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> Is your "Default Owner" a user who is not yet in the database?
No problem.
<P
></P
><OL
TYPE="a"
><LI
><P
> Select the "Log out" link on the footer of the page.
</P
></LI
><LI
><P
> Select the "New Account" link on the footer of the "Relogin" page
</P
></LI
><LI
><P
> Type in the email address of the default owner you want to create
in the "E-mail address" field, and her full name in the "Real name"
field, then select the "Submit Query" button.
</P
></LI
><LI
><P
> Now select "Log in" again, type in your login information, and you
can modify the product to use the Default Owner information
you require.
</P
></LI
></OL
>
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> Either "edit" more components or return to the "query" page on the ensuing
"Addming new component" page. To return to the Product you were editing, you
must select the "components" link as before.
</P
></LI
></OL
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="VERSIONS"
>3.3.3. Versions</A
></H2
><P
> Versions are the revisions of the product, such as "Flinders 3.1", "Flinders 95",
and "Flinders 2000". Using Versions helps you isolate code changes and are an aid
in reporting.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN520"
></A
><P
><B
>Example 3-2. Common Use of Versions</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN522"
></A
><P
></P
><P
> A user reports a bug
against Version "Beta 2.0" of your product. The current Version of your software
is "Release Candidate 1", and no longer has the bug. This will
help you triage and classify bugs according to their relevance. It is also
possible people may report bugs against bleeding-edge beta versions that are
not evident in older versions of the software. This can help isolate code
changes that caused the bug
</P
><P
></P
></DIV
></DIV
>
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN524"
></A
><P
><B
>Example 3-3. A Different Use of Versions</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN526"
></A
><P
></P
><P
> This field has been used to good effect by an online service provider in a slightly
different way. They had three versions of the product: "Production", "QA",
and "Dev". Although it may be the same product, a bug in the development
environment is not normally as critical as a Production bug, nor does it
need to be reported publicly. When used in conjunction with Target Milestones,
one can easily specify the environment where a bug can be reproduced, and
the Milestone by which it will be fixed.
</P
><P
></P
></DIV
></DIV
>
</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".
If your product doesn't use version numbers, you may want to leave this as it is
or edit it so that it is "---". You can then go back to the edit versions page
and add new versions to your product.
</P
><P
> Otherwise, click the "Add" button to the right of the "Add a new version" text.
</P
></LI
><LI
><P
> Enter the name of the Version. This can be free-form characters up to the limit of the
text box. Then select the "Add" button.
</P
></LI
><LI
><P
> At this point you can select "Edit" to edit more Versions, or return to the "Query"
page, from which you can navigate back to the product through the "components" link
at the foot of the Query page.
</P
></LI
></OL
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="MILESTONES"
>3.3.4. 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. Or, you have a
bug that you plan to fix for 2.8, this would have a milestone of 2.8.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Milestone options will only appear for a Product if you turned the "usetargetmilestone" field
in the "Edit Parameters" screen "On".
</P
></BLOCKQUOTE
></DIV
><P
> To create new Milestones, set Default Milestones, and set Milestone URL:
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Select "edit milestones"
</P
></LI
><LI
><P
> Select "Add" to the right of the "Add a new milestone" text
</P
></LI
><LI
><P
> Enter the name of the Milestone in the "Milestone" field.
You can optionally set the "Sortkey", which is a positive or negative number (-255 to 255)
that defines where in the list this particular milestone appears.
Select "Add".
</P
><DIV
CLASS="EXAMPLE"
><A
NAME="AEN552"
></A
><P
><B
>Example 3-4. Using SortKey with Target Milestone</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN554"
></A
><P
></P
><P
> Let's say you create a target milestone called "Release 1.0", with Sortkey set to "0".
Later, you realize that you will have a public beta, called "Beta1".
You can create a Milestone called "Beta1", with a Sortkey of "-1" in order to ensure
people will see the Target Milestone of "Beta1" earlier on the list than "Release 1.0"
</P
><P
></P
></DIV
></DIV
></LI
><LI
><P
> If you want to add more milestones, select the "Edit" link.
If you don't, well shoot, you have to go back to the "query" page and select "components"
again, and make your way back to the Product you were editing.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> This is another in the list of unusual user interface decisions that
we'd like to get cleaned up. Shouldn't there be a link to the effect of
"edit the Product I was editing when I ended up here"? In any case,
clicking "components" in the footer takes you back to the "Select product"
screen, from which you can begin editing your product again.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> From the Edit Product screen again (once you've made your way back), enter the URL
for a description of what your milestones are for this product in the "Milestone URL" field.
It should be of the format "http://www.foo.com/bugzilla/product_milestones.html"
</P
><P
> Some common uses of this field include product descriptions, product roadmaps,
and of course a simple description of the meaning of each milestone.
</P
></LI
><LI
><P
> If you're using Target Milestones, the "Default Milestone" field must have some
kind of entry. If you really don't care if people set coherent Target Milestones,
simply leave this at the default, "---". However, controlling and regularly updating the Default
Milestone field is a powerful tool when reporting the status of projects.
</P
><P
>Select the "Update" button when you are done.</P
></LI
><LI
><P
>
</P
></LI
></OL
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="VOTING"
>3.3.5. Voting</A
></H2
><P
> The concept of "voting" is a poorly understood, yet powerful feature for the management
of open-source projects. Each user is assigned so many Votes per product, which they can
freely reassign (or assign multiple votes to a single bug).
This allows developers to gauge user need for a particular enhancement
or bugfix. By allowing bugs with a certain number of votes to automatically move from
"UNCONFIRMED" to "NEW", users of the bug system can help high-priority bugs garner
attention so they don't sit for a long time awaiting triage.
</P
><P
> The daunting challenge of Votes is deciding where you draw the line for a "vocal majority". If you
only have a user base of 100 users, setting a low threshold for bugs to move from UNCONFIRMED
to NEW makes sense. As the Bugzilla user base expands, however, these thresholds must be
re-evaluated. You should gauge whether this feature is worth the time and close monitoring involved,
and perhaps forego implementation until you have a critical mass of users who demand it.
</P
><P
>To modify Voting settings:</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Navigate to the "Edit Product" screen for the Product you wish to modify
</P
></LI
><LI
><P
> Set "Maximum Votes per person" to your calculated value. Setting this field
to "0" disables voting.
</P
></LI
><LI
><P
> Set "Maximum Votes a person can put on a single bug" to your calculated value. It
should probably be some number lower than the "Maximum votes per person".
Setting this field to "0" disables voting, but leaves the voting options open
to the user. This is confusing.
</P
></LI
><LI
><P
> Set "Number of votes a bug in this product needs to automatically get out of the
UNCONFIRMED state" to your calculated number. Setting this field to "0"
disables the automatic move of bugs from UNCONFIRMED to NEW. Some people
advocate leaving this at "0", but of what use are Votes if your Bugzilla
user base is unable to affect which bugs appear on Development radar?
<DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> You should probably set this number to higher than a small coalition of
Bugzilla users can influence it. Most sites use this as a "referendum"
mechanism -- if users are able to vote a bug out of UNCONFIRMED, it
is a <EM
>really</EM
> bad bug!
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> Once you have adjusted the values to your preference, select the "Update" button.
</P
></LI
></OL
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="GROUPS"
>3.3.6. Groups and Group Security</A
></H2
><P
> Groups can be very useful in bugzilla, because they allow users to isolate
bugs or products that should only be seen by certain people. Groups can also
be a complicated minefield of interdependencies and weirdness if mismanaged.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN590"
></A
><P
><B
>Example 3-5. When to Use Group Security</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN592"
></A
><P
></P
><P
> Many Bugzilla sites isolate "Security-related" bugs from all other bugs.
This way, they can have a fix ready before the security vulnerability
is announced to the world. You can create a "Security" product which, by
default, has no members, and only add members to the group (in their individual
User page, as described under User Administration) who should have
priveleged access to "Security" bugs. Alternately, you may create a Group
independently of any Product, and change the Group mask on individual bugs
to restrict access to members only of certain Groups.
</P
><P
></P
></DIV
></DIV
>
Groups only work if you enable the "usebuggroups" paramater.
In addition, if the "usebuggroupsentry" parameter is "On", one can restrict access
to products by groups, so that only members of a product group are able to view
bugs within that product.
Group security in Bugzilla can be divided into two categories:
Generic and Product-Based.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Groups in Bugzilla are a complicated beast that evolved out of very simple user
permission bitmasks, apparently itself derived from common concepts in UNIX access
controls. A "bitmask" is a fixed-length number whose value can describe one, and
only one, set of states. For instance, UNIX file permissions are assigned bitmask
values: "execute" has a value of 1, "write" has a value of 2,
and "read" has a value of 4. Add them together,
and a file can be read, written to, and executed if it has a bitmask of "7". (This
is a simplified example -- anybody who knows UNIX security knows there is much
more to it than this. Please bear with me for the purpose of this note.) The only
way a bitmask scheme can work is by doubling the bit count for each value. Thus
if UNIX wanted to offer another file permission, the next would have to be a value of
8, then the next 16, the next 32, etc.
</P
><P
> Similarly, Bugzilla offers a bitmask to define group permissions, with an internal
limit of 64. Several are already occupied
by built-in permissions. The way around this limitation is
to avoid assigning groups to products if you have many products, avoid bloating
of group lists, and religiously prune irrelevant groups. In reality, most installations
of Bugzilla support far fewer than 64 groups, so this limitation has not hit
for most sites, but it is on the table to be revised for Bugzilla 3.0
because it interferes with the security schemes of some administrators.
</P
></BLOCKQUOTE
></DIV
><P
> To enable Generic Group Security ("usebuggroups"):
</P
><P
></P
><OL
TYPE="1"
><LI
><P
> Turn "On" "usebuggroups" in the "Edit Parameters" screen.
</P
></LI
><LI
><P
> You will generally have no groups set up. Select the "groups" link
in the footer.
</P
></LI
><LI
><P
> Take a moment to understand the instructions on the "Edit Groups" screen.
Once you feel confident you understand what is expected of you, select the
"Add Group" link.
</P
></LI
><LI
><P
> Fill out the "New Name" (remember, no spaces!), "New Description", and "New
User RegExp" fields. "New User RegExp" allows you to automatically place
all users who fulfill the Regular Expression into the new group.
<DIV
CLASS="EXAMPLE"
><A
NAME="AEN607"
></A
><P
><B
>Example 3-6. Creating a New Group</B
></P
><DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN609"
></A
><P
></P
><P
> I created a group called "DefaultGroup" with a description of "This is simply
a group to play with", and a "New User RegExp" of "*@velio.com". This
new group automatically includes all Bugzilla users with "@velio.com" at the
end of their user id. When I finished, my new group was assigned bit #128.
</P
><P
></P
></DIV
></DIV
>
When you have finished, select the "Add" button.
</P
></LI
></OL
><P
> To enable Product-Based Group Security ("usebuggroupsentry"):
</P
><DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
> Don't forget that you only have 64 groups masks available, total, for
your installation of Bugzilla! If you plan on having more than 50
products in your individual Bugzilla installation, and require group
security for your products, you should
consider either running multiple Bugzillas or using Generic Group Security
instead of Product-Based ("usebuggroupsentry") Group Security.
</P
></TD
></TR
></TABLE
></DIV
><P
></P
><OL
TYPE="1"
><LI
><P
> Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit Parameters" screen.
</P
><DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="90%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
> "usebuggroupsentry" has the capacity to prevent the administrative user
from directly altering bugs because of conflicting group permissions.
If you plan on using "usebuggroupsentry", you should plan on restricting administrative
account usage to administrative duties only.
In other words, manage bugs with an unpriveleged user account, and
manage users, groups, Products, etc. with the administrative account.
</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
> You will generally have no Groups set up, unless you enabled "usebuggroupsentry"
prior to creating any Products. To create "Generic Group Security" groups,
follow the instructions given above. To create Product-Based Group security,
simply follow the instructions for creating a new Product. If you need to
add users to these new groups as you create them, you will find the option
to add them to the group available under the "Edit User" screens.
</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="useradmin.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="security.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>User Administration</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="administration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bugzilla Security</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The Quicksearch Utility</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="PREVIOUS"
TITLE="Command-line Bugzilla Queries"
HREF="cmdline.html"><LINK
REL="NEXT"
TITLE="GNU Free Documentation License"
HREF="gfdl.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="cmdline.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix C. Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gfdl.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="QUICKSEARCH"
>C.3. The Quicksearch Utility</A
></H1
><P
> Quicksearch is a new, experimental feature of the 2.12 release.
It consist of two Javascript files, "quicksearch.js" and "localconfig.js",
and two documentation files, "quicksearch.html" and "quicksearchhack.html"
</P
><P
> The index.html page has been updated to include the QuickSearch text box.
</P
><P
> To take full advantage of the query power, the Bugzilla maintainer must
edit "localconfig.js" according to the value sets used in the local installation.
</P
><P
> Currently, keywords must be hard-coded in localconfig.js. If they are not,
keywords are not automatically recognized. This means, if localconfig.js
is left unconfigured, that searching for a bug with the "foo" keyword
will only find bugs with "foo" in the summary, status whiteboard, product or
component name, but not those with the keyword "foo".
</P
><P
> Workarounds for Bugzilla users:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>search for '!foo' (this will find only bugs with the keyword "foo"</TD
></TR
><TR
><TD
>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
><P
> When this tool is ported from client-side JavaScript to server-side Perl,
the requirement for hard-coding keywords can be fixed.
<A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=70907"
TARGET="_top"
>This bug</A
>
has details.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="cmdline.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gfdl.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Command-line Bugzilla Queries</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="patches.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>GNU Free Documentation License</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>UNIX Installation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Installing Bugzilla"
HREF="installation.html"><LINK
REL="PREVIOUS"
TITLE="Installing Bugzilla"
HREF="installation.html"><LINK
REL="NEXT"
TITLE="Win32 (Win98+/NT/2K) Installation"
HREF="readme.windows.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="installation.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. Installing Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="readme.windows.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="README.UNIX"
>2.1. UNIX Installation</A
></H1
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Please consult the README included with the Bugzilla distribution
as the current canonical source for UNIX installation instructions.
We do, however, have some installation notes for errata from the README.
</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> If you are installing Bugzilla on S.u.S.e. Linux, or some other
distributions with "paranoid" security options, it is possible
that the checksetup.pl script may fail with the error:
<SPAN
CLASS="ERRORNAME"
>cannot chdir(/var/spool/mqueue): Permission denied</SPAN
>
This is because your
/var/spool/mqueue directory has a mode of "drwx------". Type
<B
CLASS="COMMAND"
>chmod 755 /var/spool/mqueue</B
> as root to fix this problem.
</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>
</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="installation.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="readme.windows.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installation.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Win32 (Win98+/NT/2K) Installation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Win32 (Win98+/NT/2K) Installation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Installing Bugzilla"
HREF="installation.html"><LINK
REL="PREVIOUS"
TITLE="UNIX Installation"
HREF="readme.unix.html"><LINK
REL="NEXT"
TITLE="Administering Bugzilla"
HREF="administration.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="readme.unix.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. Installing Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="administration.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="README.WINDOWS"
>2.2. Win32 (Win98+/NT/2K) Installation</A
></H1
><P
> These directions have <EM
>not</EM
> been extensively tested.
We need testers! Please try these out and post any changes to the
newsgroup.
</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="NTVERIFIED"
>2.2.1. Win32 Installation: Step-by-step</A
></H2
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> You should be familiar with, and cross-reference, the UNIX README
while performing your Win32 installation. Unfortunately, Win32
directions are not yet as detailed as those for UNIX.
</P
><P
> The <EM
>most critical</EM
> difference for Win32 users is
the lack of support for a crypt() function in MySQL for Windows. It does not
have it! All ENCRYPT statements must be modified.
</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="PROCEDURE"
><OL
TYPE="1"
><LI
><P
> Install <A
HREF="http://www.apache.org/"
TARGET="_top"
>Apache Web Server</A
>
for Windows.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> You may also use Internet Information Server or Personal Web
Server for this purpose. However, setup is slightly more
difficult. If ActivePerl doesn't seem to handle your file
associations correctly (for .cgi and .pl files), please
consult the FAQ, in the "Win32" section.
</P
><P
> If you are going to use IIS, if on Windows NT you must be updated
to at least Service Pack 4.
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Install <A
HREF="http://www.activestate.com/"
TARGET="_top"
>ActivePerl</A
>
</P
><P
> Please also check the following links to fully understand the status
of ActivePerl on Win32:
<A
HREF="http://language.perl.com/newdocs/pod/perlport.html"
TARGET="_top"
> Perl Porting</A
>, and
<A
HREF="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html"
TARGET="_top"
> Hixie Click Here</A
>
</P
></LI
><LI
><P
> Use ppm from your perl\bin directory to install the following packs: DBI,
DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, and GD. You may need
to extract them from .zip format using Winzip or other unzip program first.
These additional ppm modules can be downloaded from ActiveState.
</P
><P
> The syntax for ppm is:
<TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>C:&#62; </TT
><B
CLASS="COMMAND"
>ppm install &#60;module&#62;.ppd</B
>
</TT
>
</P
><P
> You can find ActiveState ppm modules at
<A
HREF="http://www.activestate.com/PPMPackages/5.6plus/"
TARGET="_top"
> http://www.activestate.com/PPMPackages/5.6plus</A
>
</P
></LI
><LI
><P
> Download and install the Windows GNU tools from
<A
HREF="http://www.cygwin.com/"
TARGET="_top"
>www.cygwin.com</A
>.
Make sure the GNU utilities are in your $PATH.
</P
></LI
><LI
><P
> Install MySQL for NT.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Your configuration file for MySQL <EM
>must</EM
> be named C:\MY.CNF.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> Setup MySQL
</P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>C:&#62; </TT
>
<B
CLASS="COMMAND"
>C:\mysql\bin\mysql -u root mysql</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>DELETE FROM user WHERE Host='localhost' AND User='';</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>UPDATE user SET Password=PASSWORD ('new_password')
WHERE user='root';</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>GRANT SELECT, INSERT, UPDATE, DELETE,
INDEX, ALTER, CREATE, DROP, REFERENCES
ON bugs.* to bugs@localhost
IDENTIFIED BY 'bugs_password';</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>FLUSH PRIVILEGES;</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>create database bugs;</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>mysql&#62;</TT
>
<B
CLASS="COMMAND"
>exit</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>C:&#62;</TT
>
<B
CLASS="COMMAND"
>C:\mysql\bin\mysqladmin -u root -p reload</B
>
</TT
>
</P
></LI
></OL
></LI
><LI
><P
> Configure Bugzilla. For Win32, this involves editing "defparams.pl"
and "localconfig" to taste. Running "checksetup.pl" should create
localconfig for you. Note that getgrnam() doesn't work, and should be
deleted. Change this line:
"my $webservergid = getgrnam($my_webservergroup); "
to
"my $webservergid = $my_webservergroup; "
</P
></LI
><LI
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> There are several alternatives to Sendmail that will work on Win32.
The one mentioned here is a <EM
>suggestion</EM
>, not
a requirement. Some other mail packages that can work include
<A
HREF="http://www.blat.net/"
TARGET="_top"
>BLAT</A
>,
<A
HREF="http://www.geocel.com/windmail/"
TARGET="_top"
>Windmail</A
>,
<A
HREF="http://www.dynamicstate.com/"
TARGET="_top"
>Mercury Sendmail</A
>,
and the CPAN Net::SMTP Perl module (available in .ppm).
Every option requires some hacking of the Perl scripts for Bugzilla
to make it work. The option here simply requires the least.
</P
></BLOCKQUOTE
></DIV
><P
> Download NTsendmail, available from<A
HREF="http://www.ntsendmail.com/"
TARGET="_top"
> www.ntsendmail.com</A
>. In order for it to work, you must set up some
new environment variables (detailed on the ntsendmail home page). Figuring
out where to put those variables is left as an exercise for the reader.
You must have a "real" mail server which allows you to relay off it
in your $ENV{"NTsendmail"} (which you should probably place in globals.pl)
</P
><P
> Once downloaded and installed, modify all open(SENDMAIL) calls to open
"| c:\ntsendmail\ntsendmail -t" instead of "|/usr/lib/sendmail -t".
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> We need someone to test this and make sure this works as advertised.
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Modify globals.pl and CGI.pl to remove the word "encrypt".
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> I'm not sure this is all that is involved to remove crypt. Any
NT Bugzilla hackers want to pipe up?
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Change all references to "processmail" to "processmail.pl" in
all files, and rename "processmail" to "processmail.pl"
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> I really think this may be a change we want to make for
main-tree Bugzilla. It's painless for the UNIX folks,
and will make the Win32 people happier.
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Modify the path to perl on the first line (#!) of all files
to point to your Perl installation, and
add "perl" to the beginning of all Perl system calls that
use a perl script as an argument. This may take you a while.
There is a "setperl.pl" utility to speed part of this procedure,
available in the "Patches and Utilities" section of The Bugzilla Guide.
</P
></LI
><LI
><P
> In processmail.pl, add "binmode(HANDLE)" before all read() calls.
This may not be necessary, but in some cases the read() under
Win32 doesn't count the EOL's without using a binary read().
</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="ADDLWINTIPS"
>2.2.2. Additional Windows Tips</A
></H2
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> From Andrew Pearson:
<A
NAME="AEN304"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
> "You can make Bugzilla work with Personal Web Server for
Windows 98 and higher, as well as for IIS 4.0. Microsoft has
information available at
<A
HREF=" http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP"
TARGET="_top"
> http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</A
>
</P
><P
> Basically you need to add two String Keys in the
registry at the following location:
</P
><P
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
</P
><P
> The keys should be called ".pl" and ".cgi", and both
should have a value something like:
<B
CLASS="COMMAND"
>c:/perl/bin/perl.exe "%s" "%s"</B
>
</P
><P
> The KB article only talks about .pl, but it goes into
more detail and provides a perl test script.
</P
></BLOCKQUOTE
>
</P
></BLOCKQUOTE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="readme.unix.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="administration.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>UNIX Installation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installation.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Administering Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Perforce SCM</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"><LINK
REL="PREVIOUS"
TITLE="CVS"
HREF="cvs.html"><LINK
REL="NEXT"
TITLE="Tinderbox"
HREF="tinderbox.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="cvs.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="tinderbox.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SCM"
>5.3. Perforce SCM</A
></H1
><P
> Richard Brooksby and his team have an integration tool
in public beta. You can find it at
<A
HREF="http://www.ravenbrook.com/project/p4dt"
TARGET="_top"
> http://www.ravenbrook.com/project/p4dti</A
>.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="cvs.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="tinderbox.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>CVS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="integration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Tinderbox</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Better Searching</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="Reducing Spam"
HREF="spamlite.html"><LINK
REL="NEXT"
TITLE="Description Flags and Tracking Bugs"
HREF="trackingbugs.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="spamlite.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trackingbugs.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SEARCHING"
>6.2. Better Searching</A
></H1
><P
><P
CLASS="LITERALLAYOUT"
>Current&nbsp;searching&nbsp;tools&nbsp;in&nbsp;Bugzilla&nbsp;include&nbsp;the&nbsp;querying&nbsp;mechanism,<br>
special&nbsp;summary&nbsp;reports&nbsp;and&nbsp;dependency&nbsp;trees.&nbsp;&nbsp;This&nbsp;message&nbsp;is&nbsp;about&nbsp;new<br>
facilities.<br>
<br>
1.&nbsp;General&nbsp;Summary&nbsp;Reports<br>
<br>
For&nbsp;some&nbsp;time&nbsp;now&nbsp;it&nbsp;has&nbsp;been&nbsp;apparent&nbsp;to&nbsp;me&nbsp;that&nbsp;the&nbsp;query&nbsp;bug&nbsp;list<br>
leaves&nbsp;a&nbsp;little&nbsp;to&nbsp;be&nbsp;desired&nbsp;in&nbsp;its&nbsp;linear&nbsp;nature.&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;need&nbsp;to<br>
have&nbsp;categorised&nbsp;subsets,&nbsp;and&nbsp;counts&nbsp;of&nbsp;each&nbsp;category.&nbsp;&nbsp;If&nbsp;you&nbsp;don't<br>
believe&nbsp;me,&nbsp;how&nbsp;about&nbsp;these&nbsp;facilities&nbsp;already&nbsp;in&nbsp;place&nbsp;or&nbsp;which&nbsp;people<br>
have&nbsp;asked&nbsp;for:<br>
<br>
Most&nbsp;Doomed&nbsp;Reports&nbsp;-&nbsp;Categorised&nbsp;On&nbsp;Assignee,&nbsp;Shows&nbsp;and&nbsp;Counts&nbsp;Number<br>
of&nbsp;Bugs&nbsp;For&nbsp;Each&nbsp;Assignee<br>
Bug&nbsp;#15806&nbsp;(Most&nbsp;Voted&nbsp;For&nbsp;Bugs)&nbsp;-&nbsp;Categorised&nbsp;On&nbsp;Product,&nbsp;Shows&nbsp;Bugs<br>
Voters&nbsp;Most&nbsp;Want&nbsp;Fixed<br>
Bug&nbsp;#9789&nbsp;(BugAThon&nbsp;Tracking&nbsp;Page)&nbsp;-&nbsp;Categorised&nbsp;On&nbsp;Developer&nbsp;(Subset),<br>
Counts&nbsp;Number&nbsp;of&nbsp;Bugs<br>
Bug&nbsp;#9409&nbsp;and&nbsp;#9411&nbsp;-&nbsp;The&nbsp;desire&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;report&nbsp;on&nbsp;more&nbsp;subsets.<br>
<br>
Hopefully&nbsp;you&nbsp;can&nbsp;see&nbsp;the&nbsp;gist&nbsp;of&nbsp;what&nbsp;is&nbsp;desired&nbsp;here.&nbsp;&nbsp;It's&nbsp;a&nbsp;general<br>
reporting&nbsp;mechanism.<br>
<br>
This&nbsp;mechanism&nbsp;lets&nbsp;you&nbsp;choose&nbsp;the&nbsp;subset&nbsp;of&nbsp;bugs&nbsp;to&nbsp;operate&nbsp;on&nbsp;(like<br>
query),&nbsp;let's&nbsp;you&nbsp;categorise&nbsp;them,&nbsp;possibly&nbsp;along&nbsp;with&nbsp;subcategories&nbsp;and<br>
counts&nbsp;the&nbsp;number&nbsp;of&nbsp;bugs&nbsp;within&nbsp;each&nbsp;category.&nbsp;&nbsp;It&nbsp;might&nbsp;or&nbsp;might&nbsp;not<br>
show&nbsp;the&nbsp;actual&nbsp;bugs&nbsp;themselves,&nbsp;and&nbsp;it&nbsp;might&nbsp;limit&nbsp;the&nbsp;number&nbsp;of&nbsp;bugs<br>
within&nbsp;a&nbsp;category,&nbsp;or&nbsp;categories&nbsp;to&nbsp;report&nbsp;on.<br>
<br>
I'm&nbsp;further&nbsp;sure&nbsp;that&nbsp;many&nbsp;applications&nbsp;of&nbsp;this&nbsp;mechanism&nbsp;would&nbsp;only&nbsp;be<br>
recognised&nbsp;once&nbsp;it&nbsp;was&nbsp;implemented.<br>
<br>
The&nbsp;general&nbsp;summary&nbsp;reports&nbsp;bug&nbsp;is&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=12282".<br>
<br>
2.&nbsp;Related&nbsp;Bugs<br>
<br>
It&nbsp;would&nbsp;be&nbsp;nice&nbsp;to&nbsp;have&nbsp;a&nbsp;field&nbsp;where&nbsp;you&nbsp;could&nbsp;enter&nbsp;other&nbsp;bugs<br>
related&nbsp;to&nbsp;the&nbsp;current&nbsp;bug&nbsp;-&nbsp;it&nbsp;would&nbsp;be&nbsp;handy&nbsp;for&nbsp;navigation&nbsp;and<br>
possibly&nbsp;even&nbsp;finding&nbsp;duplicates.&nbsp;&nbsp;See<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=12286".<br>
<br>
3.&nbsp;Column&nbsp;Specification&nbsp;Support<br>
<br>
Currently&nbsp;query&nbsp;seems&nbsp;to&nbsp;get&nbsp;what&nbsp;columns&nbsp;to&nbsp;report&nbsp;on&nbsp;from&nbsp;whatever&nbsp;the<br>
user&nbsp;last&nbsp;used.&nbsp;&nbsp;This&nbsp;doesn't&nbsp;work&nbsp;well&nbsp;for&nbsp;"prepackaged&nbsp;queries",&nbsp;where<br>
you&nbsp;followed&nbsp;a&nbsp;link.&nbsp;&nbsp;You&nbsp;can&nbsp;probably&nbsp;add&nbsp;a&nbsp;column&nbsp;by&nbsp;specifying&nbsp;a&nbsp;sort<br>
column,&nbsp;but&nbsp;this&nbsp;is&nbsp;difficult&nbsp;and&nbsp;suboptimal.<br>
<br>
Furthermore,&nbsp;I&nbsp;find&nbsp;that&nbsp;when&nbsp;I&nbsp;want&nbsp;to&nbsp;add&nbsp;a&nbsp;column&nbsp;to&nbsp;a&nbsp;query,&nbsp;it's<br>
usually&nbsp;a&nbsp;one&nbsp;off&nbsp;and&nbsp;I&nbsp;would&nbsp;prefer&nbsp;it&nbsp;to&nbsp;go&nbsp;away&nbsp;for&nbsp;the&nbsp;next&nbsp;query.&nbsp;<br>
Hence,&nbsp;it&nbsp;would&nbsp;be&nbsp;nice&nbsp;to&nbsp;specify&nbsp;the&nbsp;columns&nbsp;that&nbsp;appear&nbsp;on&nbsp;the&nbsp;query<br>
(and&nbsp;general&nbsp;summary&nbsp;report)&nbsp;pages.&nbsp;&nbsp;The&nbsp;default&nbsp;query&nbsp;mechanism&nbsp;should<br>
be&nbsp;able&nbsp;to&nbsp;let&nbsp;you&nbsp;specify&nbsp;your&nbsp;default&nbsp;columns.<br>
<br>
This&nbsp;proposal&nbsp;lives&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=12284".</P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="spamlite.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trackingbugs.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Reducing Spam</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Description Flags and Tracking Bugs</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Bugzilla Security</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="PREVIOUS"
TITLE="Product, Component, Milestone, and Version Administration"
HREF="programadmin.html"><LINK
REL="NEXT"
TITLE="Using Bugzilla"
HREF="using.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="programadmin.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Administering Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="using.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SECURITY"
>3.4. Bugzilla Security</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>Putting your money in a wall safe is better protection than depending on the fact that
no one knows that you hide your money in a mayonnaise jar in your fridge.</I
></P
></I
></TD
></TR
></TABLE
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Poorly-configured MySQL, Bugzilla, and FTP installations have given attackers full
access to systems in the past. Please take these guidelines seriously, even
for Bugzilla machines hidden away behind your firewall. 80% of all computer
trespassers are insiders, not anonymous crackers.
</P
></BLOCKQUOTE
></DIV
><P
> First thing's first: Secure your installation.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> These instructions must, of necessity, be somewhat vague since Bugzilla runs on so many different
platforms. If you have refinements of these directions for specific platforms, please
submit them to <A
HREF="mailto://mozilla-webtools@mozilla.org"
TARGET="_top"
>mozilla-webtools@mozilla.org</A
>
</P
></BLOCKQUOTE
></DIV
>
<P
></P
><OL
TYPE="1"
><LI
><P
> Ensure you are running at least MysQL version 3.22.32 or newer. Earlier versions had
notable security holes and poorly secured default configuration choices.
</P
></LI
><LI
><P
><EM
>There is no substitute for understanding the tools on your system!</EM
>
Read <A
HREF="http://www.mysql.com/documentation/mysql/bychapter/manual_Privilege_system.html"
TARGET="_top"
> The MySQL Privelege System</A
> until you can recite it from memory!</P
><P
> At the very least, ensure you password the "mysql -u root" account and the "bugs" account, establish grant
table rights (consult the Keystone guide in Appendix C: The Bugzilla Database for some easy-to-use details)
that do not allow CREATE, DROP, RELOAD, SHUTDOWN, and PROCESS for user "bugs". I wrote up the Keystone
advice back when I knew far less about security than I do now : )
</P
></LI
><LI
><P
> Lock down /etc/inetd.conf. Heck, disable inet entirely on this box. It should only listen to
port 25 for Sendmail
and port 80 for Apache.
</P
></LI
><LI
><P
>Do not run Apache as "nobody". This will require very lax permissions in your Bugzilla directories.
Run it, instead, as a user with a name, set via your httpd.conf file.</P
></LI
><LI
><P
> Ensure you have adequate access controls for $BUGZILLA_HOME/data/ and $BUGZILLA_HOME/localconfig.
The localconfig file stores your "bugs" user password, which would be terrible to have in the hands
of a criminal. Also some files under $BUGZILLA_HOME/data store sensitive information.
</P
><P
> On Apache, you can use .htaccess files to protect access to these directories, as outlined
in <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=57161"
TARGET="_top"
>Bug 57161</A
> for the
localconfig file, and <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=65572"
TARGET="_top"
> Bug 65572</A
> for adequate protection in your data/ and shadow/ directories.
</P
><P
> Note the instructions which follow are Apache-specific. If you use IIS, Netscape, or other
non-Apache web servers, please consult your system documentation for how to secure these
files from being transmitted to curious users.
</P
><P
> Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/data directory.
<P
CLASS="LITERALLAYOUT"
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;Files&nbsp;comments&#62;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allow&nbsp;from&nbsp;all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;/Files&#62;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deny&nbsp;from&nbsp;all<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
>
</P
><P
> Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/ directory.
<P
CLASS="LITERALLAYOUT"
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;Files&nbsp;localconfig&#62;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deny&nbsp;from&nbsp;all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;/Files&#62;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allow&nbsp;from&nbsp;all<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
>
</P
><P
> Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/shadow directory.
<P
CLASS="LITERALLAYOUT"
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deny&nbsp;from&nbsp;all<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
>
</P
></LI
><LI
><P
>
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="programadmin.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="using.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Product, Component, Milestone, and Version Administration</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="administration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>The setperl.pl Utility</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="PREVIOUS"
TITLE="Useful Patches and Utilities for Bugzilla"
HREF="patches.html"><LINK
REL="NEXT"
TITLE="Command-line Bugzilla Queries"
HREF="cmdline.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="patches.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix C. Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cmdline.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SETPERL"
>C.1. The setperl.pl Utility</A
></H1
><P
>
You can use the "setperl.pl" utility to quickly and easily
change the path to perl on all your Bugzilla files.
</P
><DIV
CLASS="PROCEDURE"
><OL
TYPE="1"
><LI
><P
> Download the "setperl.pl" utility to your Bugzilla
directory and make it executable.
</P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>cd /your/path/to/bugzilla</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>wget -O setperl.pl 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=10795'</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>chmod u+x setperl.pl</B
>
</TT
>
</P
></LI
></OL
></LI
><LI
><P
> Prepare (and fix) Bugzilla file permissions.
</P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>chmod u+w *</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>chmod u+x duplicates.cgi</B
>
</TT
>
</P
></LI
><LI
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>chmod a-x bug_status.html</B
>
</TT
>
</P
></LI
></OL
></LI
><LI
><P
> Run the script:
</P
><P
> <TT
CLASS="COMPUTEROUTPUT"
> <TT
CLASS="PROMPT"
>bash#</TT
>
<B
CLASS="COMMAND"
>./setperl.pl /your/path/to/perl</B
>
</TT
>
</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="patches.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cmdline.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Useful Patches and Utilities for Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="patches.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Command-line Bugzilla Queries</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Reducing Spam</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="NEXT"
TITLE="Better Searching"
HREF="searching.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="future.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="searching.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SPAMLITE"
>6.1. Reducing Spam</A
></H1
><P
><P
CLASS="LITERALLAYOUT"
>Those&nbsp;who&nbsp;use&nbsp;Bugzilla&nbsp;frequently&nbsp;are&nbsp;probably&nbsp;used&nbsp;to&nbsp;notification&nbsp;spam<br>
-&nbsp;unwanted&nbsp;or&nbsp;unnecessary&nbsp;notifications.&nbsp;&nbsp;A&nbsp;number&nbsp;of&nbsp;proposals&nbsp;have<br>
been&nbsp;put&nbsp;forward&nbsp;to&nbsp;attempt&nbsp;to&nbsp;reduce&nbsp;this.<br>
<br>
1.&nbsp;Reduce&nbsp;CC&nbsp;Spam<br>
<br>
Some&nbsp;of&nbsp;you&nbsp;probably&nbsp;know&nbsp;me&nbsp;as&nbsp;that&nbsp;guy&nbsp;who&nbsp;CCs&nbsp;on&nbsp;heaps&nbsp;and&nbsp;heaps&nbsp;of<br>
bugs.&nbsp;&nbsp;Just&nbsp;as&nbsp;you&nbsp;get&nbsp;a&nbsp;lot&nbsp;of&nbsp;CC&nbsp;changes&nbsp;from&nbsp;me,&nbsp;so&nbsp;do&nbsp;I&nbsp;get&nbsp;a&nbsp;lot<br>
from&nbsp;others.&nbsp;&nbsp;Why&nbsp;should&nbsp;CC&nbsp;changes&nbsp;send&nbsp;out&nbsp;email&nbsp;notifications?<br>
<br>
It's&nbsp;not&nbsp;necessarily&nbsp;the&nbsp;best&nbsp;idea&nbsp;to&nbsp;just&nbsp;remove&nbsp;the&nbsp;CC&nbsp;spam,&nbsp;there&nbsp;are<br>
other&nbsp;issues&nbsp;too,&nbsp;like&nbsp;the&nbsp;difficulty&nbsp;of&nbsp;adding&nbsp;to&nbsp;large&nbsp;CC&nbsp;fields.<br>
<br>
For&nbsp;these&nbsp;reasons&nbsp;and&nbsp;more,&nbsp;an&nbsp;RFE&nbsp;for&nbsp;a&nbsp;per&nbsp;user&nbsp;"BCC"&nbsp;facility&nbsp;exists<br>
that&nbsp;people&nbsp;could&nbsp;use&nbsp;to&nbsp;silently&nbsp;and&nbsp;privately&nbsp;track&nbsp;bugs,&nbsp;in&nbsp;a&nbsp;similar<br>
way&nbsp;to&nbsp;voting&nbsp;today,&nbsp;but&nbsp;applying&nbsp;to&nbsp;an&nbsp;unlimited&nbsp;number&nbsp;of&nbsp;bugs.&nbsp;&nbsp;See<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=7345".<br>
<br>
2.&nbsp;Bulk&nbsp;Changes<br>
<br>
You&nbsp;know&nbsp;the&nbsp;drill&nbsp;-&nbsp;a&nbsp;large&nbsp;milestone&nbsp;change,&nbsp;a&nbsp;component&nbsp;movement,<br>
whatever,&nbsp;and&nbsp;lots&nbsp;of&nbsp;notifications&nbsp;are&nbsp;generated.&nbsp;&nbsp;If&nbsp;there's&nbsp;enough<br>
maybe&nbsp;you'll&nbsp;just&nbsp;go&nbsp;delete,&nbsp;delete,&nbsp;delete,&nbsp;whoops,&nbsp;there&nbsp;goes&nbsp;another<br>
notification&nbsp;that&nbsp;wasn't&nbsp;from&nbsp;the&nbsp;bulk&nbsp;change&nbsp;you&nbsp;missed.<br>
<br>
Shouldn't&nbsp;bulk&nbsp;changes&nbsp;send&nbsp;out&nbsp;one&nbsp;notification?&nbsp;&nbsp;A&nbsp;proposal&nbsp;for&nbsp;this<br>
is&nbsp;at&nbsp;"http://bugzilla.mozilla.org/show_bug.cgi?id=26943".<br>
<br>
3.&nbsp;Configurable&nbsp;Notification&nbsp;Criteria<br>
<br>
It&nbsp;would&nbsp;be&nbsp;good&nbsp;if&nbsp;you&nbsp;could&nbsp;choose&nbsp;what&nbsp;you&nbsp;want&nbsp;to&nbsp;receive.&nbsp;&nbsp;There<br>
are&nbsp;two&nbsp;parts&nbsp;to&nbsp;this.<br>
<br>
(a)&nbsp;Choose&nbsp;a&nbsp;selection&nbsp;of&nbsp;bugs&nbsp;you're&nbsp;interested&nbsp;in.&nbsp;&nbsp;This&nbsp;would&nbsp;be<br>
similar&nbsp;to&nbsp;CC&nbsp;except&nbsp;you&nbsp;let&nbsp;the&nbsp;set&nbsp;be&nbsp;computed&nbsp;from&nbsp;selection&nbsp;criteria<br>
rather&nbsp;than&nbsp;limited&nbsp;to&nbsp;the&nbsp;bugs&nbsp;your&nbsp;name&nbsp;is&nbsp;on.&nbsp;&nbsp;There&nbsp;is&nbsp;currently&nbsp;a<br>
limited&nbsp;version&nbsp;of&nbsp;this&nbsp;in&nbsp;the&nbsp;bugzilla&nbsp;preferences,&nbsp;ie&nbsp;"all&nbsp;qualifying<br>
bugs"/"all&nbsp;qualifying&nbsp;bugs&nbsp;except&nbsp;the&nbsp;ones&nbsp;I&nbsp;change"/"only&nbsp;those&nbsp;bugs<br>
which&nbsp;I&nbsp;am&nbsp;listed&nbsp;on&nbsp;the&nbsp;cc&nbsp;line".<br>
(b)&nbsp;Choose&nbsp;what&nbsp;changes&nbsp;will&nbsp;trigger&nbsp;a&nbsp;notification&nbsp;for&nbsp;the&nbsp;bugs&nbsp;you&nbsp;are<br>
watching.&nbsp;&nbsp;With&nbsp;this,&nbsp;you&nbsp;could&nbsp;choose&nbsp;whether&nbsp;you&nbsp;want&nbsp;to&nbsp;receive&nbsp;cc,<br>
dependency&nbsp;and&nbsp;keyword&nbsp;changes,&nbsp;for&nbsp;example.<br>
<br>
Both&nbsp;of&nbsp;these&nbsp;proposals&nbsp;live&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=14137".</P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="future.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="searching.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The Future of Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Better Searching</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Tinderbox</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"><LINK
REL="PREVIOUS"
TITLE="Perforce SCM"
HREF="scm.html"><LINK
REL="NEXT"
TITLE="The Future of Bugzilla"
HREF="future.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="scm.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Integrating Bugzilla with Third-Party Tools</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="future.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="TINDERBOX"
>5.4. Tinderbox</A
></H1
><P
>We need Tinderbox integration information</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="scm.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="future.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Perforce SCM</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="integration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Future of Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Description Flags and Tracking Bugs</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Future of Bugzilla"
HREF="future.html"><LINK
REL="PREVIOUS"
TITLE="Better Searching"
HREF="searching.html"><LINK
REL="NEXT"
TITLE="Bug Issues"
HREF="bugprobs.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="searching.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. The Future of Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="bugprobs.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="TRACKINGBUGS"
>6.3. Description Flags and Tracking Bugs</A
></H1
><P
><P
CLASS="LITERALLAYOUT"
>Since&nbsp;I&nbsp;last&nbsp;posted&nbsp;on&nbsp;this&nbsp;issue,&nbsp;we&nbsp;now&nbsp;have&nbsp;"keywords"&nbsp;that&nbsp;solve<br>
many&nbsp;of&nbsp;the&nbsp;issues&nbsp;of&nbsp;description&nbsp;and&nbsp;status&nbsp;whiteboard&nbsp;keywords.&nbsp;&nbsp;We<br>
have&nbsp;seen&nbsp;a&nbsp;migration&nbsp;towards&nbsp;keywords,&nbsp;but&nbsp;there&nbsp;is&nbsp;still&nbsp;further&nbsp;to<br>
go.<br>
<br>
Description&nbsp;(&nbsp;+&nbsp;Status&nbsp;Whiteboard&nbsp;)&nbsp;Keywords<br>
--------------------------------------------<br>
<br>
Some&nbsp;description&nbsp;keywords&nbsp;remain.&nbsp;&nbsp;I'd&nbsp;like&nbsp;to&nbsp;hear&nbsp;what&nbsp;reasons,&nbsp;other<br>
than&nbsp;time,&nbsp;there&nbsp;are&nbsp;for&nbsp;these&nbsp;staying&nbsp;as&nbsp;they&nbsp;are.&nbsp;&nbsp;I'm&nbsp;suspecting&nbsp;many<br>
are&nbsp;not&nbsp;really&nbsp;being&nbsp;used.&nbsp;&nbsp;Hopefully&nbsp;we&nbsp;can&nbsp;totally&nbsp;remove&nbsp;these<br>
eventually.<br>
<br>
Tracking&nbsp;Bugs<br>
-------------<br>
<br>
When&nbsp;I&nbsp;suggested&nbsp;keywords,&nbsp;I&nbsp;did&nbsp;so&nbsp;to&nbsp;get&nbsp;rid&nbsp;of&nbsp;tracking&nbsp;bugs&nbsp;too,<br>
though&nbsp;we've&nbsp;had&nbsp;less&nbsp;success&nbsp;on&nbsp;that&nbsp;front.<br>
<br>
There&nbsp;are&nbsp;many&nbsp;disadvantages&nbsp;to&nbsp;tracking&nbsp;bugs.<br>
<br>
-&nbsp;They&nbsp;can&nbsp;pollute&nbsp;bugs&nbsp;counts,&nbsp;and&nbsp;you&nbsp;must&nbsp;make&nbsp;sure&nbsp;you&nbsp;exclude<br>
them.&nbsp;&nbsp;I&nbsp;believe&nbsp;the&nbsp;meta&nbsp;keyword&nbsp;might&nbsp;be&nbsp;used&nbsp;for&nbsp;this&nbsp;purpose.<br>
-&nbsp;They&nbsp;have&nbsp;an&nbsp;assignee&nbsp;but&nbsp;there&nbsp;is&nbsp;nothing&nbsp;to&nbsp;fix,&nbsp;and&nbsp;that&nbsp;person&nbsp;can<br>
get&nbsp;whined&nbsp;at&nbsp;by&nbsp;Bugzilla.<br>
-&nbsp;It&nbsp;would&nbsp;be&nbsp;better&nbsp;to&nbsp;craft&nbsp;your&nbsp;own&nbsp;"dependency&nbsp;tree"&nbsp;rather&nbsp;than<br>
rely&nbsp;on&nbsp;a&nbsp;fixed&nbsp;hierachy&nbsp;in&nbsp;the&nbsp;bug&nbsp;system.<br>
-&nbsp;In&nbsp;creating&nbsp;a&nbsp;nice&nbsp;little&nbsp;hierachy,&nbsp;many&nbsp;bugs&nbsp;duplicate&nbsp;information<br>
that&nbsp;should&nbsp;be&nbsp;available&nbsp;in&nbsp;other&nbsp;ways,&nbsp;eg<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=12833"&nbsp;which&nbsp;is<br>
about&nbsp;beta&nbsp;1&nbsp;networking&nbsp;issues.&nbsp;&nbsp;These&nbsp;could&nbsp;fall&nbsp;behind&nbsp;the&nbsp;actual<br>
data.&nbsp;&nbsp;What&nbsp;tracking&nbsp;bugs&nbsp;are&nbsp;good&nbsp;for,&nbsp;ad&nbsp;hoc&nbsp;lists,&nbsp;is&nbsp;what&nbsp;keywords<br>
are&nbsp;better&nbsp;for.<br>
-&nbsp;An&nbsp;automatically&nbsp;generated&nbsp;dependency&nbsp;structure&nbsp;between&nbsp;one&nbsp;"tracking<br>
bug"&nbsp;and&nbsp;another&nbsp;would&nbsp;be&nbsp;better&nbsp;than&nbsp;a&nbsp;manual&nbsp;one,&nbsp;since&nbsp;it&nbsp;gives&nbsp;exact<br>
rather&nbsp;than&nbsp;manually&nbsp;set&nbsp;up&nbsp;classifications.<br>
<br>
Probably&nbsp;the&nbsp;only&nbsp;feature&nbsp;preventing&nbsp;tracking&nbsp;bugs&nbsp;being&nbsp;replaced&nbsp;is&nbsp;the<br>
dependency&nbsp;tree.&nbsp;&nbsp;The&nbsp;quintessential&nbsp;tracking&nbsp;bug&nbsp;seems&nbsp;to&nbsp;be&nbsp;bug&nbsp;#7229<br>
"chofmann's&nbsp;watch&nbsp;list",&nbsp;which&nbsp;probably&nbsp;has&nbsp;about&nbsp;a&nbsp;couple&nbsp;of&nbsp;hundred<br>
bugs&nbsp;at&nbsp;various&nbsp;levels,&nbsp;which&nbsp;allows&nbsp;a&nbsp;nice&nbsp;visualisation.<br>
<br>
Before&nbsp;keywords&nbsp;can&nbsp;replace&nbsp;tracking&nbsp;bugs&nbsp;better&nbsp;visualisation&nbsp;is&nbsp;going<br>
to&nbsp;be&nbsp;required.&nbsp;&nbsp;General&nbsp;summary&nbsp;reports&nbsp;and&nbsp;dependency&nbsp;forests&nbsp;of&nbsp;a&nbsp;bug<br>
list&nbsp;("http://bugzilla.mozilla.org/show_bug.cgi?id=12992")&nbsp;could&nbsp;both<br>
help,&nbsp;but&nbsp;neither&nbsp;solves&nbsp;the&nbsp;problem&nbsp;totally.&nbsp;&nbsp;Perhaps&nbsp;keywords&nbsp;within<br>
keywords&nbsp;would&nbsp;help&nbsp;here.&nbsp;&nbsp;In&nbsp;any&nbsp;case,&nbsp;I'm&nbsp;still&nbsp;thinking&nbsp;about&nbsp;this<br>
one.<br>
<br>
Some&nbsp;tracking&nbsp;bugs&nbsp;could&nbsp;definitely&nbsp;be&nbsp;turned&nbsp;into&nbsp;keywords&nbsp;immediately<br>
though,&nbsp;and&nbsp;I'll&nbsp;point&nbsp;the&nbsp;finger&nbsp;at<br>
"http://bugzilla.mozilla.org/show_bug.cgi?id=7954"&nbsp;here&nbsp;since&nbsp;that's<br>
what&nbsp;came&nbsp;to&nbsp;mind&nbsp;first.</P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="searching.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="bugprobs.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Better Searching</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="future.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bug Issues</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Translations</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About This Guide"
HREF="about.html"><LINK
REL="PREVIOUS"
TITLE="Feedback"
HREF="feedback.html"><LINK
REL="NEXT"
TITLE="Document Conventions"
HREF="conventions.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="feedback.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. About This Guide</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="conventions.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="TRANSLATIONS"
>1.8. Translations</A
></H1
><P
> The Bugzilla Guide needs translators! Please volunteer your translation into the language of your choice.
If you will translate this Guide, please notify the members of the mozilla-webtools mailing list at
<TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:mozilla-webtools@mozilla.org"
>mozilla-webtools@mozilla.org</A
>&#62;</TT
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="feedback.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="conventions.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Feedback</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Document Conventions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>User Administration</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Administering Bugzilla"
HREF="administration.html"><LINK
REL="PREVIOUS"
TITLE="Post-Installation Checklist"
HREF="postinstall-check.html"><LINK
REL="NEXT"
TITLE="Product, Component, Milestone, and Version Administration"
HREF="programadmin.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="postinstall-check.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Administering Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="programadmin.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="USERADMIN"
>3.2. User Administration</A
></H1
><P
> User administration is one of the easiest parts of Bugzilla.
Keeping it from getting out of hand, however, can become a challenge.
</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DEFAULTUSER"
>3.2.1. Creating the Default User</A
></H2
><P
> When you first run checksetup.pl after installing Bugzilla, it will prompt you
for the administrative username (email address) and password for this "super user".
If for some reason you were to delete the "super user" account, re-running
checksetup.pl will again prompt you for this username and password.
</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> If you wish to add more administrative users, you must use the MySQL interface.
Run "mysql" from the command line, and use these commands ("mysql&#62;" denotes the
mysql prompt, not something you should type in):
<B
CLASS="COMMAND"
><TT
CLASS="PROMPT"
>mysql&#62;</TT
> use bugs;</B
>
<B
CLASS="COMMAND"
><TT
CLASS="PROMPT"
>mysql&#62;</TT
> update profiles set groupset=0x7ffffffffffffff
where login_name = "(user's login name)"; </B
>
</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="MANAGEUSERS"
>3.2.2. Managing Other Users</A
></H2
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="LOGIN"
>3.2.2.1. Logging In</A
></H3
><P
></P
><OL
TYPE="1"
><LI
><P
> Open the index.html page for your Bugzilla installation in your browser window.
</P
></LI
><LI
><P
> Click the "Query Existing Bug Reports" link.
</P
></LI
><LI
><P
> Click the "Log In" link at the foot of the page.
</P
></LI
><LI
><P
> Type your email address, and the password which was emailed to you when you
created your Bugzilla account, into the spaces provided.
</P
></LI
></OL
><P
>Congratulations, you are logged in!</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CREATENEWUSERS"
>3.2.2.2. Creating new users</A
></H3
><P
> Your users can create their own user accounts by clicking the "New Account"
link at the bottom of each page.
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.
</P
></LI
><LI
><P
> To see a specific user, type a portion of their login name
in the box provided and click "submit".
To see all users, simply click the "submit" button.
You must click "submit" here to be able to add a new user.
</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> More functionality is available via the list on the right-hand side
of the text entry box.
You can match what you type as a case-insensitive substring (the default)
of all users on your system, a case-sensitive regular expression
(please see the "man regexp" manual page for details on regular expression syntax),
or a <EM
>reverse</EM
> regular expression match,
where every user name which does NOT match the regular expression
is selected.
</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
> Click the "Add New User" link at the bottom of the user list
</P
></LI
><LI
><P
> Fill out the form presented. This page is self-explanatory. When done, click "submit".
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Adding a user this way will <EM
>not</EM
> send an email
informing them of their username and password.
In general, it is preferable to log out and use the "New Account"
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
></BLOCKQUOTE
></DIV
></LI
></OL
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="DISABLEUSERS"
>3.2.2.3. Disabling Users</A
></H3
><P
> I bet you noticed that big "Disabled Text" entry box available from the "Add New User" screen,
when you edit an account?
By entering any text in this box and selecting "submit",
you have prevented the user from using Bugzilla via the web interface.
Your explanation, written in this text box, will be presented to the user
the next time she attempts to use the system.
<DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
> Don't disable your own administrative account, or you will hate life!
</P
></TD
></TR
></TABLE
></DIV
>
</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="MODIFYUSERS"
>3.2.2.4. Modifying Users</A
></H3
><P
> Here I will attempt to describe the function of each option on the user edit screen.
</P
><P
></P
><UL
><LI
><P
> <EM
>Login Name</EM
>: This is generally the user's email address.
However, if you have edited your system parameters,
this may just be the user's login name or some other identifier.
<DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
> For compatability reasons, you should probably
stick with email addresses as user login names. It will make your life easier.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> <EM
>Real Name</EM
>: Duh!
</P
></LI
><LI
><P
> <EM
>Password</EM
>: You will only see asterisks in versions
of Bugzilla newer than 2.10 or early 2.11. You can change the user password here.
</P
></LI
><LI
><P
> <EM
>Email Notification</EM
>: You may choose from one of three options:
<P
></P
><OL
TYPE="1"
><LI
><P
> All qualifying bugs except those which I change:
The user will be notified of any change to any bug
for which she is the reporter, assignee, Q/A contact, CC recipient, or "watcher".
</P
></LI
><LI
><P
> Only those bugs which I am listed on the CC line:
The user will not be notified of changes to bugs where she is the assignee,
reporter, or Q/A contact, but will receive them if she is on the CC list.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> She will still receive whining cron emails if you set up the "whinemail" feature.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> <EM
>All Qualifying Bugs</EM
>: This user is a glutton for punishment.
If her name is in the reporter, Q/A contact, CC, assignee, or is a "watcher",
she will get email updates regarding the bug.
</P
></LI
></OL
></P
><P
> <EM
>Disable Text</EM
>: If you type anything in this box,
including just a space, the user account is disabled from making any changes
to bugs via the web interface, and what you type in this box is presented as the reason.
<DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="90%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>Don't disable the administrator account!</P
></TD
></TR
></TABLE
></DIV
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> As of this writing, the user can still submit bugs via the e-mail gateway,
if you set it up, despite the disabled text field. The e-mail gateway should
<EM
>not</EM
> be enabled for secure installations of Bugzilla.
</P
></BLOCKQUOTE
></DIV
>
</P
></LI
><LI
><P
> <EM
>CanConfirm</EM
>: This field is only used if you have enabled
"unconfirmed" status in your parameters screen. If you enable this for a user,
that user can then move bugs from "Unconfirmed" to "Confirmed" status (ergo: "New" status).
Be judicious about allowing users to turn this bit on for other users.
</P
></LI
><LI
><P
> <EM
>Creategroups</EM
>: This option will allow a user to create and
destroy groups in Bugzilla. Unless you are using the Bugzilla GroupSentry security
option "usebuggroupsentry" in your parameters, this setting has no effect.
</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.
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Leaving this option unchecked does not prevent users from adding
comments to a bug! They simply cannot change a bug priority, severity,
etc. unless they are the assignee or reporter.
</P
></BLOCKQUOTE
></DIV
>
</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. The name of a product or component can be
changed without affecting the associated bugs, but it tends to annoy
the hell out of your users when these change a lot.
</P
></LI
><LI
><P
> <EM
>Editkeywords</EM
>: If you use Bugzilla's keyword functionality,
enabling this feature allows a user can 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.
You must be very careful about creating too many new keywords
if you run a very large Bugzilla installation; keywords are global variables
across products, and you can often run into a phenomenon called "keyword bloat".
This confuses users, and then the feature goes unused.
</P
></LI
><LI
><P
> <EM
>Editusers</EM
>: This flag allows a user do what you're doing
right now: edit other users.
This will allow those with the right to do so to remove administrator
priveleges from other users or grant them to themselves. Enable with care.
</P
></LI
><LI
><P
> <EM
>PRODUCT</EM
>: PRODUCT bugs access. This allows an administrator,
with product-level granularity, to specify in which products a user can edit bugs.
The user must still have the "editbugs" privelege to edit bugs in this area;
this simply restricts them from even seeing bugs outside these boundaries if the administrator
has enabled the group sentry parameter "usebuggroupsentry". Unless you are using bug groups,
this option has no effect.
</P
></LI
></UL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="postinstall-check.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="programadmin.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Post-Installation Checklist</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="administration.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Product, Component, Milestone, and Version Administration</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Using Bugzilla</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Bugzilla Security"
HREF="security.html"><LINK
REL="NEXT"
TITLE="What is Bugzilla?"
HREF="whatis.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="security.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="whatis.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="USING"
>Chapter 4. Using Bugzilla</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>What, Why, How, &#38; What's in it for me?</I
></P
></I
></TD
></TR
></TABLE
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>4.1. <A
HREF="whatis.html"
>What is Bugzilla?</A
></DT
><DT
>4.2. <A
HREF="why.html"
>Why Should We Use Bugzilla?</A
></DT
><DT
>4.3. <A
HREF="how.html"
>How do I use Bugzilla?</A
></DT
><DD
><DL
><DT
>4.3.1. <A
HREF="how.html#MYACCOUNT"
>Create a Bugzilla Account</A
></DT
><DT
>4.3.2. <A
HREF="how.html#QUERY"
>The Bugzilla Query Page</A
></DT
><DT
>4.3.3. <A
HREF="how.html#BUGREPORTS"
>Creating and Managing Bug Reports</A
></DT
></DL
></DD
><DT
>4.4. <A
HREF="init4me.html"
>What's in it for me?</A
></DT
><DD
><DL
><DT
>4.4.1. <A
HREF="init4me.html#ACCOUNTSETTINGS"
>Account Settings</A
></DT
><DT
>4.4.2. <A
HREF="init4me.html#EMAILSETTINGS"
>Email Settings</A
></DT
><DT
>4.4.3. <A
HREF="init4me.html#FOOTERSETTINGS"
>Page Footer</A
></DT
><DT
>4.4.4. <A
HREF="init4me.html#PERMISSIONSETTINGS"
>Permissions</A
></DT
></DL
></DD
><DT
>4.5. <A
HREF="usingbz-conc.html"
>Using Bugzilla-Conclusion</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="security.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="whatis.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bugzilla Security</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>What is Bugzilla?</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Using Bugzilla-Conclusion</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="What's in it for me?"
HREF="init4me.html"><LINK
REL="NEXT"
TITLE="Integrating Bugzilla with Third-Party Tools"
HREF="integration.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="init4me.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="integration.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="USINGBZ-CONC"
>4.5. Using Bugzilla-Conclusion</A
></H1
><P
> Thank you for reading through this portion of the Bugzilla Guide. I anticipate
it may not yet meet the needs of all readers. If you have additional comments or
corrections to make, please submit your contributions to the
<A
HREF="mailto://mozilla-webtools@mozilla.org"
TARGET="_top"
>mozilla-webtools</A
>
mailing list/newsgroup. The mailing list is mirrored to the netscape.public.mozilla.webtools
newsgroup, and the newsgroup is mirrored to mozilla-webtools@mozilla.org
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="init4me.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="integration.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>What's in it for me?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Integrating Bugzilla with Third-Party Tools</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>What is Bugzilla?</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="NEXT"
TITLE="Why Should We Use Bugzilla?"
HREF="why.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="using.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="why.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="WHATIS"
>4.1. What is Bugzilla?</A
></H1
><P
> Bugzilla is one example of a class of programs called "Defect Tracking Systems",
or, more commonly, "Bug-Tracking Systems". Defect Tracking Systems allow individual or
groups of developers to keep track of outstanding bugs in their product effectively.
At the time Bugzilla was originally written, as a port from Netscape Communications'
"Bugsplat!" program to Perl from TCL, there were very few competitors in the market
for bug-tracking software. Most commercial defect-tracking software vendors at the
time charged enormous licensing fees. Bugzilla quickly became a favorite of the
open-source crowd (with its genesis in the open-source browser project, Mozilla) and
is now the de-facto standard defect-tracking system against which all others are
measured.
</P
><P
> Bugzilla has matured immensely, and now boasts many advanced features. These include:
<P
></P
><UL
><LI
><P
> integrated, product-based granular security schema
</P
></LI
><LI
><P
> inter-bug dependencies and dependency graphing
</P
></LI
><LI
><P
> advanced reporting capabilities
</P
></LI
><LI
><P
> a robust, stable RDBMS back-end
</P
></LI
><LI
><P
> extensive configurability
</P
></LI
><LI
><P
> a very well-understood and well-thought-out natural bug resolution protocol
</P
></LI
><LI
><P
> email, XML, and HTTP APIs
</P
></LI
><LI
><P
> integration with several automated software configuration management systems
</P
></LI
><LI
><P
> too many more features to list
</P
></LI
></UL
>
</P
><P
> Despite its current robustness and popularity, however, Bugzilla
faces some near-term challenges, such as reliance on a single database, a lack of
abstraction of the user interface and program logic, verbose email bug
notifications, a powerful but daunting query interface, little reporting configurability,
problems with extremely large queries, some unsupportable bug resolution options,
no internationalization, and dependence on some nonstandard libraries.
</P
><P
> Despite these small problems, Bugzilla is very hard to beat. It is under <EM
>very</EM
>
active development to address the current issues, and a long-awaited overhaul in the form
of Bugzilla 3.0 is expected sometime later this year.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="using.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="why.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Bugzilla</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Why Should We Use Bugzilla?</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<HTML
><HEAD
><TITLE
>Why Should We Use Bugzilla?</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="What is Bugzilla?"
HREF="whatis.html"><LINK
REL="NEXT"
TITLE="How do I use Bugzilla?"
HREF="how.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="whatis.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="how.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="WHY"
>4.2. Why Should We Use Bugzilla?</A
></H1
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="EPIGRAPH"
><TR
><TD
WIDTH="45%"
>&nbsp;</TD
><TD
WIDTH="45%"
ALIGN="LEFT"
VALIGN="TOP"
><I
><P
><I
>No, Who's on first...</I
></P
></I
></TD
></TR
></TABLE
><P
> For many years, defect-tracking software has remained principally the domain
of large software development houses. Even then, most shops never bothered
with bug-tracking software, and instead simply relied on shared lists and
email to monitor the status of defects. This procedure is error-prone and
tends to cause those bugs judged least significant by developers to be
dropped or ignored
</P
><P
> These days, many companies are finding that integrated defect-tracking
systems reduce downtime, increase productivity, and raise customer
satisfaction with their systems. Along with full disclosure, an open
bug-tracker allows manufacturers to keep in touch with their clients
and resellers, to communicate about problems effectively throughout
the data management chain. Many corporations have also discovered that
defect-tracking helps reduce costs by providing IT support accountability,
telephone support knowledge bases, and a common, well-understood system
for accounting for unusual system or software issues.
</P
><P
> But why should <EM
>you</EM
> use Bugzilla?
</P
><P
> Bugzilla is very adaptable to various situations. Known uses currently
include IT support queues, Systems Administration deployment management,
chip design and development problem tracking (both pre-and-post fabrication),
and software bug tracking for luminaries such as Redhat, Loki software,
Linux-Mandrake, and VA Systems. Combined with systems such as CVS, Bonsai,
or Perforce SCM, Bugzilla provides a powerful, easy-to-use solution to
configuration management and replication problems
</P
><P
> Bugzilla can dramatically increase the productivity and accountability
of individual employees by providing a documented workflow and positive
feedback for good performance. How many times do you wake up in the
morning, remembering that you were supposed to do *something* today,
but you just can't quite remember? Put it in Bugzilla, and you have a record
of it from which you can extrapolate milestones, predict product versions
for integration, and by using Bugzilla's e-mail integration features
be able to follow the discussion trail that led to critical decisions.
</P
><P
> Ultimately, Bugzilla puts the power in your hands to improve your value
to your employer or business while providing a usable framework for your natural
attention to detail and knowledge store to flourish.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="whatis.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="how.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>What is Bugzilla?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>How do I use Bugzilla?</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
\ No newline at end of file
<!DOCTYPE BOOK PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- Include macros -->
<!ENTITY about SYSTEM "about.sgml">
<!ENTITY conventions SYSTEM "conventions.sgml">
<!ENTITY doc-index SYSTEM "index.sgml">
<!ENTITY faq SYSTEM "faq.sgml">
<!ENTITY gfdl SYSTEM "gfdl.sgml">
<!ENTITY glossary SYSTEM "glossary.sgml">
<!ENTITY installation SYSTEM "installation.sgml">
<!ENTITY administration SYSTEM "administration.sgml">
<!ENTITY using SYSTEM "using.sgml">
<!ENTITY integration SYSTEM "integration.sgml">
<!ENTITY future SYSTEM "future.sgml">
<!ENTITY index SYSTEM "index.sgml">
<!ENTITY database SYSTEM "database.sgml">
<!ENTITY patches SYSTEM "patches.sgml">
<!ENTITY variants SYSTEM "variants.sgml">
]>
<!-- Coding standards for this document
1. Preface new or modified sections with a comment stating who
modified it and when; please also use the "authorinitials" tag.
2. There is no "two".
3. Other than the GFDL, please use the "section" tag instead of "sect1", "sect2", etc.
4. Use Entities to include files for new chapters in Bugzilla-Guide.sgml.
5. Ensure all documents compile cleanly to HTML after modification.
The errors "DTD Declaration not allowed here" and "DTDDECL catalog types not supported"
are normal errors to be expected when compiling the whole guide.
6. Try to index important terms wherever possible.
7. Follow coding standards at http://www.linuxdoc.org.
8. All tags should be lowercase (needsfix)
9. Code being submitted for review should use the
"review" tag. Documentation on this is available at
http://www.linuxdoc.org/LDP/LDP-Author-Guide/tools-hints.html
under section 4.9.4, "Making notes on the text while it's being written".
10. Please use sensible spacing. The comments at the very end of each Guide
file define reasonable defaults for PSGML mode in EMACS.
Double-indent tags, use double spacing whenever possible,
try to avoid clutter and feel free to waste space in the code to make it more readable.
-->
<BOOK ID="index">
<!-- Header -->
<BOOKINFO>
<TITLE>The Bugzilla Guide</TITLE>
<PUBDATE>v2.11.1, 06 March 2001</PUBDATE>
<AUTHOR>
<FIRSTNAME>Matthew</FIRSTNAME>
<OTHERNAME>P.</OTHERNAME>
<SURNAME>Barnson</SURNAME>
<affiliation>
<address><email>barnboy@trilobyte.net</email></address>
</affiliation>
</AUTHOR>
<ABSTRACT>
<PARA>This is the documentation for Bugzilla, the Mozilla bug-tracking system.</PARA>
</ABSTRACT>
<REVHISTORY>
<REVISION>
<REVNUMBER>v2.11</REVNUMBER>
<DATE>20 December 2000</DATE>
<AUTHORINITIALS>MPB</AUTHORINITIALS>
<REVREMARK>Converted the README, FAQ, and DATABASE information into SGML
docbook format.</REVREMARK>
</REVISION>
<revision>
<revnumber>2.11.1</revnumber>
<date>06 March 2001</date>
<revremark>
Took way too long to revise this for 2.12 release.
Updated FAQ to use qandaset tags instead of literallayout,
cleaned up administration section, added User Guide section,
miscellaneous FAQ updates and third-party integration information.
From this point on all new tags are lowercase in preparation for the
2.13 release of the Guide in XML format instead of SGML.
</revremark>
</revision>
</REVHISTORY>
<KEYWORDSET>
<KEYWORD>Bugzilla</KEYWORD>
<KEYWORD>Guide</KEYWORD>
<KEYWORD>installation</KEYWORD>
<KEYWORD>FAQ</KEYWORD>
<KEYWORD>administration</KEYWORD>
<KEYWORD>integration</KEYWORD>
<KEYWORD>MySQL</KEYWORD>
<KEYWORD>Mozilla</KEYWORD>
<KEYWORD>webtools</KEYWORD>
</KEYWORDSET>
</BOOKINFO>
<!-- About This Guide -->
&about;
<!-- Installing Bugzilla -->
&installation;
<!-- Administering Bugzilla -->
&administration;
<!-- Using Bugzilla -->
&using;
<!-- Integrating Bugzilla with Third-Party Tools -->
&integration;
<!-- The Future of Bugzilla -->
&future;
<!-- Appendix: The Frequently Asked Questions -->
&faq;
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Major Bugzilla Variants -->
&variants;
<!-- Appendix: Custom Patches -->
&patches;
<!-- Appendix: The GNU Free Documentation License -->
&gfdl;
<!-- Glossary -->
&glossary;
<!-- Index -->
&index;
</BOOK>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY conventions SYSTEM "conventions.sgml"> ] > -->
<CHAPTER ID="about">
<TITLE>About This Guide</TITLE>
<SECTION ID="aboutthisguide">
<TITLE>Purpose and Scope of this Guide</TITLE>
<PARA>
This document was started on September 17, 2000
by Matthew P. Barnson after a great deal of procrastination updating the Bugzilla FAQ,
which I left untouched for nearly half a year.
After numerous complete rewrites and reformatting, it is the document you see today.
</PARA>
<PARA>
Despite the lack of updates, Bugzilla is simply the best piece of bug-tracking software
the world has ever seen. This document is intended to be the comprehensive guide to
the installation, administration, maintenance, and use of the Bugzilla bug-tracking system.
</PARA>
<PARA>
This release of the Bugzilla Guide is the <EMPHASIS>2.11</EMPHASIS> release.
It is so named that it may match the current version of Bugzilla.
The numbering tradition stems from that used for many free software projects,
in which <EMPHASIS>even-numbered</EMPHASIS> point releases (1.2, 1.14, etc.)
are considered "stable releases", intended for public consumption; on the other
hand, <EMPHASIS>odd-numbered</EMPHASIS> point releases (1.3, 2.09, etc.)
are considered unstable <EMPHASIS>development</EMPHASIS> releases intended
for advanced users, systems administrators, developers, and those who enjoy
a lot of pain.
</PARA>
<PARA>
Newer revisions of the Bugzilla Guide will follow the numbering conventions of
the main-tree Bugzilla releases, available at
<ULINK URL="http://www.mozilla.org/bugs/source.html">Mozilla.org</ULINK>, with
the exception that intermediate releases will have a minor revision number
following a period. For instance, if the current version of Bugzilla is 4.2,
the current "stable" version of the Bugzilla guide, in, say, it's fifth revision,
would be numbered "4.2.5". Got it? Good.
</PARA>
<PARA>
I wrote this in response to the enormous demand for decent Bugzilla documentation.
I have incorporated instructions from the Bugzilla README, Frequently Asked Questions,
Database Schema Document, and various mailing lists to create it.
Chances are, there are glaring errors in this documentation; please contact
<EMAIL>barnboy@trilobyte.net</EMAIL> to correct them.
</PARA>
</SECTION>
<SECTION ID="copyright">
<TITLE>Copyright Information</TITLE>
<BLOCKQUOTE>
<ATTRIBUTION>Copyright (c) 2000-2001 Matthew P. Barnson</ATTRIBUTION>
<PARA>
Permission is granted to copy, distribute and/or modify this document under thei
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 the section entitled
"GNU Free Documentation LIcense".
</PARA>
</BLOCKQUOTE>
<PARA>
If you have any questions regarding this document, its' copyright, or publishing this
document in non-electronic form, please contact <EMAIL>barnboy@trilobyte.net</EMAIL>
</PARA>
</SECTION>
<SECTION ID="disclaimer">
<TITLE>Disclaimer</TITLE>
<PARA>
No liability for the contents of this document can be accepted.
Use the concepts, examples, and other content at your own risk.
As this is a new edition of this document, there may be errors
and inaccuracies that may damage your system. Use of this document
may cause your girlfriend to leave you, your cats to pee on your
furniture and clothing, your computer to cease functioning, your
boss to fire you, and global thermonuclear war. Proceed with caution.
</PARA>
<PARA>
All copyrights are held by their respective owners, unless specifically
noted otherwise. Use of a term in this document should not be regarded
as affecting the validity of any trademark or service mark.
In particular, I like to put down Microsoft(tm). Live with it.
</PARA>
<PARA>
Naming of particular products or brands should not be seen as endorsements,
with the exception of the term "GNU/Linux".
Use GNU/Linux. Love it. Bathe with it. It is life and happiness.
I endorse it wholeheartedly and encourage you to do the same.
</PARA>
<PARA>
You are strongly recommended to make a backup of your system before
installing Bugzilla and at regular intervals thereafter. Heaven knows
it's saved my bacon time after time; if you implement any suggestion in
this Guide, implement this one!
</PARA>
<PARA>
Bugzilla has not undergone a complete security review.
Security holes probably exist in the code.
Great care should be taken both in the installation and usage of this software.
Carefully consider the implications of installing other network services with Bugzilla.
</PARA>
</SECTION>
<!-- Section 2: New Versions -->
<SECTION ID="newversions">
<TITLE>New Versions</TITLE>
<PARA>
This is the initial release of the Bugzilla Guide.
</PARA>
<PARA>
This document can be found in the following places:
</PARA>
<PARA>
<ITEMIZEDLIST>
<LISTITEM>
<PARA>
<ULINK URL="http://www.trilobyte.net/barnsons/">TriloBYTE</ULINK>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<ULINK URL="http://www.mozilla.org/projects/bugzilla/">Mozilla.org</ULINK>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<ULINK URL="http://www.linuxdoc.org/">The Linux Documentation Project</ULINK>
</PARA>
</LISTITEM>
</ITEMIZEDLIST>
</PARA>
<PARA>
The latest version of this document can be checked out via CVS.
Please follow the instructions available at
<ULINK URL="http://www.mozilla.org/cvs.html">the Mozilla CVS page</ULINK>,
and check out the mozilla/webtools/bugzilla/docs/ branch.
</PARA>
</SECTION>
<SECTION ID="credits">
<TITLE>Credits</TITLE>
<PARA>
The people listed below have made enormous contributions to the creation
of this Guide, through their dedicated hacking efforts,
numerous e-mail and IRC support sessions,
and overall excellent contribution to the Bugzilla community:
</PARA>
<PARA>
<ULINK URL="mailto://terry@mozilla.org">Terry Weissman</ULINK>
for initially converting Bugzilla from BugSplat!
and writing the README upon which this documentation is largely based.
</PARA>
<PARA>
<ULINK URL="mailto://tara@tequilarista.org">Tara Hernandez</ULINK>
for keeping Bugzilla development going strong after Terry left Mozilla.org
</PARA>
<PARA>
<ULINK URL="mailto://dkl@redhat.com">Dave Lawrence</ULINK>
for providing insight into the key differences between Red Hat's
customized Bugzilla, and being largely responsible for the
"Red Hat Bugzilla" appendix
</PARA>
<PARA>
<ULINK URL="mailto://endico@mozilla.org">Dawn Endico</ULINK>
for being a hacker extraordinaire and putting up with my incessant
questions and arguments on irc.mozilla.org in #mozwebtools
</PARA>
<PARA>
Last but not least, all the members of the
<ULINK URL="news://news.mozilla.org/netscape/public/mozilla/webtools">
netscape.public.mozilla.webtools</ULINK> newsgroup. Without your
discussions, insight, suggestions, and patches, this could never have happened.
</PARA>
</SECTION>
<SECTION id="contributors">
<TITLE>Contributors</TITLE>
<PARA>
Thanks go to these people for significant contributions to this documentation:
</PARA>
<PARA>
Zach Lipton, Andrew Pearson, Spencer Smith, Eric Hansen
</PARA>
</SECTION>
<SECTION ID="feedback">
<TITLE>Feedback</TITLE>
<PARA>
I welcome feedback on this document. Without your submissions and input,
this Guide cannot continue to exist. Please mail additions, comments, criticisms, etc.
to <EMAIL>barnboy@trilobyte.net</EMAIL>. Please send flames to
<EMAIL>devnull@localhost</EMAIL>
</PARA>
</SECTION>
<SECTION ID="translations">
<TITLE>Translations</TITLE>
<PARA>
The Bugzilla Guide needs translators! Please volunteer your translation into the language of your choice.
If you will translate this Guide, please notify the members of the mozilla-webtools mailing list at
<email>mozilla-webtools@mozilla.org</email>
</PARA>
</SECTION>
<!-- conventions used here (didn't want to give it a chapter of its own) -->
&conventions;
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:Bugzilla-Guide\.sgml
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
sgml-doctype:"<!DOCTYPE chapter PUBLIC \"-//OASIS//DTD DocBook V4.1//EN\">"
End:
-->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!-- TOC
Chapter: Administration
Localconfig and Checksetup.pl customizations
The Email Gateway
Editing parameters
Deciding your site policies
The Shadow Database
Customizing password mail & layout
The Whining Cron
Why you shouldn't allow deletion
User administration
Creating Users
Disabling Users
User Permissions
Product Administration
Creating products
Creating components
Assigning default owners and Q/A contacts to components
Product Milestones
Product Versions
Voting
-->
<CHAPTER id="administration">
<TITLE>Administering Bugzilla</TITLE>
<SUBTITLE>Or, I just got this cool thing installed. Now what the heck do I do with it?</SUBTITLE>
<PARA>
So you followed the README isntructions to the letter, and
just logged into bugzilla with your super-duper god account and you are sitting at the query
screen. Yet, you have nothing to query. Your first act of bisuness needs to be to setup the
operating parameters for bugzilla.</PARA>
<SECTION id="postinstall-check">
<TITLE>Post-Installation Checklist</TITLE>
<PARA>
After installation, follow the checklist below to ensure that
you have a successful installation.
If you do not see a recommended setting for a parameter,
consider leaving it at the default
while you perform your initial tests on your Bugzilla setup.
</PARA>
<INDEXTERM>
<PRIMARY>checklist</PRIMARY>
</INDEXTERM>
<PROCEDURE>
<STEP>
<PARA>
Set "maintainer" to <EMPHASIS>your</EMPHASIS> email address.
This allows Bugzilla's error messages
to display your email
address and allow people to contact you for help.
</PARA>
</STEP>
<STEP>
<PARA>
Set "urlbase" to the URL reference for your Bugzilla installation.
If your bugzilla query page is at http://www.foo.com/bugzilla/query.cgi,
your url base is http://www.foo.com/bugzilla/
</PARA>
</STEP>
<STEP>
<PARA>
Set "usebuggroups" to "1" <EMPHASIS>only</EMPHASIS>
if you need to restrict access to products.
I suggest leaving this parameter <EMPHASIS>off</EMPHASIS>
while initially testing your Bugzilla.
</PARA>
</STEP>
<STEP>
<PARA>
Set "usebuggroupsentry" to "1" if you want to be able to restrict access to products.
Once again, if you are simply testing your installation, I suggest against
turning this parameter on; the strict security checking may stop you from
being able to modify your new entries.
</PARA>
</STEP>
<STEP>
<PARA>
Set "shadowdb" to "bug_shadowdb" if you will be
running a *very* large installation of Bugzilla.
The shadow database enables many simultaneous users
to read and write to the database
without interfering with one another.
<NOTE>
<PARA>
Enabling "shadowdb" can adversely affect the stability
of your installation of Bugzilla.
You may frequently need to manually synchronize your databases,
or schedule nightly syncs
via "cron"
</PARA>
</NOTE>
Once again, in testing you should
avoid this option -- use it if or when you <EMPHASIS>need</EMPHASIS> to use it, and have
repeatedly run into the problem it was designed to solve -- very long wait times while
attempting to commit a change to the database.
</PARA>
<PARA>
If you use the "shadowdb" option, it is only natural that you should turn the "queryagainstshadowdb"
option "On" as well. Otherwise you are replicating data into a shadow database for no reason!
</PARA>
</STEP>
<STEP>
<PARA>
If you have custom logos or HTML you must put in place to fit within your site design guidelines,
place the code in the "headerhtml", "footerhtml", "errorhtml", "bannerhtml", or "blurbhtml" text boxes.
<NOTE>
<PARA>
The "headerhtml" text box is the HTML printed out <EMPHASIS>before</EMPHASIS> any other code on the page.
If you have a special banner, put the code for it in "bannerhtml". You may want to leave these
settings at the defaults initially.
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
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.
</PARA>
</STEP>
<STEP>
<PARA>
Set "newemailtech" to "on". Your users will thank you. This is the default in the post-2.12 world.
</PARA>
</STEP>
<STEP>
<PARA>
Do you want to use the qa contact ("useqacontact") and status whiteboard ("usestatuswhiteboard") fields?
These fields are useful because they allow for more flexibility, particularly when you have an existing
Quality Assurance and/or Release Engineering team,
but they may not be needed for smaller installations.
</PARA>
</STEP>
<STEP>
<PARA>
Set "whinedays" to the amount 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 README, or set this value to "0".
</PARA>
</STEP>
<STEP>
<PARA>
Set the "commenton" options according to your site policy. It is a wise idea to require comments when users
resolve, reassign, or reopen bugs.
<NOTE>
<PARA>
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!)
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
Set "supportwatchers" to "On". This feature is helpful for team leads to monitor progress in their
respective areas, and can offer many other benefits, such as allowing a developer to pick up a
former engineer's bugs without requiring her to change all the information in the bug.
</PARA>
</STEP>
</PROCEDURE>
</SECTION>
<SECTION id="useradmin">
<TITLE>User Administration</TITLE>
<PARA>
User administration is one of the easiest parts of Bugzilla.
Keeping it from getting out of hand, however, can become a challenge.
</PARA>
<SECTION id="defaultuser">
<TITLE>Creating the Default User</TITLE>
<PARA>
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 were to delete the "super user" account, re-running
checksetup.pl will again prompt you for this username and password.
</PARA>
<TIP>
<PARA>
If you wish to add more administrative users, you must use the MySQL interface.
Run "mysql" from the command line, and use these commands ("mysql>" denotes the
mysql prompt, not something you should type in):
<COMMAND><PROMPT>mysql></PROMPT> use bugs;</COMMAND>
<COMMAND><PROMPT>mysql></PROMPT> update profiles set groupset=0x7ffffffffffffff
where login_name = "(user's login name)"; </COMMAND>
</PARA>
</TIP>
</SECTION>
<SECTION id="manageusers">
<TITLE>Managing Other Users</TITLE>
<SECTION id="login">
<TITLE>Logging In</TITLE>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Open the index.html page for your Bugzilla installation in your browser window.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Query Existing Bug Reports" link.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Log In" link at the foot of the page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Type your email address, and the password which was emailed to you when you
created your Bugzilla account, into the spaces provided.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<PARA>Congratulations, you are logged in!</PARA>
</SECTION>
<SECTION id="createnewusers">
<TITLE>Creating new users</TITLE>
<PARA>
Your users can create their own user accounts by clicking the "New Account"
link at the bottom of each page.
However, should you desire to create user accounts ahead of time, here is how you do it.
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
After logging in, click the "Users" link at the footer of the query page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
To see a specific user, type a portion of their login name
in the box provided and click "submit".
To see all users, simply click the "submit" button.
You must click "submit" here to be able to add a new user.
</PARA>
<TIP>
<PARA>
More functionality is available via the list on the right-hand side
of the text entry box.
You can match what you type as a case-insensitive substring (the default)
of all users on your system, a case-sensitive regular expression
(please see the "man regexp" manual page for details on regular expression syntax),
or a <EMPHASIS>reverse</EMPHASIS> regular expression match,
where every user name which does NOT match the regular expression
is selected.
</PARA>
</TIP>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Add New User" link at the bottom of the user list
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the form presented. This page is self-explanatory. When done, click "submit".
</PARA>
<NOTE>
<PARA>
Adding a user this way will <EMPHASIS>not</EMPHASIS> send an email
informing them of their username and password.
In general, it is preferable to log out and use the "New Account"
button to create users, as it will pre-populate all the required fields and also notify
the user of her account name and password.
</PARA>
</NOTE>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="disableusers">
<TITLE>Disabling Users</TITLE>
<PARA>
I bet you noticed that big "Disabled Text" entry box available from the "Add New User" screen,
when you edit an account?
By entering any text in this box and selecting "submit",
you have prevented the user from using Bugzilla via the web interface.
Your explanation, written in this text box, will be presented to the user
the next time she attempts to use the system.
<WARNING>
<PARA>
Don't disable your own administrative account, or you will hate life!
</PARA>
</WARNING>
</PARA>
</SECTION>
<SECTION id="modifyusers">
<TITLE>Modifying Users</TITLE>
<PARA>
Here I will attempt to describe the function of each option on the user edit screen.
</PARA>
<ITEMIZEDLIST>
<LISTITEM>
<PARA>
<EMPHASIS>Login Name</EMPHASIS>: This is generally the user's email address.
However, if you have edited your system parameters,
this may just be the user's login name or some other identifier.
<TIP>
<PARA>
For compatability reasons, you should probably
stick with email addresses as user login names. It will make your life easier.
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Real Name</EMPHASIS>: Duh!
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Password</EMPHASIS>: You will only see asterisks in versions
of Bugzilla newer than 2.10 or early 2.11. You can change the user password here.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Email Notification</EMPHASIS>: You may choose from one of three options:
<ORDEREDLIST>
<LISTITEM>
<PARA>
All qualifying bugs except those which I change:
The user will be notified of any change to any bug
for which she is the reporter, assignee, Q/A contact, CC recipient, or "watcher".
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Only those bugs which I am listed on the CC line:
The user will not be notified of changes to bugs where she is the assignee,
reporter, or Q/A contact, but will receive them if she is on the CC list.
<NOTE>
<PARA>
She will still receive whining cron emails if you set up the "whinemail" feature.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>All Qualifying Bugs</EMPHASIS>: This user is a glutton for punishment.
If her name is in the reporter, Q/A contact, CC, assignee, or is a "watcher",
she will get email updates regarding the bug.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
<PARA>
<EMPHASIS>Disable Text</EMPHASIS>: If you type anything in this box,
including just a space, the user account is disabled from making any changes
to bugs via the web interface, and what you type in this box is presented as the reason.
<WARNING>
<PARA>Don't disable the administrator account!</PARA>
</WARNING>
<NOTE>
<PARA>
As of this writing, the user can still submit bugs via the e-mail gateway,
if you set it up, despite the disabled text field. The e-mail gateway should
<EMPHASIS>not</EMPHASIS> be enabled for secure installations of Bugzilla.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>CanConfirm</EMPHASIS>: This field is only used if you have enabled
"unconfirmed" status in your parameters screen. If you enable this for a user,
that user can then move bugs from "Unconfirmed" to "Confirmed" status (ergo: "New" status).
Be judicious about allowing users to turn this bit on for other users.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Creategroups</EMPHASIS>: This option will allow a user to create and
destroy groups in Bugzilla. Unless you are using the Bugzilla GroupSentry security
option "usebuggroupsentry" in your parameters, this setting has no effect.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editbugs</EMPHASIS>: Unless a user has this bit set, they can only edit
those bugs for which they are the assignee or the reporter.
<NOTE>
<PARA>
Leaving this option unchecked does not prevent users from adding
comments to a bug! They simply cannot change a bug priority, severity,
etc. unless they are the assignee or reporter.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editcomponents</EMPHASIS>: 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. The name of a product or component can be
changed without affecting the associated bugs, but it tends to annoy
the hell out of your users when these change a lot.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editkeywords</EMPHASIS>: If you use Bugzilla's keyword functionality,
enabling this feature allows a user can 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.
You must be very careful about creating too many new keywords
if you run a very large Bugzilla installation; keywords are global variables
across products, and you can often run into a phenomenon called "keyword bloat".
This confuses users, and then the feature goes unused.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editusers</EMPHASIS>: This flag allows a user do what you're doing
right now: edit other users.
This will allow those with the right to do so to remove administrator
priveleges from other users or grant them to themselves. Enable with care.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>PRODUCT</EMPHASIS>: PRODUCT bugs access. This allows an administrator,
with product-level granularity, to specify in which products a user can edit bugs.
The user must still have the "editbugs" privelege to edit bugs in this area;
this simply restricts them from even seeing bugs outside these boundaries if the administrator
has enabled the group sentry parameter "usebuggroupsentry". Unless you are using bug groups,
this option has no effect.
</PARA>
</LISTITEM>
</ITEMIZEDLIST>
</SECTION>
</SECTION>
</SECTION>
<SECTION id="programadmin">
<TITLE>Product, Component, Milestone, and Version Administration</TITLE>
<EPIGRAPH>
<PARA>
Dear Lord, we have to get our users to do WHAT?
</PARA>
</EPIGRAPH>
<REMARK>
Many thanks to Zach Lipton for his contributions to this section
</REMARK>
<SECTION id="products">
<TITLE>Products</TITLE>
<SUBTITLE>Formerly, and in some spots still, called "Programs"</SUBTITLE>
<PARA>
<GLOSSTERM baseform="product" linkend="gloss_product">Products</GLOSSTERM> are the
broadest category in Bugzilla, and you should have the least of these.
If your company makes computer games, you should have one product per game,
and possibly a few special products
(website, meetings...)
</PARA>
<PARA>
A Product (formerly called "Program", and still referred to that way
in some portions of the source code) controls some very important functions.
The number of "votes" available for users to vote for the most important bugs
is set per-product, as is the number of votes required to move a bug automatically
from the UNCONFIRMED status to the NEW status. One can close a Product for further
bug entry and define various Versions available from the Edit Product screen.
</PARA>
<PARA>To create a new product:</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select "components" from the yellow footer
</PARA>
<TIP>
<PARA>
It may seem counterintuitive to click "components" when you want
to edit the properties associated with Products. This is one of a long
list of things we want in Bugzilla 3.0...
</PARA>
</TIP>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "Add" link to the right of "Add a new product".
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the product and a description.
The Description field is free-form.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<TIP>
<PARA>
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.
</PARA>
</TIP>
</SECTION>
<SECTION id="components">
<TITLE>Components</TITLE>
<PARA>
Components are subsections of a Product.
<EXAMPLE>
<TITLE>Creating some Components</TITLE>
<INFORMALEXAMPLE>
<PARA>
The computer game you are designing may 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.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
Each component has a owner and (if you turned it on in the parameters), a qa
contact. The owner should be the primary person who fixes bugs in that component. The QA
Contact should be the person who will ensure these bugs are completely fixed. The Owner,
QA Contact, and Reporter will get email when new bugs are created in this Component and
when these bugs change. Default Owner and Default QA Contact fields only dictate the
<EMPHASIS>default assignments</EMPHASIS>; the Owner and Q/A Contact fields in a bug
are otherwise unrelated to the Component.
</PARA>
<PARA>
To create a new Component:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select the "Edit components" link from the "Edit Product" page
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "Add" link to the right of the "Add a new component" text
on the "Select Component" page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the "Component" field, a short "Description", and the "Initial Owner".
The "Component" field should not contain a space. The "Description" field is
free-form. The "Initial Owner" field must be that of a valid user already
existing in the database. If the initial owner does not exist, Bugzilla
will refuse to create the component.
<TIP>
<PARA>
Is your "Default Owner" a user who is not yet in the database?
No problem.
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select the "Log out" link on the footer of the page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "New Account" link on the footer of the "Relogin" page
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Type in the email address of the default owner you want to create
in the "E-mail address" field, and her full name in the "Real name"
field, then select the "Submit Query" button.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Now select "Log in" again, type in your login information, and you
can modify the product to use the Default Owner information
you require.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Either "edit" more components or return to the "query" page on the ensuing
"Addming new component" page. To return to the Product you were editing, you
must select the "components" link as before.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="versions">
<TITLE>Versions</TITLE>
<PARA>
Versions are the revisions of the product, such as "Flinders 3.1", "Flinders 95",
and "Flinders 2000". Using Versions helps you isolate code changes and are an aid
in reporting.
<EXAMPLE>
<TITLE>Common Use of Versions</TITLE>
<INFORMALEXAMPLE>
<PARA>
A user reports a bug
against Version "Beta 2.0" of your product. The current Version of your software
is "Release Candidate 1", and no longer has the bug. This will
help you triage and classify bugs according to their relevance. It is also
possible people may report bugs against bleeding-edge beta versions that are
not evident in older versions of the software. This can help isolate code
changes that caused the bug
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
<EXAMPLE>
<TITLE>A Different Use of Versions</TITLE>
<INFORMALEXAMPLE>
<PARA>
This field has been used to good effect by an online service provider in a slightly
different way. They had three versions of the product: "Production", "QA",
and "Dev". Although it may be the same product, a bug in the development
environment is not normally as critical as a Production bug, nor does it
need to be reported publicly. When used in conjunction with Target Milestones,
one can easily specify the environment where a bug can be reproduced, and
the Milestone by which it will be fixed.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
</PARA>
<PARA>
To create and edit Versions:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
From the "Edit Product" screen, select "Edit Versions"
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
You will notice that the product already has the default version "undefined".
If your product doesn't use version numbers, you may want to leave this as it is
or edit it so that it is "---". You can then go back to the edit versions page
and add new versions to your product.
</PARA>
<PARA>
Otherwise, click the "Add" button to the right of the "Add a new version" text.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the Version. This can be free-form characters up to the limit of the
text box. Then select the "Add" button.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
At this point you can select "Edit" to edit more Versions, or return to the "Query"
page, from which you can navigate back to the product through the "components" link
at the foot of the Query page.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="milestones">
<TITLE>Milestones</TITLE>
<PARA>
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. Or, you have a
bug that you plan to fix for 2.8, this would have a milestone of 2.8.
</PARA>
<NOTE>
<PARA>
Milestone options will only appear for a Product if you turned the "usetargetmilestone" field
in the "Edit Parameters" screen "On".
</PARA>
</NOTE>
<PARA>
To create new Milestones, set Default Milestones, and set Milestone URL:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select "edit milestones"
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select "Add" to the right of the "Add a new milestone" text
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the Milestone in the "Milestone" field.
You can optionally set the "Sortkey", which is a positive or negative number (-255 to 255)
that defines where in the list this particular milestone appears.
Select "Add".
</PARA>
<EXAMPLE>
<TITLE>Using SortKey with Target Milestone</TITLE>
<INFORMALEXAMPLE>
<PARA>
Let's say you create a target milestone called "Release 1.0", with Sortkey set to "0".
Later, you realize that you will have a public beta, called "Beta1".
You can create a Milestone called "Beta1", with a Sortkey of "-1" in order to ensure
people will see the Target Milestone of "Beta1" earlier on the list than "Release 1.0"
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
</LISTITEM>
<LISTITEM>
<PARA>
If you want to add more milestones, select the "Edit" link.
If you don't, well shoot, you have to go back to the "query" page and select "components"
again, and make your way back to the Product you were editing.
<NOTE>
<PARA>
This is another in the list of unusual user interface decisions that
we'd like to get cleaned up. Shouldn't there be a link to the effect of
"edit the Product I was editing when I ended up here"? In any case,
clicking "components" in the footer takes you back to the "Select product"
screen, from which you can begin editing your product again.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
From the Edit Product screen again (once you've made your way back), enter the URL
for a description of what your milestones are for this product in the "Milestone URL" field.
It should be of the format "http://www.foo.com/bugzilla/product_milestones.html"
</PARA>
<PARA>
Some common uses of this field include product descriptions, product roadmaps,
and of course a simple description of the meaning of each milestone.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
If you're using Target Milestones, the "Default Milestone" field must have some
kind of entry. If you really don't care if people set coherent Target Milestones,
simply leave this at the default, "---". However, controlling and regularly updating the Default
Milestone field is a powerful tool when reporting the status of projects.
</PARA>
<PARA>Select the "Update" button when you are done.</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="voting">
<TITLE>Voting</TITLE>
<PARA>
The concept of "voting" is a poorly understood, yet powerful feature for the management
of open-source projects. Each user is assigned so many Votes per product, which they can
freely reassign (or assign multiple votes to a single bug).
This allows developers to gauge user need for a particular enhancement
or bugfix. By allowing bugs with a certain number of votes to automatically move from
"UNCONFIRMED" to "NEW", users of the bug system can help high-priority bugs garner
attention so they don't sit for a long time awaiting triage.
</PARA>
<PARA>
The daunting challenge of Votes is deciding where you draw the line for a "vocal majority". If you
only have a user base of 100 users, setting a low threshold for bugs to move from UNCONFIRMED
to NEW makes sense. As the Bugzilla user base expands, however, these thresholds must be
re-evaluated. You should gauge whether this feature is worth the time and close monitoring involved,
and perhaps forego implementation until you have a critical mass of users who demand it.
</PARA>
<PARA>To modify Voting settings:</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Navigate to the "Edit Product" screen for the Product you wish to modify
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Maximum Votes per person" to your calculated value. Setting this field
to "0" disables voting.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Maximum Votes a person can put on a single bug" to your calculated value. It
should probably be some number lower than the "Maximum votes per person".
Setting this field to "0" disables voting, but leaves the voting options open
to the user. This is confusing.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Number of votes a bug in this product needs to automatically get out of the
UNCONFIRMED state" to your calculated number. Setting this field to "0"
disables the automatic move of bugs from UNCONFIRMED to NEW. Some people
advocate leaving this at "0", but of what use are Votes if your Bugzilla
user base is unable to affect which bugs appear on Development radar?
<TIP>
<PARA>
You should probably set this number to higher than a small coalition of
Bugzilla users can influence it. Most sites use this as a "referendum"
mechanism -- if users are able to vote a bug out of UNCONFIRMED, it
is a <EMPHASIS>really</EMPHASIS> bad bug!
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Once you have adjusted the values to your preference, select the "Update" button.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="groups">
<TITLE>Groups and Group Security</TITLE>
<PARA>
Groups can be very useful in bugzilla, because they allow users to isolate
bugs or products that should only be seen by certain people. Groups can also
be a complicated minefield of interdependencies and weirdness if mismanaged.
<EXAMPLE>
<TITLE>When to Use Group Security</TITLE>
<INFORMALEXAMPLE>
<PARA>
Many Bugzilla sites isolate "Security-related" bugs from all other bugs.
This way, they can have a fix ready before the security vulnerability
is announced to the world. You can create a "Security" product which, by
default, has no members, and only add members to the group (in their individual
User page, as described under User Administration) who should have
priveleged access to "Security" bugs. Alternately, you may create a Group
independently of any Product, and change the Group mask on individual bugs
to restrict access to members only of certain Groups.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
Groups only work if you enable the "usebuggroups" paramater.
In addition, if the "usebuggroupsentry" parameter is "On", one can restrict access
to products by groups, so that only members of a product group are able to view
bugs within that product.
Group security in Bugzilla can be divided into two categories:
Generic and Product-Based.
</PARA>
<NOTE>
<PARA>
Groups in Bugzilla are a complicated beast that evolved out of very simple user
permission bitmasks, apparently itself derived from common concepts in UNIX access
controls. A "bitmask" is a fixed-length number whose value can describe one, and
only one, set of states. For instance, UNIX file permissions are assigned bitmask
values: "execute" has a value of 1, "write" has a value of 2,
and "read" has a value of 4. Add them together,
and a file can be read, written to, and executed if it has a bitmask of "7". (This
is a simplified example -- anybody who knows UNIX security knows there is much
more to it than this. Please bear with me for the purpose of this note.) The only
way a bitmask scheme can work is by doubling the bit count for each value. Thus
if UNIX wanted to offer another file permission, the next would have to be a value of
8, then the next 16, the next 32, etc.
</PARA>
<PARA>
Similarly, Bugzilla offers a bitmask to define group permissions, with an internal
limit of 64. Several are already occupied
by built-in permissions. The way around this limitation is
to avoid assigning groups to products if you have many products, avoid bloating
of group lists, and religiously prune irrelevant groups. In reality, most installations
of Bugzilla support far fewer than 64 groups, so this limitation has not hit
for most sites, but it is on the table to be revised for Bugzilla 3.0
because it interferes with the security schemes of some administrators.
</PARA>
</NOTE>
<PARA>
To enable Generic Group Security ("usebuggroups"):
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Turn "On" "usebuggroups" in the "Edit Parameters" screen.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
You will generally have no groups set up. Select the "groups" link
in the footer.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Take a moment to understand the instructions on the "Edit Groups" screen.
Once you feel confident you understand what is expected of you, select the
"Add Group" link.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the "New Name" (remember, no spaces!), "New Description", and "New
User RegExp" fields. "New User RegExp" allows you to automatically place
all users who fulfill the Regular Expression into the new group.
<EXAMPLE>
<TITLE>Creating a New Group</TITLE>
<INFORMALEXAMPLE>
<PARA>
I created a group called "DefaultGroup" with a description of "This is simply
a group to play with", and a "New User RegExp" of "*@velio.com". This
new group automatically includes all Bugzilla users with "@velio.com" at the
end of their user id. When I finished, my new group was assigned bit #128.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
When you have finished, select the "Add" button.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<PARA>
To enable Product-Based Group Security ("usebuggroupsentry"):
</PARA>
<WARNING>
<PARA>
Don't forget that you only have 64 groups masks available, total, for
your installation of Bugzilla! If you plan on having more than 50
products in your individual Bugzilla installation, and require group
security for your products, you should
consider either running multiple Bugzillas or using Generic Group Security
instead of Product-Based ("usebuggroupsentry") Group Security.
</PARA>
</WARNING>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit Parameters" screen.
</PARA>
<WARNING>
<PARA>
"usebuggroupsentry" has the capacity to prevent the administrative user
from directly altering bugs because of conflicting group permissions.
If you plan on using "usebuggroupsentry", you should plan on restricting administrative
account usage to administrative duties only.
In other words, manage bugs with an unpriveleged user account, and
manage users, groups, Products, etc. with the administrative account.
</PARA>
</WARNING>
</LISTITEM>
<LISTITEM>
<PARA>
You will generally have no Groups set up, unless you enabled "usebuggroupsentry"
prior to creating any Products. To create "Generic Group Security" groups,
follow the instructions given above. To create Product-Based Group security,
simply follow the instructions for creating a new Product. If you need to
add users to these new groups as you create them, you will find the option
to add them to the group available under the "Edit User" screens.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
</SECTION>
<SECTION id="security">
<TITLE>Bugzilla Security</TITLE>
<EPIGRAPH>
<PARA>
Putting your money in a wall safe is better protection than depending on the fact that
no one knows that you hide your money in a mayonnaise jar in your fridge.
</PARA>
</EPIGRAPH>
<NOTE>
<PARA>
Poorly-configured MySQL, Bugzilla, and FTP installations have given attackers full
access to systems in the past. Please take these guidelines seriously, even
for Bugzilla machines hidden away behind your firewall. 80% of all computer
trespassers are insiders, not anonymous crackers.
</PARA>
</NOTE>
<PARA>
First thing's first: Secure your installation.
<NOTE>
<PARA>
These instructions must, of necessity, be somewhat vague since Bugzilla runs on so many different
platforms. If you have refinements of these directions for specific platforms, please
submit them to <ULINK URL="mailto://mozilla-webtools@mozilla.org">mozilla-webtools@mozilla.org</ULINK>
</PARA>
</NOTE>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Ensure you are running at least MysQL version 3.22.32 or newer. Earlier versions had
notable security holes and poorly secured default configuration choices.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA><EMPHASIS>There is no substitute for understanding the tools on your system!</EMPHASIS>
Read <ULINK URL="http://www.mysql.com/documentation/mysql/bychapter/manual_Privilege_system.html">
The MySQL Privelege System</ULINK> until you can recite it from memory!</PARA>
<PARA>
At the very least, ensure you password the "mysql -u root" account and the "bugs" account, establish grant
table rights (consult the Keystone guide in Appendix C: The Bugzilla Database for some easy-to-use details)
that do not allow CREATE, DROP, RELOAD, SHUTDOWN, and PROCESS for user "bugs". I wrote up the Keystone
advice back when I knew far less about security than I do now : )
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Lock down /etc/inetd.conf. Heck, disable inet entirely on this box. It should only listen to
port 25 for Sendmail
and port 80 for Apache.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>Do not run Apache as "nobody". This will require very lax permissions in your Bugzilla directories.
Run it, instead, as a user with a name, set via your httpd.conf file.</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Ensure you have adequate access controls for $BUGZILLA_HOME/data/ and $BUGZILLA_HOME/localconfig.
The localconfig file stores your "bugs" user password, which would be terrible to have in the hands
of a criminal. Also some files under $BUGZILLA_HOME/data store sensitive information.
</PARA>
<PARA>
On Apache, you can use .htaccess files to protect access to these directories, as outlined
in <ULINK URL="http://bugzilla.mozilla.org/show_bug.cgi?id=57161">Bug 57161</ULINK> for the
localconfig file, and <ULINK URL="http://bugzilla.mozilla.org/show_bug.cgi?id=65572">
Bug 65572</ULINK> for adequate protection in your data/ and shadow/ directories.
</PARA>
<PARA>
Note the instructions which follow are Apache-specific. If you use IIS, Netscape, or other
non-Apache web servers, please consult your system documentation for how to secure these
files from being transmitted to curious users.
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/data directory.
<LITERALLAYOUT>
&lt;Files comments&gt;
allow from all
&lt;/Files&gt;
deny from all
</LITERALLAYOUT>
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/ directory.
<LITERALLAYOUT>
&lt;Files localconfig&gt;
deny from all
&lt;/Files&gt;
allow from all
</LITERALLAYOUT>
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/shadow directory.
<LITERALLAYOUT>
deny from all
</LITERALLAYOUT>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
</SECTION>
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<section id="conventions">
<title>Document Conventions</title>
<indexterm zone="conventions">
<primary>conventions</primary>
</indexterm>
<para>
This document uses the following conventions
</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Descriptions</entry>
<entry>Appearance</entry>
</row>
</thead>
<tbody>
<row>
<entry>Warnings</entry>
<entry><caution>
<para>Warnings.</para>
</caution></entry>
</row>
<row>
<entry>Hint</entry>
<entry><tip>
<para>Hint.</para>
</tip></entry>
</row>
<row>
<entry>Notes</entry>
<entry><note>
<para>Note.</para>
</note></entry>
</row>
<row>
<entry>Information requiring special attention</entry>
<entry><warning>
<para>Warning.</para>
</warning></entry>
</row>
<row>
<entry>File Names</entry>
<entry><filename>file.extension</filename></entry>
</row>
<row>
<entry>Directory Names</entry>
<entry><filename class="directory">directory</filename></entry>
</row>
<row>
<entry>Commands to be typed</entry>
<entry><command>command</command></entry>
</row>
<row>
<entry>Applications Names</entry>
<entry><application>application</application></entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of users command under bash shell</entry>
<entry>bash$</entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of root users command under bash shell</entry>
<entry>bash#</entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of user command under tcsh shell</entry>
<entry>tcsh$</entry>
</row>
<row>
<entry>Environment Variables</entry>
<entry><envar>VARIABLE</envar></entry>
</row>
<row>
<entry>Emphasized word</entry>
<entry><emphasis>word</emphasis></entry>
</row>
<row>
<entry>Code Example</entry>
<entry><programlisting><sgmltag class="starttag">para</sgmltag>Beginning and end of paragraph<sgmltag class="endtag">para</sgmltag></programlisting></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
The Bugzilla Database Schema v1.0
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ .
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
the specific language governing rights and limitations under the License.
The Original Code is "The Bugzilla Database Schema".
The Initial Developer of the Original Code is AtHome Corporation. Portions
created by AtHome are Copyright © 1995-2000 AtHome Corporation. All Rights
Reserved. @Home, Excite@Home, @Work, and Excite are the trademarks of At Home
Corporation, and may be registered in certain jurisdictions
Contributor(s): Matthew P. Barnson <mbarnson@excitehome.net>
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<APPENDIX id="database">
<TITLE>The Bugzilla Database</TITLE>
<NOTE>
<PARA>This document really needs to be updated with more fleshed out information about primary keys, interrelationships, and maybe some nifty tables to document dependencies. Any takers? <REMARK>MPB</REMARK></PARA>
</NOTE>
<SECTION id="dbschema">
<TITLE>Database Schema Chart</TITLE>
<PARA>
<MEDIAOBJECT>
<IMAGEOBJECT>
<IMAGEDATA FILEREF="dbschema.jpg" FORMAT="jpg">
</IMAGEOBJECT>
<TEXTOBJECT>
<PHRASE>Database Relationships</PHRASE>
</TEXTOBJECT>
<CAPTION>
<PARA>Bugzilla database relationships chart</PARA>
</CAPTION>
</MEDIAOBJECT>
</PARA>
</SECTION>
<SECTION id="dbdoc">
<TITLE>MySQL Bugzilla Database Introduction</TITLE>
<LITERALLAYOUT>
Contributor(s): Matthew P. Barnson (mbarnson@excitehome.net)
Last update: May 16, 2000
Changes:
Version 1.0: Initial public release (May 16, 2000)
Maintainer: Matthew P. Barnson <mbarnson@excitehome.net>
Maintainer: Matthew P. Barnson (mbarnson@excitehome.net)
===
......@@ -65,7 +80,7 @@ to ensure completeness even should this paper become out of date.
This document is not maintained by Netscape or Netscape employees, so please
do not contact them regarding errors or omissions contained herein. Please
direct all questions, comments, updates, flames, etc. to Matthew P. Barnson
<mbarnson@excitehome.net> (barnboy or barnhome on irc.mozilla.org in
mbarnson@excitehome.net) (barnboy or barnhome on irc.mozilla.org in
#mozwebtools).
I'm sure I've made some glaring errors or omissions in this paper -- please
......@@ -382,3 +397,233 @@ LINKS
Great MySQL tutorial site:
http://www.devshed.com/Server_Side/MySQL/
</LITERALLAYOUT>
</SECTION>
<SECTION id="granttables">
<TITLE>MySQL Permissions & Grant Tables</TITLE>
<NOTE>
<PARA>The following portion of documentation comes from my answer to an old discussion of Keynote, a cool product that does trouble-ticket tracking for IT departments. I wrote this post to the Keynote support group regarding MySQL grant table permissions, and how to use them effectively. It is badly in need of updating, as I believe MySQL has added a field or two to the grant tables since this time, but it serves as a decent introduction and troubleshooting document for grant table issues. I used Keynote to track my troubles until I discovered Bugzilla, which gave me a whole new set of troubles to work on : )</PARA>
</NOTE>
<LITERALLAYOUT>
From matt_barnson@singletrac.com Wed Jul 7 09:00:07 1999
Date: Mon, 1 Mar 1999 21:37:04 -0700
From: Matthew Barnson matt_barnson@singletrac.com
To: keystone-users@homeport.org
Subject: [keystone-users] Grant Tables FAQ
[The following text is in the "iso-8859-1" character set]
[Your display is set for the "US-ASCII" character set]
[Some characters may be displayed incorrectly]
Maybe we can include this rambling message in the Keystone FAQ? It gets
asked a lot, and the only option current listed in the FAQ is
"--skip-grant-tables".
Really, you can't go wrong by reading section 6 of the MySQL manual, at
http://www.mysql.com/Manual/manual.html. I am sure their description is
better than mine.
MySQL runs fine without permissions set up correctly if you run the mysql
daemon with the "--skip-grant-tables" option. Running this way denies
access to nobody. Unfortunately, unless you've got yourself firewalled it
also opens the potential for abuse if someone knows you're running it.
Additionally, the default permissions for MySQL allow anyone at localhost
access to the database if the database name begins with "test_" or is named
"test" (i.e. "test_keystone"). You can change the name of your database in
the keystone.conf file ($sys_dbname). This is the way I am doing it for
some of my databases, and it works fine.
The methods described below assume you're running MySQL on the same box as
your webserver, and that you don't mind if your $sys_dbuser for Keystone has
superuser access. See near the bottom of this message for a description of
what each field does.
Method #1:
1. cd /var/lib
#location where you'll want to run /usr/bin/mysql_install_db shell
script from to get it to work.
2. ln -s mysql data
# soft links the "mysql" directory to "data", which is what
mysql_install_db expects. Alternately, you can edit mysql_install_db and
change all the "./data" references to "./mysql".
3. Edit /usr/bin/mysql_install_db with your favorite text editor (vi,
emacs, jot, pico, etc.)
A) Copy the "INSERT INTO db VALUES
('%','test\_%','','Y','Y','Y','Y','Y','Y');" and paste it immediately after
itself. Chage the 'test\_%' value to 'keystone', or the value of
$sys_dbname in keystone.conf.
B) If you are running your keystone database with any user, you'll need to
copy the "INSERT INTO user VALUES
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');" line after
itself and change 'root' to the name of the keystone database user
($sys_dbuser) in keystone.conf.
# adds entries to the script to create grant tables for specific
hosts and users. The user you set up has super-user access ($sys_dbuser) --
you may or may not want this. The layout of mysql_install_db is really very
uncomplicated.
4. /usr/bin/mysqladmin shutdown
# ya gotta shut it down before you can reinstall the grant tables!
5. rm -i /var/lib/mysql/mysql/*.IS?' and answer 'Y' to the deletion
questions.
# nuke your current grant tables. This WILL NOT delete any other
databases than your grant tables.
6. /usr/bin/mysql_install_db
# run the script you just edited to install your new grant tables.
7. mysqladmin -u root password (new_password)
# change the root MySQL password, or else anyone on localhost can
login to MySQL as root and make changes. You can skip this step if you want
keystone to connect as root with no password.
8. mysqladmin -u (webserver_user_name) password (new_password)
# change the password of the $sys_dbuser. Note that you will need
to change the password in the keystone.conf file as well in $sys_dbpasswd,
and if your permissions are set up incorrectly anybody can type the URL to
your keystone.conf file and get the password. Not that this will help them
much if your permissions are set to @localhost.
Method #2: easier, but a pain reproducing if you have to delete your grant
tables. This is the "recommended" method for altering grant tables in
MySQL. I don't use it because I like the other way :)
shell> mysql --user=root keystone
mysql> GRANT
SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,
FILE,
ON keystone.*
TO <$sys_dbuser name>@localhost
IDENTIFIED BY '(password)'
WITH GRANT OPTION;
OR
mysql> GRANT ALL PRIVELEGES
ON keystone.*
TO <$sys_dbuser name>@localhost
IDENTIFIED BY '(password)'
WITH GRANT OPTION;
# this grants the required permissions to the keystone ($sys_dbuser)
account defined in keystone.conf. However, if you are runnning many
different MySQL-based apps, as we are, it's generally better to edit the
mysql_install_db script to be able to quickly reproduce your permissions
structure again. Note that the FILE privelege and WITH GRANT OPTION may not
be in your best interest to include.
GRANT TABLE FIELDS EXPLANATION:
Quick syntax summary: "%" in MySQL is a wildcard. I.E., if you are
defining your DB table and in the 'host' field and enter '%', that means
that any host can access that database. Of course, that host must also have
a valid db user in order to do anything useful. 'db'=name of database. In
our case, it should be "keystone". "user" should be your "$sys_dbuser"
defined in keystone.conf. Note that you CANNOT add or change a password by
using the "INSERT INTO db (X)" command -- you must change it with the mysql
-u command as defined above. Passwords are stored encrypted in the MySQL
database, and if you try to enter it directly into the table they will not
match.
TABLE: USER. Everything after "password" is a privelege granted (Y/N).
This table controls individual user global access rights.
'host','user','password','select','insert','update','delete','index','alter'
,'create','drop','grant','reload','shutdown','process','file'
TABLE: DB. This controls access of USERS to databases.
'host','db','user','select','insert','update','delete','index','alter','crea
te','drop','grant'
TABLE: HOST. This controls which HOSTS are allowed what global access
rights. Note that the HOST table, USER table, and DB table are very closely
connected -- if an authorized USER attempts an SQL request from an
unauthorized HOST, she's denied. If a request from an authorized HOST is
not an authorized USER, it is denied. If a globally authorized USER does
not have rights to a certain DB, she's denied. Get the picture?
'host','db','select','insert','update','delete','index','alter','create','dr
op','grant'
You should now have a working knowledge of MySQL grant tables. If there is
anything I've left out of this answer that you feel is pertinent, or if my
instructions don't work for you, please let me know and I'll re-post this
letter again, corrected. I threw it together one night out of exasperation
for all the newbies who don't know squat about MySQL yet, so it is almost
guaranteed to have errors.
Once again, you can't go wrong by reading section 6 of the MySQL manual. It
is more detailed than I!
http://www.mysql.com/Manual/manual.html.
----------------------------------------------------------------------------
10/12/2000
Matthew sent in some mail with updated contact information:
NEW CONTACT INFORMATION:
------------------------
Matthew P. Barnson
Manager, Systems Administration
Excite@Home Business Applications
mbarnson@excitehome.net
(801)234-8300
</LITERALLAYOUT>
</SECTION>
<SECTION id="cleanupwork">
<TITLE>Cleaning up after mucking with Bugzilla</TITLE>
<LITERALLAYOUT>
Contributed by Eric Hansen:
There are several things, and one trick. There is a small tiny piece of
documentation I saw once that said something very important.
1) After pretty much any manual working of the Mysql db, you must
delete a file in the bugzilla directory: data/versioncache
Versioncache basically is a way to speed up bugzilla (from what I
understand). It stores a lot of commonly used information. However,
this file is refreshed every so often (I can't remember the time
interval though). So eventually all changes do propogate out, so you
may see stuff suddenly working.
2) Assuming that failed, you will also have to check something with the
checksetup.pl file. It actually is run twice. The first time it
creates the file: localconfig. You can modify localconfig, (or not if
you are doing bug_status stuff) or you should delete localconfig and
rerun your modified checksetup.pl. Since I don't actually see anything
in localconfig pertaining to bug_status, this point is mainly a FYI.
</LITERALLAYOUT>
</SECTION>
</APPENDIX>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="faq">
<title>The Bugzilla FAQ</title>
<qandaset>
<qandadiv id="faq_general">
<title>General Questions</title>
<qandaentry>
<question>
<para>
Where can I find information about Bugzilla?</para>
</question>
<answer>
<para>
You can stay up-to-date with the latest Bugzilla
information at <ulink url="http://www.mozilla.org/projects/bugzilla/">
http://www.mozilla.org/projects/bugzilla/</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What license is Bugzilla distributed under?
</para>
</question>
<answer>
<para>
Bugzilla is covered by the Mozilla Public License.
See details at <ulink url="http://www.mozilla.org/MPL/">
http://www.mozilla.org/MPL/</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I get commercial support for Bugzilla?
</para>
</question>
<answer>
<para>
<ulink url="http://www.collab.net/">www.collab.net</ulink> offers
Bugzilla as part of their standard offering to large projects.
They do have some minimum fees that are pretty hefty, and generally
aren't interested in small projects.
</para>
<para>
There are several experienced
Bugzilla hackers on the mailing list/newsgroup who are willing
to whore themselves out for generous compensation.
Try sending a message to the mailing list asking for a volunteer.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What major companies or projects are currently using Bugzilla
for bug-tracking?
</para>
</question>
<answer>
<para>
There are <emphasis>dozens</emphasis> of major comapanies with public
Bugzilla sites to track bugs in their products. A few include:
<simplelist>
<member>Netscape/AOL</member>
<member>Mozilla.org</member>
<member>AtHome Corporation</member>
<member>Red Hat Software</member>
<member>Loki Entertainment Software</member>
<member>SuSe Corp</member>
<member>The Horde Project</member>
<member>The Eazel Project</member>
<member>AbiSource</member>
<member>Real Time Enterprises, Inc</member>
<member>Eggheads.org</member>
<member>Strata Software</member>
<member>RockLinux</member>
<member>Creative Labs (makers of SoundBlaster)</member>
<member>The Apache Foundation</member>
<member>The Gnome Foundation</member>
<member>Linux-Mandrake</member>
</simplelist>
</para>
<para>
Suffice to say, there are more than enough huge projects using Bugzilla
that we can safely say it's extremely popular.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Who maintains Bugzilla?
</para>
</question>
<answer>
<para>
There are many, many contributors from around the world maintaining Bugzilla.
The designated "Maintainer" is Tara Hernandez, with QA support by Matthew Tuck.
Dan Mosedale and Dawn Endico are employees of Mozilla.org responsible for the
installation of Bugzilla there, and are very frequent code contributors.
Terry Weissman originally ported Bugzilla, but "these days, Terry just hangs around
and heckles." The rest of us are mostly transient developers; Bugzilla suits
our needs, and we contribute code as we have needs for updates.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How does Bugzilla stack up against other bug-tracking databases?
</para>
</question>
<answer>
<para>
A year has gone by, and I <emphasis>still</emphasis> can't find any head-to-head
comparisons of Bugzilla against other defect-tracking software. However, from my
personal experience with other bug-trackers, Bugzilla offers
superior performance on commodity hardware, better price (free!), more developer-
friendly features (such as stored queries, email integration, and platform
independence), improved scalability, open source code, greater flexibility,
and superior ease-of-use.
</para>
<para>
If you happen to be a commercial Bugzilla vendor, please step forward with a rebuttal
so I can include it in the FAQ. We're not in pursuit of Bugzilla ueber alles;
we simply love having a powerful, open-source tool to get our jobs done.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I change my user name in Bugzilla?
</para>
</question>
<answer>
<para>
You can't. However, the administrative account can, by simply opening
your user account in editusers.cgi and changing the login name.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why doesn't Bugzilla offer this or that feature or compatability
with this other tracking software?
</para>
</question>
<answer>
<para>
It may be that the support has not been built yet, or that you
have not yet found it. Bugzilla is making tremendous strides in
usability, customizability, scalability, and user interface. It
is widely considered the most complete and popular open-source
bug-tracking software in existence.
</para>
<para>
That doesn't mean it can't use improvement!
You can help the project along by either hacking a patch yourself
that supports the functionality you require, or else submitting a
"Request for Enhancement" (RFE) using the bug submission interface
at <ulink url="http://bugzilla.mozilla.org/">bugzilla.mozilla.org</ulink>.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why MySQL? I'm interested in seeing Bugzilla run on
Oracle/Sybase/Msql/PostgreSQL/MSSQL?
</para>
</question>
<answer>
<para>Terry Weissman answers,
<blockquote>
<para>
You're not the only one. But <emphasis>I</emphasis> am not very interested. I'm not
a real SQL or database person. I just wanted to make a useful tool,
and build it on top of free software. So, I picked MySQL, and
learned SQL by staring at the MySQL manual and some code lying
around here, and
wrote Bugzilla. I didn't know that Enum's were non-standard SQL.
I'm not sure if I would have cared, but I didn't even know. So, to
me, things are "portable" because it uses MySQL, and MySQL is
portable enough. I fully understand (now) that people want to be
portable to other databases, but that's never been a real concern
of mine.
</para>
</blockquote>
</para>
<para>
Things aren't quite that grim these days, however. Terry pretty much
sums up much of the thinking many of us have for Bugzilla, but there
is light on the horizon for database-independence! Here are some options:
</para>
<simplelist>
<member>
<emphasis><ulink url="http://bugzilla.redhat.com/">Red Hat Bugzilla</ulink></emphasis>:
Runs a modified Bugzilla 2.8 atop an Oracle database.
</member>
<member>
<emphasis><ulink url="http://sourceforge.net/projects/interzilla">Interzilla</ulink></emphasis>:
A project to run Bugzilla on Interbase. No code released yet, however.
</member>
<member>
<emphasis>Bugzilla 3.0</emphasis>: One of the primary stated goals
is multiple database support.
</member>
</simplelist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
"/usr/bin/perl" or something else?
</para>
</question>
<answer>
<para>
Mozilla.org uses /usr/bonsaitools/bin/perl. The prime rule in making
submissions is "don't break bugzilla.mozilla.org". If it breaks it, your
patch will be reverted faster than you can do a diff.
</para>
<para>
Here's Terry Weissman's comment, for some historical context:
<blockquote>
<para>
[This was] purely my own convention. I wanted a place to put a version of
Perl and other tools that was strictly under my control for the
various webtools, and not subject to anyone else. Edit it to point
to whatever you like.
</para>
<note>
<para>
We always recommend that, if possible, you keep the path
as /usr/bonsaitools/bin/perl, and simply add a /usr/bonsaitools
and /usr/bonsaitools/bin directory, then symlink your version
of perl to /usr/bonsaitools/bin/perl. This will make upgrading
your Bugzilla much easier in the future.
</para>
<para>
Obviously, if you do not have root access to your Bugzilla
box, our suggestion is irrelevant.
</para>
</note>
</blockquote>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_redhat">
<title>Red Hat Bugzilla</title>
<qandaentry>
<question>
<para>
What about Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
Red Hat Bugzilla is arguably more user-friendly, customizable, and scalable
than stock Bugzilla. Check it out at
http://bugzilla.redhat.com and the sources at ftp://people.redhat.com/dkl/.
They've set their Bugzilla up to work with Oracle out of the box.
Note that Redhat Bugzilla is based upon the 2.8 Bugzilla tree;
Bugzilla has made some tremendous advances since the 2.8 release.
Why not download both Bugzillas to check out the differences for
yourself?
</para>
<para>
Dave Lawrence, the original Red Hat Bugzilla maintainer, mentions:
<blockquote>
<para>
Somebody needs to take the ball and run with it. I'm the only
maintainer and am very pressed for time.
</para>
</blockquote>
If you, or someone you know, has the time and expertise to do the integration
work so main-tree Bugzilla 2.12 and higher integrates the Red
Hat Bugzilla Oracle modifications, please donate your
time to supporting the Bugzilla project.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What are the primary benefits of Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
<emphasis>Dave Lawrence</emphasis>:
<blockquote>
<para>
For the record, we are not using any template type implementation for
the cosmetic changes maded to Bugzilla. It is just alot of html changes
in the code itself. I admit I may have gotten a little carried away with it
but the corporate types asked for a more standardized interface to match up
with other projects relating to Red Hat web sites. A lot of other web based
internal tools I am working on also look like Bugzilla.
</para>
<para>
I do want to land the changes that I have made to Bugzilla but I may
have to back out a good deal and make a different version of Red Hat's
Bugzilla for checking in to CVS. Especially the cosmetic changes because it
seems they may not fit the general public. I will do that as soon as I can.
I also still do my regular QA responsibilities along with Bugzilla so time
is difficult sometimes to come by.
</para>
<para>
There are also a good deal of other changes that were requested by
management for things like support contracts and different permission
groups for making bugs private. Here is a short list of the major
changes that have been made:
</para>
<orderedlist>
<listitem>
<para>
No enum types. All old enum types are now separate smaller tables.
</para>
</listitem>
<listitem>
<para>
No bit wise operations. Not all databases support this so they were
changed to a more generic way of doing this task
</para>
</listitem>
<listitem>
<para>
Bug reports can only be altered by the reporter, assignee, or a
privileged bugzilla user. The rest of the world can see the bug but in
a non-changeable format (unless the bug has been marked private). They
can however add comments, add and remove themselves from the CC list
</para>
</listitem>
<listitem>
<para>
Different group scheme. Each group has an id number related to it.
There is a user_group table which contains userid to groupid mappings
to determine which groups each user belongs to. Additionally there is
a bug_group table that has bugid to groupid mappings to show which
groups can see a particular bug. If there are no entries for a bug in
this table then the bug is public.
</para>
</listitem>
<listitem>
<para>
Product groups. product_table created to only allow certain products to
be visible for certain groups in both bug entry and query. This was
particulary helpful for support contracts.
</para>
</listitem>
<listitem>
<para>
Of course many (too many) changes to Bugzilla code itself to allow use
with Oracle and still allow operation with Mysql if so desired.
Currently if you use Mysql it is set to use Mysql's old permission
scheme to keep breakage to a minimum. Hopefully one day this will
standardize on one style which may of course be something completely
different.
</para>
</listitem>
<listitem>
<para>
Uses Text::Template perl module for rendering of the dynamic HTML pages
such as enter_bug.cgi, query.cgi, bug_form.pl, and for the header and
footer parts of the page. This allows the html to be separate from the
perl code for customizing the look and feel of the page to one's
preference.
</para>
</listitem>
<listitem>
<para>
There are many other smaller changes. There is also a port to Oracle
that I have been working on as time permits but is not completely
finished but somewhat usable. I will merge it into our standard code
base when it becomes production quality. Unfortunately there will have
to be some conditionals in the code to make it work with other than
Oracle due to some differences between Oracle and Mysql.
</para>
</listitem>
</orderedlist>
<para>
Both the Mysql and Oracle versions of our current code base are
available from ftp://people.redhat.com/dkl. If Terry/Tara wants I can submit
patch files for all of the changes I have made and he can determine what is
suitable for addition to the main bugzilla cade base. But for me to commit
changes to the actual CVS I will need to back out alot of things that are
not suitable for the rest of the Bugzilla community. I am open to
suggestions.
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What's the current status of Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
<note>
<para>
This information is somewhat dated; I last updated it
7 June 2000.
</para>
</note>
<emphasis>Dave Lawrence</emphasis>:
<blockquote>
<para>
I suppose the current thread warrants an update on the status of
Oracle and bugzilla ;) We have now been running Bugzilla 2.8 on
Oracle for the last two days in our production environment. I
tried to do as much testing as possible with it before going live
which is some of the reason for the long delay. I did not get
enough feedback as I would have liked from internal developers to
help weed out any bugs still left so I said "Fine, i will take it
live and then I will get the feedback I want :)" So it is now
starting to stabilize and it running quite well after working
feverishly the last two days fixing problems as soon as they came
in from the outside world. The current branch in cvs is up2date if
anyone would like to grab it and try it out. The oracle _setup.pl
is broken right now due to some last minute changes but I will
update that soon. Therefore you would probably need to create the
database tables the old fashioned way using the supplied sql
creation scripts located in the ./oracle directory. We have heavy
optimizations in the database it self thanks to the in-house DBA
here at Red Hat so it is running quite fast. The database itself
is located on a dual PII450 with 1GB ram and 14 high voltage
differential raided scsi drives. The tables and indexes are
partitioned in 4 chuncks across the raided drive which is nice
because when ever you need to do a full table scan, it is actually
starting in 4 different locations on 4 different drives
simultaneously. And the indexes of course are on separate drives
from the data so that speeds things up tremendously. When I can
find the time I will document all that we have done to get this
thing going to help others that may need it.
</para>
<para>
As Matt has mentioned it is still using out-dated code and with a
little help I would like to bring everything up to date for
eventual incorporation with the main cvs tree. Due to other
duties I have with the company any help with this wiould be
appreciated. What we are using now is what I call a best first
effort. It definitely can be improved on and may even need
complete rewrites in a lot of areas. A lot of changes may have to
be made in the way Bugzilla does things currently to make this
transition to a more generic database interface. Fortunately when
making the Oracle changes I made sure I didn't do anything that I
would consider Oracle specific and could not be easily done with
other databases. Alot of the sql statements need to be broken up
into smaller utilities that themselves would need to make
decisions on what database they are using but the majority of the
code can be made database neutral.
</para>
</blockquote>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_loki">
<title>Loki Bugzilla (AKA Fenris)</title>
<note>
<para>
Loki's "Fenris" Bugzilla is no longer actively maintained.
It works well enough for Loki. Additionally, the major
differences in Fenris have now been integrated into
the main source tree of Bugzilla, so there's not much
reason to go grab the source. I left this section of the
FAQ principally for historical interest.
</para>
</note>
<qandaentry>
<question>
<para>
What about Loki Bugzilla?
</para>
</question>
<answer>
<para>
Loki Games has a customized version of Bugzilla available at
http://fenris.lokigames.com. From that page,
<blockquote>
<para>
You may have noticed that Fenris is a fork from Bugzilla-- our
patches weren't suitable for integration --and a few people have
expressed interest in the code. Fenris has one major improvement
over Bugzilla, and that is individual comments are not appended
onto a string blob, they are stored as a record in a separate
table. This allows you to, for instance, separate comments out
according to privilege levels in case your bug database could
contain sensitive information not for public eyes. We also provide
things like email hiding to protect user's privacy, additional
fields such as 'user_affected' in case someone enters someone
else's bug, comment editing and deletion, and more conditional
system variables than Bugzilla does (turn off attachments,
qacontact, etc.).
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Who maintains Fenris (Loki Bugzilla) now?
</para>
</question>
<answer>
<para>
Raphael Barrerro &lt;raistlin@lokigames.com&gt;.
Michael Vance created the initial fork, but no longer
maintains the project.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
</para>
</question>
</qandaentry>
</qandadiv>
<qandadiv id="faq_phb">
<title>Pointy-Haired-Boss Questions</title>
<note>
<para>
The title of this section doesn't mean you're a PHB -- it just means
you probably HAVE a PHB who wants to know this :)
</para>
</note>
<qandaentry>
<question>
<para>
Is Bugzilla web-based or do you have to have specific software or
specific operating system on your machine?
</para>
</question>
<answer>
<para>
It is web and e-mail based. You can edit bugs by sending specially
formatted email to a properly configured Bugzilla, or control via the web.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Has anyone you know of already done any Bugzilla integration with
Perforce (SCM software)?
</para>
</question>
<answer>
<para>
Yes! You can find more information elsewhere in "The Bugzilla
Guide" in the "Integration with Third-Party Products" section.
The section on Perforce isn't very large, but as the maintainer
of the Guide is charged with Perforce/Bugzilla integration by
his company, you can expect this section to grow.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow the user to track multiple projects?
</para>
</question>
<answer>
<para>
Absolutely! You can track up to a "soft-limit" of around
64 individual "Products", that can each be composed of as
many "Components" as you want. Check the Administration
section of the Bugzilla Guide for more information regarding
setting up Products and Components.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If I am on many projects, and search for all bugs assigned to me, will
Bugzilla list them for me and allow me to sort by project, severity etc?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
are there any that are NOT allowed?
</para>
</question>
<answer>
<para>
Yes. There are many specific MIME-types that are pre-defined by Bugzilla,
but you may specify any arbitrary MIME-type you need when you
upload the file. Since all attachments are stored in the database,
however, I recommend storing large binary attachments elsewhere
in the web server's file system and providing a hyperlink
as a comment, or in the provided "URL" field in the bug report.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
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?
</para>
</question>
<answer>
<para>
Yes. However, modifying some fields, notably those related to bug
progression states, also require adjusting the program logic to
compensate for the change.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla provide any reporting features, metrics, graphs, etc? You
know, the type of stuff that management likes to see. :)
</para>
</question>
<answer>
<para>
Yes. Look at <ulink url="http://bugzilla.mozilla.org/reports.cgi">
http://bugzilla.mozilla.org/reports.cgi</ulink> for basic reporting
facilities.
</para>
<para>
For more advanced reporting, I recommend hooking up a professional
reporting package, such as Crystal Reports, and use ODBC to access
the MySQL database. You can do a lot through the Query page of
Bugzilla as well, but right now Advanced Reporting is much
better accomplished through third-party utilities that can
interface with the database directly.
</para>
<para>
Advanced Reporting is a Bugzilla 3.X proposed feature.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there email notification and if so, what do you see when you get an
email? Do you see bug number and title or is it only the number?
</para>
</question>
<answer>
<para>
Email notification is user-configurable. The bug id and Topic
of the bug report accompany each email notification, along with
a list of the changes made.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can email notification be set up to send to multiple
people, some on the To List, CC List, BCC List etc?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If there is email notification, do users have to have any particular
type of email application?
</para>
</question>
<answer>
<para>
Bugzilla email is sent in plain text, the most compatible mail format
on the planet.
<note>
<para>
If you decide to use the bugzilla_email integration features
to allow Bugzilla to record responses to mail with the associated bug,
you may need to caution your users to set their mailer to "respond
to messages in the format in which they were sent". For security reasons
Bugzilla ignores HTML tags in comments, and if a user sends HTML-based
email into Bugzilla the resulting comment looks downright awful.
</para>
</note>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If I just wanted to track certain bugs, as they go through life, can I
set it up to alert me via email whenever that bug changes, whether it be
owner, status or description etc.?
</para>
</question>
<answer>
<para>
Yes. Place yourself in the "cc" field of the bug you wish to monitor.
Then change your "Notify me of changes to" field in the Email Settings
tab of the User Preferences screen in Bugzilla to the "Only those
bugs which I am listed on the CC line" option.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow data to be imported and exported? If I had outsiders
write up a bug report using a MS Word bug template, could that template be
imported into "matching" fields? If I wanted to take the results of a query
and export that data to MS Excel, could I do that?
</para>
</question>
<answer>
<para>
Mozilla allows data export through a custom DTD in XML format.
It does not, however, export to specific formats other than the
XML Mozilla DTD. Importing the data into Excel or any other application
is left as an exercise for the reader.
</para>
<para>
If you create import filters to other applications from Mozilla's XML,
please submit your modifications for inclusion in future Bugzilla
distributions.
</para>
<para>
As for data import, any application can send data to Bugzilla through
the HTTP protocol, or through Mozilla's XML API. However, it seems
kind of silly to put another front-end in front of Bugzilla;
it makes more sense to create a simplified bug submission form in
HTML. You can find an excellent example at
<ulink url="http://www.mozilla.org/quality/help/bugzilla-helper.html">
http://www.mozilla.org/quality/help/bugzilla-helper.html</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow fields to be added, changed or deleted? If I want to
customize the bug submission form to meet our needs, can I do that using our
terminology?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Has anyone converted Bugzilla to another language to be used in other
countries? Is it localizable?
</para>
</question>
<answer>
<para>
Currently, no. Internationalization support for Perl did not
exist in a robust fashion until the recent release of version 5.6.0;
Bugzilla is, and likely will remain (until 3.X) completely
non-localized.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user create and save reports? Can they do this in Word format?
Excel format?
</para>
</question>
<answer>
<para>
Yes. No. No.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user re-run a report with a new project, same query?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user modify an existing report and then save it into another name?
</para>
</question>
<answer>
<para>
You can save an unlimited number of queries in Bugzilla. You are free
to modify them and rename them to your heart's desire.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla have the ability to search by word, phrase, compound
search?
</para>
</question>
<answer>
<para>
You have no idea. Bugzilla's query interface, particularly with the
advanced Boolean operators, is incredibly versatile.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can the admin person establish separate group and individual user
privileges?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
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?
</para>
</question>
<answer>
<para>
Bugzilla does not lock records. It provides mid-air collision detection,
and offers the offending user a choice of options to deal with the conflict.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Are there any backup features provided?
</para>
</question>
<answer>
<para>
MySQL, the database back-end for Bugzilla, allows hot-backup of data.
You can find strategies for dealing with backup considerations
at <ulink url="http://www.mysql.com/doc/B/a/Backup.html">
http://www.mysql.com/doc/B/a/Backup.html</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can users be on the system while a backup is in progress?
</para>
</question>
<answer>
<para>
Yes. However, commits to the database must wait
until the tables are unlocked. Bugzilla databases are typically
very small, and backups routinely take less than a minute.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What type of human resources are needed to be on staff to install and
maintain Bugzilla? Specifically, what type of skills does the person need to
have? I need to find out if we were to go with Bugzilla, what types of
individuals would we need to hire and how much would that cost vs buying an
"Out-of-the-Box" solution.
</para>
</question>
<answer>
<para>
If Bugzilla is set up correctly from the start, continuing maintenance needs
are minimal and can be completed by unskilled labor. Things like rotate
backup tapes and check log files for the word "error".
</para>
<para>
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.
</para>
<para>
As an example, as of this writing I typically charge
$115 for the first hour, and $89 each hour thereafter
for consulting work. It takes me three to five hours to make Bugzilla
happy on a Development installation of Linux-Mandrake.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What time frame are we looking at if we decide to hire people to install
and maintain the Bugzilla? Is this something that takes hours or weeks to
install and a couple of hours per week to maintain and customize or is this
a multi-week install process, plus a full time job for 1 person, 2 people,
etc?
</para>
</question>
<answer>
<para>
It all depends on your level of commitment. Someone with much Bugzilla
experience can get you up and running in less than a day, and
your Bugzilla install can run untended for years. If your
Bugzilla strategy is critical to your business workflow, hire somebody
with reasonable UNIX or Perl skills to handle your process management and
bug-tracking maintenance & customization.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
</para>
</question>
<answer>
<para>
No. MySQL asks, if you find their product valuable, that you purchase
a support contract from them that suits your needs.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_install">
<title>Bugzilla Installation</title>
<qandaentry>
<question>
<para>
How do I download and install Bugzilla?
</para>
</question>
<answer>
<para>
Check <ulink url="http://www.mozilla.org/projects/bugzilla/">
http://www.mozilla.org/projects/bugzilla/</ulink> for details.
Once you download it, untar it, read the README and
the Bugzilla Guide.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I install Bugzilla on Windows NT?
</para>
</question>
<answer>
<para>
Installation on Windows NT has its own section in
"The Bugzilla Guide".
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there an easy way to change the Bugzilla cookie name?
</para>
</question>
<answer>
<para>
At present, no.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_security">
<title>Bugzilla Security</title>
<qandaentry>
<question>
<para>
How do I completely disable MySQL security if it's giving me problems
(I've followed the instructions in the README!)?
</para>
</question>
<answer>
<para>
Run mysql like this: "mysqld --skip-grant-tables". Please remember <emphasis>this
makes mysql as secure as taping a $100 to the floor of a football stadium
bathroom for safekeeping.</emphasis> Please read the Security section of the
Administration chapter of "The Bugzilla Guide" before proceeding.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Are there any security problems with Bugzilla?
</para>
</question>
<answer>
<para>
The Bugzilla code has not undergone a complete security audit.
It is recommended that you closely examine permissions on your Bugzilla
installation, and follow the recommended security guidelines found
in the README and in The Bugzilla Guide.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I've implemented the security fixes mentioned in Chris Yeh's security
advisory of 5/10/2000 advising not to run MySQL as root, and am running into
problems with MySQL no longer working correctly.
</para>
</question>
<answer>
<para>
This is a common problem, related to running out of file descriptors.
Simply add "ulimit -n unlimited" to the script which starts
mysqld.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_email">
<title>Bugzilla Email</title>
<qandaentry>
<question>
<para>
I have a user who doesn't want to receive any more email from Bugzilla.
How do I stop it entirely for this user?
</para>
</question>
<answer>
<para>
With the email changes to 2.12, the user should be able to set
this in user email preferences.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm evaluating/testing Bugzilla, and don't want it to send email to
anyone but me. How do I do it?
</para>
</question>
<answer>
<para>
Edit the param for the mail text. Replace "To:" with "X-Real-To:",
replace "Cc:" with "X-Real-CC:", and add a "To: (myemailaddress)".
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
</para>
</question>
<answer>
<para>
Try Klaas Freitag's excellent patch for "whineatassigned" functionality.
You can find it at<ulink url=" http://bugzilla.mozilla.org/show_bug.cgi?id=6679">
http://bugzilla.mozilla.org/show_bug.cgi?id=6679</ulink>. This
patch is against an older version of Bugzilla, so you must apply
the diffs manually.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
</para>
</question>
<answer>
<para>
You can call bug_email.pl directly from your aliases file, with
an entry like this:
<blockquote>
<para>
bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
</para>
</blockquote>
However, this is fairly nasty and subject to problems; you also
need to set up your smrsh (sendmail restricted shell) to allow
it. In a pinch, though, it can work.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I set up the email interface to submit/change bugs via email?
</para>
</question>
<answer>
<para>
You can find an updated README.mailif file in the contrib/ directory
of your Bugzilla distribution that walks you through the setup.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Email takes FOREVER to reach me from bugzilla -- it's extremely slow.
What gives?
</para>
</question>
<answer>
<para>
If you are using an alternate Mail Transport Agent (MTA other than
sendmail), make sure the options given in the "processmail" script for all
instances of "sendmail" are correct for your MTA. If you are using Sendmail,
you may wish to delete the "-ODeliveryMode=deferred" option in the
"processmail" script for every invocation of "sendmail". (Be sure and leave
the "-t" option, though!)
</para>
<para>
A better alternative is to change the "-O" option to
"-ODeliveryMode=background". This prevents Sendmail from hanging your
Bugzilla Perl processes if the domain to which it must send mail
is unavailable.
</para>
<para>
This is now a configurable parameter called "sendmailparm", available
from editparams.cgi.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How come email never reaches me from bugzilla changes?
</para>
</question>
<answer>
<para>
Double-check that you have not turned off email in your user preferences.
Confirm that Bugzilla is able to send email by visiting the "Log In"
link of your Bugzilla installation and clicking the "Email me a password"
button after entering your email address.
</para>
<para>
If you never receive mail from Bugzilla, chances you do not have
sendmail in "/usr/lib/sendmail". Ensure sendmail lives in, or is symlinked
to, "/usr/lib/sendmail".
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_db">
<title>Bugzilla Database</title>
<qandaentry>
<question>
<para>
I've heard Bugzilla can be used with Oracle?
</para>
</question>
<answer>
<para>
Red Hat Bugzilla, mentioned above, works with Oracle. The current version
from Mozilla.org does not have this capability. Unfortunately, though
you will sacrifice a lot of the really great features available in
Bugzilla 2.10 and 2.12 if you go with the 2.8-based Redhat version.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Bugs are missing from queries, but exist in the database (and I can pull
them up by specifying the bug ID). What's wrong?
</para>
</question>
<answer>
<para>
You've almost certainly enabled the "shadow database", but for some
reason it hasn't been updated for all your bugs. This is the database
against which queries are run, so that really complex or slow queries won't
lock up portions of the database for other users. You can turn off the
shadow database in editparams.cgi. If you wish to continue using the shadow
database, then as your "bugs" user run "./syncshadowdb -syncall" from the
command line in the bugzilla installation directory to recreate your shadow
database. After it finishes, be sure to check the params and make sure that
"queryagainstshadowdb" is still turned on. The syncshadowdb program turns it
off if it was on, and is supposed to turn it back on when completed; that
way, if it crashes in the middle of recreating the database, it will stay
off forever until someone turns it back on by hand. Apparently, it doesn't
always do that yet.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I think my database might be corrupted, or contain invalid entries. What
do I do?
</para>
</question>
<answer>
<para>
Run the "sanity check" utility (./sanitycheck.cgi in the bugzilla_home
directory) to see! If it all comes back, you're 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...
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I want to manually edit some entries in my database. How?
</para>
</question>
<answer>
<para>
There is no facility in Bugzilla itself to do this. It's also generally
not a smart thing to do if you don't know exactly what you're doing.
However, if you understand SQL you can use the mysqladmin utility to
manually insert, delete, and modify table information. Personally, I
use "phpMyAdmin". You have to compile a PHP module with MySQL
support to make it work, but it's very clean and easy to use.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I try to add myself as a user, but Bugzilla always tells me my password is wrong.
</para>
</question>
<answer>
<para>
Certain version of MySQL (notably, 3.23.29 and 3.23.30) accidentally disabled
the "crypt()" function. This prevented MySQL from storing encrypted passwords.
Upgrade to the "3.23 stable" version of MySQL and you should be good to go.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I think I've set up MySQL permissions correctly, but bugzilla still can't
connect.
</para>
</question>
<answer>
<para>
Try running MySQL from its binary: "mysqld --skip-grant-tables". This
will allow you to completely rule out grant tables as the cause of your
frustration. However, I do not recommend you run it this way on a regular
basis, unless you really want your web site defaced and your machine
cracked.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I synchronize bug information among multiple different Bugzilla
databases?
</para>
</question>
<answer>
<para>
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.
</para>
<para>
MySQL has some synchronization features builtin to the latest releases.
It would be great if someone looked into the possibilities there
and provided a report to the newsgroup on how to effectively
synchronize two Bugzilla installations.
</para>
<para>
If you simply need to transfer bugs from one Bugzilla to another,
checkout the "move.pl" script in the Bugzilla distribution.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why do I get bizarre errors when trying to submit data, particularly problems
with "groupset"?
</para>
</question>
<answer>
<para>
If you're sure your MySQL parameters are correct, you might want turn
"strictvaluechecks" OFF in editparams.cgi. If you have "usebugsentry" set
"On", you also cannot submit a bug as readable by more than one group with
"strictvaluechecks" ON.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How come even after I delete bugs, the long descriptions show up?
</para>
</question>
<answer>
<para>
Delete everything from $BUZILLA_HOME/shadow. Bugzilla creates shadow
files there, with each filename corresponding to a
bug number. Also be sure to run syncshadowdb to make sure, if you are using
a shadow database, that the shadow database is current.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_nt">
<title>Bugzilla and Win32</title>
<qandaentry>
<question>
<para>
What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
</para>
</question>
<answer>
<para>
Remove Windows. Install Linux. Install Bugzilla.
The boss will never know the difference.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there a "Bundle::Bugzilla" equivalent for Win32?
</para>
</question>
<answer>
<para>
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.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
</para>
</question>
<answer>
<para>
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 &lt;path&gt;\perl.exe %s %s as the
executable.
</para>
<para>
Microsoft has some advice on this matter, as well:
<blockquote>
<para>
"Set application mappings. In the ISM, map the extension for the script
file(s) to the executable for the script interpreter. For example, you might
map the extension .py to Python.exe, the executable for the Python script
interpreter. Note For the ActiveState Perl script interpreter, the extension
.pl is associated with PerlIS.dll by default. If you want to change the
association of .pl to perl.exe, you need to change the application mapping.
In the mapping, you must add two percent (%) characters to the end of the
pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe %s %s"
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can I have some general instructions on how to make Bugzilla on Win32 work?
</para>
</question>
<answer>
<para>
The following couple entries are deprecated in favor of the Windows installation
instructions available in the "Administration" portion of "The Bugzilla Guide".
However, they are provided here for historical interest and insight.
<literallayout>
1. #!C:/perl/bin/perl had to be added to every perl file.
2. Converted to Net::SMTP to handle mail messages instead of
/usr/bin/sendmail.
3. The crypt function isn't available on Windows NT (at least none that I
am aware), so I made encrypted passwords = plaintext passwords.
4. The system call to diff had to be changed to the Cygwin diff.
5. This was just to get a demo running under NT, it seems to be working
good, and I have inserted almost 100 bugs from another bug tracking
system. Since this work was done just to get an in-house demo, I am NOT
planning on making a patch for submission to Bugzilla. If you would
like a zip file, let me know.
Q: Hmm, couldn't figure it out from the general instructions above. How
about step-by-step?
A: Sure! Here ya go!
1. Install IIS 4.0 from the NT Option Pack #4.
2. Download and install Active Perl.
3. Install the Windows GNU tools from Cygwin. Make sure to add the bin
directory to your system path. (Everyone should have these, whether
they decide to use Bugzilla or not. :-) )
4. Download relevant packages from ActiveState at
http://www.activestate.com/packages/zips/. + DBD-Mysql.zip
5. Extract each zip file with WinZip, and install each ppd file using the
notation: ppm install &lt;module&gt;.ppd
6. Install Mysql. *Note: If you move the default install from c:\mysql,
you must add the appropriate startup parameters to the NT service. (ex.
-b e:\\programs\\mysql)
7. Download any Mysql client. http://www.mysql.com/download_win.html
8. Setup MySql. (These are the commands that I used.)
I. Cleanup default database settings.
C:\mysql\bin\mysql -u root mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> quit
C:\mysql\bin\mysqladmin reload
II. Set password for root.
C:\mysql\bin\mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
III. Create bugs user.
C:\mysql\bin\mysql -u root -p
mysql> insert into user (host,user,password)
values('localhost','bugs','');
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
IV. Create the bugs database.
C:\mysql\bin\mysql -u root -p
mysql> create database bugs;
V. Give the bugs user access to the bugs database.
mysql> insert into db
(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv)
values('localhost','bugs','bugs','Y','Y','Y','Y','Y','N')
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
9. Run the table scripts to setup the bugs database.
10. Change CGI.pm to use the following regular expression because of
differing backslashes in NT versus UNIX.
o $0 =~ m:[^\\]*$:;
11. Had to make the crypt password = plain text password in the database.
(Thanks to Andrew Lahser" &lt;andrew_lahser@merck.com&gt;" on this one.) The
files that I changed were:
o globals.pl
o CGI.pl
o alternately, you can try commenting all references to 'crypt'
string and replace them with similar lines but without encrypt()
or crypr() functions insida all files.
12. Replaced sendmail with Windmail. Basically, you have to come up with a
sendmail substitute for NT. Someone said that they used a Perl module
(Net::SMTP), but I was trying to save time and do as little Perl coding
as possible.
13. Added "perl" to the beginning of all Perl system calls that use a perl
script as an argument and renamed processmail to processmail.pl.
14. In processmail.pl, I added binmode(HANDLE) before all read() calls. I'm
not sure about this one, but the read() under NT wasn't counting the
EOLs without the binary read."
</literallayout>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm having trouble with the perl modules for NT not being able to talk to
to the database.
</para>
</question>
<answer>
<para>
Your modules may be outdated or inaccurate. Try:
<orderedlist>
<listitem>
<para>
Hitting http://www.activestate.com/ActivePerl
</para>
</listitem>
<listitem>
<para>
Download ActivePerl
</para>
</listitem>
<listitem>
<para>
Go to your prompt
</para>
</listitem>
<listitem>
<para>
Type 'ppm'
</para>
</listitem>
<listitem>
<para>
<prompt>PPM></prompt> <command>install DBI DBD-mysql GD</command>
</para>
</listitem>
</orderedlist>
I reckon TimeDate and Data::Dumper come with the activeperl. You can check
the ActiveState site for packages for installation through PPM.
<ulink url=" http://www.activestate.com/Packages/">
http://www.activestate.com/Packages/</ulink>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_use">
<title>Bugzilla Usage</title>
<qandaentry>
<question>
<para>
The query page is very confusing. Isn't there a simpler way to query?
</para>
</question>
<answer>
<para>
We are developing in that direction. You can follow progress on this
at <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=16775">
http://bugzilla.mozilla.org/show_bug.cgi?id=16775</ulink>. Some functionality
is available in Bugzilla 2.12, and is available as "quicksearch.html"
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm confused by the behavior of the "accept" button in the Show Bug form.
Why doesn't it assign the bug to me when I accept it?
</para>
</question>
<answer>
<para>
The current behavior is acceptable to bugzilla.mozilla.org and most
users. I personally don't like it. You have your choice of patches
to change this behavior, however.
<simplelist>
<member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029">
Add a "and accept bug" radio button</ulink></member>
<member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8153">
"Accept" button automatically assigns to you</ulink></member>
</simplelist>
Note that these patches are somewhat dated. You will need to do the find
and replace manually to apply them. They are very small, though. It is easy.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I can't upload anything into the database via the "Create Attachment"
link. What am I doing wrong?
</para>
</question>
<answer>
<para>
The most likely cause is a very old browser or a browser that is
incompatible with file upload via POST. Download the latest Netscape,
Microsoft, or Mozilla browser to handle uploads correctly.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Email submissions to Bugzilla that have attachments end up asking me to
save it as a "cgi" file.
</para>
</question>
<answer>
<para>
Yup. Just rename it once you download it, or save it under a different
filename. This will not be fixed anytime too soon, because it would
cripple some other functionality.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I change a keyword in Bugzilla, once some bugs are using it?
</para>
</question>
<answer>
<para>
In the Bugzilla administrator UI, edit the keyword and it will let you
replace the old keyword name with a new one. This will cause a problem
with the keyword cache. Run sanitycheck.cgi to fix it.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_hacking">
<title>Bugzilla Hacking</title>
<qandaentry>
<question>
<para>
What bugs are in Bugzilla right now?
</para>
</question>
<answer>
<para>
Try <ulink url="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;product=Webtools&amp;component=Bugzilla">
this link</ulink> to view current bugs or requests for
enhancement for Bugzilla.
</para>
<para>
You can view bugs marked for 2.14 release
<ulink url="http://bugzilla.mozilla.org/buglist.cgi?product=Webtools&amp;component=Bugzilla&amp;target_milestone=Bugzilla+2.14">here</ulink>.
This list includes bugs for the 2.14 release that have already
been fixed and checked into CVS. Please consult the
<ulink url="http://www.mozilla.org/projects/bugzilla/">
Bugzilla Project Page</ulink> for details on how to
check current sources out of CVS so you can have these
bug fixes early!
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What's the best way to submit patches? What guidelines should I follow?
</para>
</question>
<answer>
<blockquote>
<orderedlist>
<listitem>
<para>
Enter a bug into bugzilla.mozilla.org for the "Webtools" product,
"Bugzilla" component.
</para>
</listitem>
<listitem>
<para>
Upload your patch as a unified DIFF (having used "diff -u" against
the <emphasis>current sources</emphasis> checked out of CVS),
or new source file by clicking
"Create a new attachment" link on the bug page you've just created, and
include any descriptions of database changes you may make, into the bug
ID you submitted in step #1. Be sure and click the "Patch" radio
button to indicate the text you are sending is a patch!
</para>
</listitem>
<listitem>
<para>
Announce your patch and the associated URL
(http://bugzilla.mozilla.org/show_bug.cgi?id=XXXX) 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.
</para>
</listitem>
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
Bask in the glory of the fact that you helped write the most successful
open-source bug-tracking software on the planet :)
</para>
</listitem>
</orderedlist>
</blockquote>
</answer>
</qandaentry>
</qandadiv>
</qandaset>
</APPENDIX>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<chapter id="future">
<title>The Future of Bugzilla</title>
<synopsis>This section largely contributed by Matthew Tuck</synopsis>
<section id="spamlite">
<title>Reducing Spam</title>
<para><literallayout>
Those who use Bugzilla frequently are probably used to notification spam
- unwanted or unnecessary notifications. A number of proposals have
been put forward to attempt to reduce this.
1. Reduce CC Spam
Some of you probably know me as that guy who CCs on heaps and heaps of
bugs. Just as you get a lot of CC changes from me, so do I get a lot
from others. Why should CC changes send out email notifications?
It's not necessarily the best idea to just remove the CC spam, there are
other issues too, like the difficulty of adding to large CC fields.
For these reasons and more, an RFE for a per user "BCC" facility exists
that people could use to silently and privately track bugs, in a similar
way to voting today, but applying to an unlimited number of bugs. See
"http://bugzilla.mozilla.org/show_bug.cgi?id=7345".
2. Bulk Changes
You know the drill - a large milestone change, a component movement,
whatever, and lots of notifications are generated. If there's enough
maybe you'll just go delete, delete, delete, whoops, there goes another
notification that wasn't from the bulk change you missed.
Shouldn't bulk changes send out one notification? A proposal for this
is at "http://bugzilla.mozilla.org/show_bug.cgi?id=26943".
3. Configurable Notification Criteria
It would be good if you could choose what you want to receive. There
are two parts to this.
(a) Choose a selection of bugs you're interested in. This would be
similar to CC except you let the set be computed from selection criteria
rather than limited to the bugs your name is on. There is currently a
limited version of this in the bugzilla preferences, ie "all qualifying
bugs"/"all qualifying bugs except the ones I change"/"only those bugs
which I am listed on the cc line".
(b) Choose what changes will trigger a notification for the bugs you are
watching. With this, you could choose whether you want to receive cc,
dependency and keyword changes, for example.
Both of these proposals live at
"http://bugzilla.mozilla.org/show_bug.cgi?id=14137".
</literallayout></para>
</section>
<section id="searching">
<title>Better Searching</title>
<para><literallayout>
Current searching tools in Bugzilla include the querying mechanism,
special summary reports and dependency trees. This message is about new
facilities.
1. General Summary Reports
For some time now it has been apparent to me that the query bug list
leaves a little to be desired in its linear nature. There is a need to
have categorised subsets, and counts of each category. If you don't
believe me, how about these facilities already in place or which people
have asked for:
Most Doomed Reports - Categorised On Assignee, Shows and Counts Number
of Bugs For Each Assignee
Bug #15806 (Most Voted For Bugs) - Categorised On Product, Shows Bugs
Voters Most Want Fixed
Bug #9789 (BugAThon Tracking Page) - Categorised On Developer (Subset),
Counts Number of Bugs
Bug #9409 and #9411 - The desire to be able to report on more subsets.
Hopefully you can see the gist of what is desired here. It's a general
reporting mechanism.
This mechanism lets you choose the subset of bugs to operate on (like
query), let's you categorise them, possibly along with subcategories and
counts the number of bugs within each category. It might or might not
show the actual bugs themselves, and it might limit the number of bugs
within a category, or categories to report on.
I'm further sure that many applications of this mechanism would only be
recognised once it was implemented.
The general summary reports bug is at
"http://bugzilla.mozilla.org/show_bug.cgi?id=12282".
2. Related Bugs
It would be nice to have a field where you could enter other bugs
related to the current bug - it would be handy for navigation and
possibly even finding duplicates. See
"http://bugzilla.mozilla.org/show_bug.cgi?id=12286".
3. Column Specification Support
Currently query seems to get what columns to report on from whatever the
user last used. This doesn't work well for "prepackaged queries", where
you followed a link. You can probably add a column by specifying a sort
column, but this is difficult and suboptimal.
Furthermore, I find that when I want to add a column to a query, it's
usually a one off and I would prefer it to go away for the next query.
Hence, it would be nice to specify the columns that appear on the query
(and general summary report) pages. The default query mechanism should
be able to let you specify your default columns.
This proposal lives at
"http://bugzilla.mozilla.org/show_bug.cgi?id=12284".
</literallayout></para>
</section>
<section id="trackingbugs">
<title>Description Flags and Tracking Bugs</title>
<para><literallayout>
Since I last posted on this issue, we now have "keywords" that solve
many of the issues of description and status whiteboard keywords. We
have seen a migration towards keywords, but there is still further to
go.
Description ( + Status Whiteboard ) Keywords
--------------------------------------------
Some description keywords remain. I'd like to hear what reasons, other
than time, there are for these staying as they are. I'm suspecting many
are not really being used. Hopefully we can totally remove these
eventually.
Tracking Bugs
-------------
When I suggested keywords, I did so to get rid of tracking bugs too,
though we've had less success on that front.
There are many disadvantages to tracking bugs.
- They can pollute bugs counts, and you must make sure you exclude
them. I believe the meta keyword might be used for this purpose.
- They have an assignee but there is nothing to fix, and that person can
get whined at by Bugzilla.
- It would be better to craft your own "dependency tree" rather than
rely on a fixed hierachy in the bug system.
- In creating a nice little hierachy, many bugs duplicate information
that should be available in other ways, eg
"http://bugzilla.mozilla.org/show_bug.cgi?id=12833" which is
about beta 1 networking issues. These could fall behind the actual
data. What tracking bugs are good for, ad hoc lists, is what keywords
are better for.
- An automatically generated dependency structure between one "tracking
bug" and another would be better than a manual one, since it gives exact
rather than manually set up classifications.
Probably the only feature preventing tracking bugs being replaced is the
dependency tree. The quintessential tracking bug seems to be bug #7229
"chofmann's watch list", which probably has about a couple of hundred
bugs at various levels, which allows a nice visualisation.
Before keywords can replace tracking bugs better visualisation is going
to be required. General summary reports and dependency forests of a bug
list ("http://bugzilla.mozilla.org/show_bug.cgi?id=12992") could both
help, but neither solves the problem totally. Perhaps keywords within
keywords would help here. In any case, I'm still thinking about this
one.
Some tracking bugs could definitely be turned into keywords immediately
though, and I'll point the finger at
"http://bugzilla.mozilla.org/show_bug.cgi?id=7954" here since that's
what came to mind first.
</literallayout></para>
</section>
<section id="bugprobs">
<title>Bug Issues</title>
<para><literallayout>
1. Inline Bug Changes
Why do I see so many "moving to M5" and "reassigning to blahblah"
messages, and in other circumstances none are entered? Why aren't these
automatically generated? A comment should be only necessary when there
is something to add, and if I'm not interested in this sort of
information, I should be able to hide it.
At the moment we're in a hybrid world where we don't get everything, but
we can't get rid of the bug change "messages" either. Furthermore,
"View Bug Activity" requires me to manually cross reference events on
another page, rather than being able to visually see the chronological
order. Shouldn't I be able to see all the information on one page?
A proposal to allow bugs to be shown either way is at
"http://bugzilla.mozilla.org/show_bug.cgi?id=11368".
2. Hard Wrapping Comments
One thing that annoys me is the fact that comments are "hard wrapped" to
a certain column width. This is a mistake Internet Mail and News has
made, unlike every word processor in existence, and as a consequence,
Usenet suffers to this day from bad software. Why has Bugzilla repeated
the problem?
Hard wrapping to a certain column width is open to abuse (see old
Mozilla browsers that didn't wrap properly, resulting in many ugly bug
reports we have to read to this day), and furthermore doesn't expand to
fill greater screen sizes. I'm also under the impression the current
hard wrap uses a non-standard HTML facility. See
"http://bugzilla.mozilla.org/show_bug.cgi?id=11901".
3. REMIND and LATER Are Evil
I really hate REMIND and LATER. Not because they mean something
won't be implemented, but because they aren't the best solutions.
Why are they bad? Well, basically because they are not resolved, yet
they are marked as such. Hence queries have to be well crafted to
include them.
LATER, according to Bugzilla, means it won't be done this release.
There is a better mechanism of doing this, that is assigning to
nobody@mozilla.org and making the milestone blank. It's more likely to
appear in a casual query, and it doesn't resolve the bug.
REMIND, according to Bugzilla, means it might still be implemented this
release. Well, why not just move it to a later milestone then? You're
a lot less likely to forget it. If it's really needed, a keyword would
be better.
Some people can't use blank milestones to mean an untargetted milestone,
since they use this to assess new bugs that have no target. Hence, it
would be nice to distinguish between bugs that have not yet been
considered, and those that really are not assigned to any milestone in
the future (assumedly beyond).
All this is covered at
"http://bugzilla.mozilla.org/show_bug.cgi?id=13534".
4. Create An Enhancement Field
Currently enhancement is an option in severity. This means that
important enhancements (like for example, POP3 support) are not properly
distinguished as such, because they need a proper severity. This
dilutes the meaning of enhancement.
If enhancement was separated, we could properly see what was an
enhancement. See "http://bugzilla.mozilla.org/show_bug.cgi?id=9412". I
see keywords like [RFE] and [FEATURE] that seem to be compensating for
this problem.
</literallayout></para>
</section>
<section id="dbaseintegrity">
<title>Database Integrity</title>
<para><literallayout>
Bugzilla could be more proactive in detecting suboptimal situations and
prevent them or whine about them.
1. Bugzilla Crime #1: Marking A Bug Fixed With Unresolved Dependencies
It can't be marked fixed with unresolved dependencies. Either mark it
INVALID (tracking bugs), fix the dependencies at the same time, or
resolve the blockers.
See "http://bugzilla.mozilla.org/show_bug.cgi?id=24496".
2. Keyword Restrictions
Some keywords should only apply in certain circumstances, eg beta1 =>
Milestone <
M14, css1 => Component = Style System are possibilities. See
"http://bugzilla.mozilla.org/show_bug.cgi?id=26940".
3. Whine About Old Votes
Old votes can just sit on resolved bugs. This is problematic with
duplicates especially. Automatic transferral/removal is not
appropriate since bugs can be reopened, but a whining solution might
work. See "http://bugzilla.mozilla.org/show_bug.cgi?id=27553".
4. Whine And Warn About Milestone Mismatches
Here's a fun one. Bug X (M17) depends on Bug Y (M15). Bug Y gets moved
out to M19. The notification to the assignee of Bug X gets ignored (of
course) and Bug X is now due to be fixed before one of its blockers.
Warnings about this when it is detected as well as whining about it in
email would help bring these issues to the attention of people sooner.
Note that this would be less of a problem if we didn't have so many
tracking bugs since they aren't updated that often and often have this
problem.
See "http://bugzilla.mozilla.org/show_bug.cgi?id=16743".
</literallayout></para>
</section>
<section id="bz30">
<title>Bugzilla 3.0</title>
<para>One day, Bugzilla 3.0 will have lots of cool stuff.</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="gfdl">
<title>GNU Free Documentation License</title>
<!-- - GNU Project - Free Software Foundation (FSF) -->
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
<!-- sect1>
<title>GNU Free Documentation License</title -->
<para>Version 1.1, March 2000</para>
<blockquote>
<para>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.</para>
</blockquote>
<sect1 label="0" id="gfdl_0">
<title>PREAMBLE</title>
<para>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.</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="1" id="gfdl_1">
<title>APPLICABILITY AND DEFINITIONS</title>
<para>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".</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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".</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="2" id="gfdl_2">
<title>VERBATIM COPYING</title>
<para>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.</para>
<para>You may also lend copies, under the same conditions stated
above, and you may publicly display copies.</para>
</sect1>
<sect1 label="3" id="gfdl_3">
<title>COPYING IN QUANTITY</title>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="4" id="gfdl_4">
<title>MODIFICATIONS</title>
<para>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:</para>
<orderedlist numeration="upperalpha">
<listitem><para>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.</para>
</listitem>
<listitem><para>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).</para>
</listitem>
<listitem><para>State on the Title page
the name of the publisher of the Modified Version, as the
publisher.</para>
</listitem>
<listitem><para>Preserve all the
copyright notices of the Document.</para>
</listitem>
<listitem><para>Add an appropriate
copyright notice for your modifications adjacent to the other
copyright notices.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>Preserve in that license
notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.</para>
</listitem>
<listitem><para>Include an unaltered
copy of this License.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>Delete any section
entitled "Endorsements". Such a section may not be included in
the Modified Version.</para>
</listitem>
<listitem><para>Do not retitle any
existing section as "Endorsements" or to conflict in title with
any Invariant Section.</para>
</listitem>
</orderedlist>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>The author(s) and publisher(s) of the Document do not by
this License give permission to use their names for publicity for
or to assert or imply endorsement of any Modified Version.</para>
</sect1>
<sect1 label="5" id="gfdl_5">
<title>COMBINING DOCUMENTS</title>
<para>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.</para>
<para>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.</para>
<para>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."</para>
</sect1>
<sect1 label="6" id="gfdl_6">
<title>COLLECTIONS OF DOCUMENTS</title>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="7" id="gfdl_7">
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="8" id="gfdl_8">
<title>TRANSLATION</title>
<para>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.</para>
</sect1>
<sect1 label="9" id="gfdl_9">
<title>TERMINATION</title>
<para>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.</para>
</sect1>
<sect1 label="10" id="gfdl_10">
<title>FUTURE REVISIONS OF THIS LICENSE</title>
<para>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 <ulink
url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
<para>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.</para>
</sect1>
<sect1 label="" id="gfdl_howto">
<title>How to use this License for your documents</title>
<para>To use this License in a document you have written, include
a copy of the License in the document and put the following
copyright and license notices just after the title page:</para>
<blockquote><para>
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".
</para></blockquote>
<para>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.</para>
<para>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.</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-parent-document: ("Bugzilla-Guide.sgml" "appendix")
sgml-exposed-tags:nil
sgml-local-ecat-files:nil
sgml-local-catalogs: CATALOG
sgml-validate-command: "nsgmls -s gfdl.sgml"
ispell-skip-sgml: t
End:
-->
<!-- <!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<glossary id="glossary">
<glossdiv id="gloss_a">
<title>A</title>
<glossentry>
<glossterm>There are no entries for A</glossterm>
<glossdef>
<para></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_b">
<title>B</title>
<glossentry>
<glossterm>Bug</glossterm>
<glossdef>
<para>A "Bug" in Bugzilla refers to an issue entered into the database which has an associated number, assignments, comments, etc. Many also refer to a "Ticket" or "Issue"; in this context, they are synonymous.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Bug Number</glossterm>
<glossdef>
<para>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.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Bug Life Cycle</glossterm>
<glossdef>
<para>A Bug has stages through which it must pass before becoming a "closed bug", including acceptance, resolution, and verification. The "Bug Life Cycle" is moderately flexible according to the needs of the organization using it, though.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_i">
<title>I</title>
<glossentry id="gloss_infiniteloop">
<glossterm>Infinite Loop</glossterm>
<glosssee otherterm="gloss_recursion">
</glossentry>
</glossdiv>
<glossdiv id="gloss_p">
<title>P</title>
<glossentry>
<glossterm id="gloss_product">Product</glossterm>
<glossdef>
<para>A Product is a broad category of types of bugs. In general, there are several Components to a Product. A Product also defines a default Group (used for Bug Security) for all bugs entered into components beneath it.</para>
<example>
<title>A Sample Product</title>
<para>A company sells a software product called "X". They also maintain some older software called "Y", and have a secret project "Z". An effective use of Products might be to create Products "X", "Y", and "Z", each with Components "User Interface", "Database", and "Business Logic". They might also change group permissions so that only those people who are members of Group "Z" can see components and bugs under Product "Z".</para>
</example>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_q">
<title>Q</title>
<glossentry>
<glossterm>Q/A</glossterm>
<glossdef>
<para>"Q/A" is short for "Quality Assurance". 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 "Q/A Contact" field in a Bug.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_r">
<title>R</title>
<glossentry>
<glossterm id="gloss_recursion">Recursion</glossterm>
<glosssee otherterm="gloss_infiniteloop">
</glossentry>
</glossdiv>
<glossdiv id="gloss_z">
<title>Z</title>
<glossentry>
<glossterm>Zarro Boogs Found</glossterm>
<glossdef>
<para>This is the cryptic response sent by Bugzilla when a query returned no results. It is just a goofy way of saying "Zero Bugs Found".</para>
</glossdef>
</glossentry>
</glossdiv>
</glossary>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<CHAPTER id="installation">
<TITLE>Installing Bugzilla</TITLE>
<SECTION id="README.unix">
<TITLE>UNIX Installation</TITLE>
<NOTE>
<PARA>
Please consult the README included with the Bugzilla distribution
as the current canonical source for UNIX installation instructions.
We do, however, have some installation notes for errata from the README.
</PARA>
</NOTE>
<NOTE>
<PARA>
If you are installing Bugzilla on S.u.S.e. Linux, or some other
distributions with "paranoid" security options, it is possible
that the checksetup.pl script may fail with the error:
<ERRORNAME>cannot chdir(/var/spool/mqueue): Permission denied</ERRORNAME>
This is because your
/var/spool/mqueue directory has a mode of "drwx------". Type
<COMMAND>chmod 755 /var/spool/mqueue</COMMAND> as root to fix this problem.
</PARA>
</NOTE>
<NOTE>
<PARA>
</PARA>
</NOTE>
</SECTION>
<SECTION id="README.windows">
<TITLE>Win32 (Win98+/NT/2K) Installation</TITLE>
<PARA>
These directions have <EMPHASIS>not</EMPHASIS> been extensively tested.
We need testers! Please try these out and post any changes to the
newsgroup.
</PARA>
<SECTION id="ntverified">
<TITLE>Win32 Installation: Step-by-step</TITLE>
<NOTE>
<PARA>
You should be familiar with, and cross-reference, the UNIX README
while performing your Win32 installation. Unfortunately, Win32
directions are not yet as detailed as those for UNIX.
</PARA>
<PARA>
The <EMPHASIS>most critical</EMPHASIS> difference for Win32 users is
the lack of support for a crypt() function in MySQL for Windows. It does not
have it! All ENCRYPT statements must be modified.
</PARA>
</NOTE>
<PROCEDURE>
<STEP>
<PARA>
Install <ULINK URL="http://www.apache.org/">Apache Web Server</ULINK>
for Windows.
</PARA>
<NOTE>
<PARA>
You may also use Internet Information Server or Personal Web
Server for this purpose. However, setup is slightly more
difficult. If ActivePerl doesn't seem to handle your file
associations correctly (for .cgi and .pl files), please
consult the FAQ, in the "Win32" section.
</PARA>
<PARA>
If you are going to use IIS, if on Windows NT you must be updated
to at least Service Pack 4.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Install <ULINK URL="http://www.activestate.com/">ActivePerl</ULINK>
</PARA>
<PARA>
Please also check the following links to fully understand the status
of ActivePerl on Win32:
<ULINK URL="http://language.perl.com/newdocs/pod/perlport.html">
Perl Porting</ULINK>, and
<ULINK URL="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html">
Hixie Click Here</ULINK>
</PARA>
</STEP>
<STEP>
<PARA>
Use ppm from your perl\bin directory to install the following packs: DBI,
DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, and GD. You may need
to extract them from .zip format using Winzip or other unzip program first.
These additional ppm modules can be downloaded from ActiveState.
</PARA>
<PARA>
The syntax for ppm is:
<COMPUTEROUTPUT>
<PROMPT>C:> </PROMPT><COMMAND>ppm install &lt;module&gt;.ppd</COMMAND>
</COMPUTEROUTPUT>
</PARA>
<PARA>
You can find ActiveState ppm modules at
<ULINK URL="http://www.activestate.com/PPMPackages/5.6plus/">
http://www.activestate.com/PPMPackages/5.6plus</ULINK>
</PARA>
</STEP>
<STEP>
<PARA>
Download and install the Windows GNU tools from
<ULINK URL="http://www.cygwin.com/">www.cygwin.com</ULINK>.
Make sure the GNU utilities are in your $PATH.
</PARA>
</STEP>
<STEP>
<PARA>
Install MySQL for NT.
<NOTE>
<PARA>
Your configuration file for MySQL <EMPHASIS>must</EMPHASIS> be named C:\MY.CNF.
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
Setup MySQL
</PARA>
<SUBSTEPS>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>C:> </PROMPT>
<COMMAND>C:\mysql\bin\mysql -u root mysql</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>DELETE FROM user WHERE Host='localhost' AND User='';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>UPDATE user SET Password=PASSWORD ('new_password')
WHERE user='root';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>GRANT SELECT, INSERT, UPDATE, DELETE,
INDEX, ALTER, CREATE, DROP, REFERENCES
ON bugs.* to bugs@localhost
IDENTIFIED BY 'bugs_password';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>FLUSH PRIVILEGES;</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>create database bugs;</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>exit</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>C:></PROMPT>
<COMMAND>C:\mysql\bin\mysqladmin -u root -p reload</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
</SUBSTEPS>
</STEP>
<STEP>
<PARA>
Configure Bugzilla. For Win32, this involves editing "defparams.pl"
and "localconfig" to taste. Running "checksetup.pl" should create
localconfig for you. Note that getgrnam() doesn't work, and should be
deleted. Change this line:
"my $webservergid = getgrnam($my_webservergroup); "
to
"my $webservergid = $my_webservergroup; "
</PARA>
</STEP>
<STEP>
<NOTE>
<PARA>
There are several alternatives to Sendmail that will work on Win32.
The one mentioned here is a <EMPHASIS>suggestion</EMPHASIS>, not
a requirement. Some other mail packages that can work include
<ULINK URL="http://www.blat.net/">BLAT</ULINK>,
<ULINK URL="http://www.geocel.com/windmail/">Windmail</ULINK>,
<ULINK URL="http://www.dynamicstate.com/">Mercury Sendmail</ULINK>,
and the CPAN Net::SMTP Perl module (available in .ppm).
Every option requires some hacking of the Perl scripts for Bugzilla
to make it work. The option here simply requires the least.
</PARA>
</NOTE>
<PARA>
Download NTsendmail, available from<ULINK URL="http://www.ntsendmail.com/">
www.ntsendmail.com</ULINK>. In order for it to work, you must set up some
new environment variables (detailed on the ntsendmail home page). Figuring
out where to put those variables is left as an exercise for the reader.
You must have a "real" mail server which allows you to relay off it
in your $ENV{"NTsendmail"} (which you should probably place in globals.pl)
</PARA>
<PARA>
Once downloaded and installed, modify all open(SENDMAIL) calls to open
"| c:\ntsendmail\ntsendmail -t" instead of "|/usr/lib/sendmail -t".
</PARA>
<NOTE>
<PARA>
We need someone to test this and make sure this works as advertised.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Modify globals.pl and CGI.pl to remove the word "encrypt".
</PARA>
<NOTE>
<PARA>
I'm not sure this is all that is involved to remove crypt. Any
NT Bugzilla hackers want to pipe up?
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Change all references to "processmail" to "processmail.pl" in
all files, and rename "processmail" to "processmail.pl"
</PARA>
<NOTE>
<PARA>
I really think this may be a change we want to make for
main-tree Bugzilla. It's painless for the UNIX folks,
and will make the Win32 people happier.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Modify the path to perl on the first line (#!) of all files
to point to your Perl installation, and
add "perl" to the beginning of all Perl system calls that
use a perl script as an argument. This may take you a while.
There is a "setperl.pl" utility to speed part of this procedure,
available in the "Patches and Utilities" section of The Bugzilla Guide.
</PARA>
</STEP>
<STEP>
<PARA>
In processmail.pl, add "binmode(HANDLE)" before all read() calls.
This may not be necessary, but in some cases the read() under
Win32 doesn't count the EOL's without using a binary read().
</PARA>
</STEP>
</PROCEDURE>
</SECTION>
<SECTION id="addlwintips">
<TITLE>Additional Windows Tips</TITLE>
<TIP>
<PARA>
From Andrew Pearson:
<BLOCKQUOTE>
<PARA>
"You can make Bugzilla work with Personal Web Server for
Windows 98 and higher, as well as for IIS 4.0. Microsoft has
information available at
<ULINK URL=" http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP">
http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</ULINK>
</PARA>
<PARA>
Basically you need to add two String Keys in the
registry at the following location:
</PARA>
<PARA>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
</PARA>
<PARA>
The keys should be called ".pl" and ".cgi", and both
should have a value something like:
<COMMAND>c:/perl/bin/perl.exe "%s" "%s"</COMMAND>
</PARA>
<PARA>
The KB article only talks about .pl, but it goes into
more detail and provides a perl test script.
</PARA>
</BLOCKQUOTE>
</PARA>
</TIP>
</SECTION>
</SECTION>
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<!-- Keep these tools listings in alphabetical order please. -MPB -->
<chapter id="integration">
<title>Integrating Bugzilla with Third-Party Tools</title>
<section id="bonsai">
<title>Bonsai</title>
<para>We need Bonsai integration information.</para>
</section>
<section id="cvs">
<title>CVS</title>
<para>We need CVS integration information</para>
</section>
<section id="scm">
<title>Perforce SCM</title>
<para>
Richard Brooksby and his team have an integration tool
in public beta. You can find it at
<ulink url="http://www.ravenbrook.com/project/p4dt">
http://www.ravenbrook.com/project/p4dti</ulink>.
</para>
</section>
<section id="tinderbox">
<title>Tinderbox</title>
<para>We need Tinderbox integration information</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="patches">
<title>Useful Patches and Utilities for Bugzilla</title>
<section id="setperl">
<title>The setperl.pl Utility</title>
<para>
You can use the "setperl.pl" utility to quickly and easily
change the path to perl on all your Bugzilla files.
</para>
<procedure>
<step>
<para>
Download the "setperl.pl" utility to your Bugzilla
directory and make it executable.
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>cd /your/path/to/bugzilla</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O setperl.pl 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=10795'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x setperl.pl</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Prepare (and fix) Bugzilla file permissions.
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+w *</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x duplicates.cgi</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod a-x bug_status.html</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Run the script:
</para>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>./setperl.pl /your/path/to/perl</command>
</computeroutput>
</para>
</step>
</procedure>
</section>
<section id="cmdline">
<title>Command-line Bugzilla Queries</title>
<para>
Users can query Bugzilla from the command line using
this suite of utilities.
</para>
<para>
The query.conf file contains the mapping from options to field
names and comparison types. Quoted option names are "grepped" for, so
it should be easy to edit this file. Comments (#) have no effect; you
must make sure these lines do not contain any quoted "option"
</para>
<para>
buglist is a shell script which submits a Bugzilla query and writes the
resulting HTML page to stdout. It supports both short options,
(such as "-Afoo" or "-Rbar") and long options (such as
"--assignedto=foo" or "--reporter=bar"). If the first character
of an option is not "-", it is treated as if it were prefixed
with "--default=".
</para>
<para>
The columlist is taken from the COLUMNLIST environment variable.
This is equivalent to the "Change Columns" option when you list
bugs in buglist.cgi. If you have already used Bugzilla, use
<command>grep COLUMLIST ~/.netscape/cookies</command> to see
your current COLUMNLIST setting.
</para>
<para>
bugs is a simple shell script which calls buglist and extracts
the bug numbers from the output. Adding the prefix
"http://bugzilla.mozilla.org/buglist.cgi?bug_id="
turns the bug list into a working link if any bugs are found.
Counting bugs is easy. Pipe the results through
<command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command>
</para>
<para>
Akkana says she has good results piping buglist output through
<command>w3m -T text/html -dump</command>
</para>
<procedure>
<step>
<para>
Download three files:
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O query.conf 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O buglist 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O bugs 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215'</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Make your utilities executable:
<computeroutput>
<prompt>bash$</prompt>
<command>chmod u+x buglist bugs</command>
</computeroutput>
</para>
</step>
</procedure>
</section>
<section id="quicksearch">
<title>The Quicksearch Utility</title>
<para>
Quicksearch is a new, experimental feature of the 2.12 release.
It consist of two Javascript files, "quicksearch.js" and "localconfig.js",
and two documentation files, "quicksearch.html" and "quicksearchhack.html"
</para>
<para>
The index.html page has been updated to include the QuickSearch text box.
</para>
<para>
To take full advantage of the query power, the Bugzilla maintainer must
edit "localconfig.js" according to the value sets used in the local installation.
</para>
<para>
Currently, keywords must be hard-coded in localconfig.js. If they are not,
keywords are not automatically recognized. This means, if localconfig.js
is left unconfigured, that searching for a bug with the "foo" keyword
will only find bugs with "foo" in the summary, status whiteboard, product or
component name, but not those with the keyword "foo".
</para>
<para>
Workarounds for Bugzilla users:
<simplelist>
<member>search for '!foo' (this will find only bugs with the keyword "foo"</member>
<member>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</member>
</simplelist>
</para>
<para>
When this tool is ported from client-side JavaScript to server-side Perl,
the requirement for hard-coding keywords can be fixed.
<ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">This bug</ulink>
has details.
</para>
</section>
</appendix>
\ No newline at end of file
This is Bugzilla. See <http://www.mozilla.org/bugs/>.
==========
DISCLAIMER
==========
This is not very well packaged code. It's not packaged at all. Don't
come here expecting something you plop in a directory, twiddle a few
things, and you're off and using it. Work has to be done to get there.
We'd like to get there, but it wasn't clear when that would be, and so we
decided to let people see it first.
Bugzilla has not undergone a complete security review. Security holes
may exist in the code. Great care should be taken both in the installation
and usage of this software. Carefully consider the implications of
installing other network services with Bugzilla.
============
INSTALLATION
============
0. Introduction
Installation of bugzilla is pretty straight forward, especially if your
machine already has MySQL and the MySQL-related perl packages installed.
If those aren't installed yet, then that's the first order of business. The
other necessary ingredient is a web server set up to run cgi scripts.
Bugzilla has been successfully installed under Solaris and Linux. Windows NT
is not officially supported. There have been a few successful installations
of Bugzilla under Windows NT. Please see this article for a discussion of what
one person hacked together to get it to work.
news://news.mozilla.org/19990913183810.SVTR29939.mta02@onebox.com
1. Installing the Prerequisites
The software packages necessary for the proper running of bugzilla are:
1. MySQL database server and the mysql client (3.22.5 or greater)
2. Perl (5.004 or greater)
3. DBI Perl module
4. Data::Dumper Perl module
5. MySQL related Perl module collection
6. TimeDate Perl module collection
7. GD perl module (1.18 or 1.19)
8. Chart::Base Perl module (0.99 through 0.99b)
9. The web server of your choice
Bugzilla has quite a few prerequisites, but none of them are TCL.
Previous versions required TCL, but it no longer needed (or used).
1.1. Getting and setting up MySQL database (3.22.5 or greater)
Visit MySQL homepage at http://www.mysql.org and grab the latest stable
release of the server. Both binaries and source are available and which
you get shouldn't matter. Be aware that many of the binary versions
of MySQL store their data files in /var which on many installations
(particularly common with linux installations) is part of a smaller
root partition. If you decide to build from sources you can easily set
the dataDir as an option to configure.
If you've installed from source or non-package (RPM, deb, etc.) binaries
you'll want to make sure to add mysqld to your init scripts so the server
daemon will come back up whenever your machine reboots.
You also may want to edit those init scripts, to make sure that
mysqld will accept large packets. By default, mysqld is set up to only
accept packets up to 64K long. This limits the size of attachments you
may put on bugs. If you add something like "-O max_allowed_packet=1M"
to the command that starts mysqld (or safe_mysqld), then you will be
able to have attachments up to about 1 megabyte.
1.2. Perl (5.004 or greater)
Any machine that doesn't have perl on it is a sad machine indeed. Perl
for *nix systems can be gotten in source form from http://www.perl.com.
Perl is now a far cry from the the single compiler/interpreter binary it
once was. It now includes a great many required modules and quite a
few other support files. If you're not up to or not inclined to build
perl from source, you'll want to install it on your machine using some
sort of packaging system (be it RPM, deb, or what have you) to ensure
a sane install. In the subsequent sections you'll be installing quite
a few perl modules; this can be quite ornery if your perl installation
isn't up to snuff.
1.3. DBI Perl module
The DBI module is a generic Perl module used by other database related
Perl modules. For our purposes it's required by the MySQL-related
modules. As long as your Perl installation was done correctly the
DBI module should be a breeze. It's a mixed Perl/C module, but Perl's
MakeMaker system simplifies the C compilation greatly.
Like almost all Perl modules DBI can be found on the Comprehensive Perl
Archive Network (CPAN) at http://www.cpan.org . The CPAN servers have a
real tendency to bog down, so please use mirrors. The current location
at the time of this writing (02/17/99) can be found in Appendix A.
Quality, general Perl module installation instructions can be found on
the CPAN website, but basically you'll just need to:
1. Untar the module tarball -- it should create its own directory
2. Enter the following commands:
perl Makefile.PL
make
make test
make install
If everything went ok that should be all it takes. For the vast
majority of perl modules this is all that's required.
1.4 Data::Dumper Perl module
The Data::Dumper module provides data structure persistence for Perl
(similar to Java's serialization). It comes with later sub-releases of
Perl 5.004, but a re-installation just to be sure it's available won't
hurt anything.
Data::Dumper is used by the MySQL related Perl modules. It can be
found on CPAN (link in Appendix A) and can be installed by following
the same four step make sequence used for the DBI module.
1.5. MySQL related Perl module collection
The Perl/MySQL interface requires a few mutually-dependent perl
modules. These modules are grouped together into the the
Msql-Mysql-modules package. This package can be found at CPAN (link
in Appendix A). After the archive file has been downloaded it should
be untarred.
The MySQL modules are all build using one make file which is generated
by running:
perl Makefile.PL
The MakeMaker process will ask you a few questions about the desired
compilation target and your MySQL installation. For many of the questions
the provided default will be adequate.
When asked if your desired target is the MySQL or mSQL packages
selected the MySQL related ones. Later you will be asked if you wish
to provide backwards compatibility with the older MySQL packages; you
must answer YES to this question. The default will be no, and if you
select it things won't work later.
A host of 'localhost' should be fine and a testing user of 'test' and
a null password should find itself with sufficient access to run tests
on the 'test' database which MySQL created upon installation. If 'make
test' and 'make install' go through without errors you should be ready
to go as far as database connectivity is concerned.
1.6. TimeDate Perl module collection
Many of the more common date/time/calendar related Perl modules have
been grouped into a bundle similar to the MySQL modules bundle. This
bundle is stored on the CPAN under the name TimeDate. A (hopefully
current) link can be found in Appendix A. The component module we're
most interested in is the Date::Format module, but installing all of them
is probably a good idea anyway. The standard Perl module installation
instructions should work perfectly for this simple package.
1.7. GD Perl module (1.18 or 1.19)
The GD library was written by Thomas Boutell a long while ago to
programatically generate images in C. Since then it's become almost a
defacto standard for programatic image construction. The Perl bindings
to it found in the GD library are used on a million web pages to generate
graphs on the fly. That's what bugzilla will be using it for so you'd
better install it if you want any of the graphing to work.
Actually bugzilla uses the Graph module which relies on GD itself,
but isn't that always the way with OOP. At any rate, you can find the
GD library on CPAN (link in Appendix A). Note, however, that you MUST
use version 1.18 or 1.19, because newer versions have dropped support
for GIFs in favor of PNGs, and bugzilla has not yet been updated to
deal with this.
1.8. Chart::Base Perl module (0.99 through 0.99b)
The Chart module provides bugzilla with on-the-fly charting
abilities. It can be installed in the usual fashion after it has been
fetched from CPAN where it is found as the Chart-x.x... tarball in a
directory to be listed in Appendix A. Note that as with the GD perl
module, only the specific versions listed above will work.
1.9. HTTP server
You have a freedom of choice here - Apache, Netscape or any other
server on UNIX would do. You can easily run the web server on a different
machine than MySQL, but that makes MySQL permissions harder to manage.
You'll want to make sure that your web server will run any file
with the .cgi extension as a cgi and not just display it. If you're using
apache that means uncommenting the following line in the srm.conf file:
AddHandler cgi-script .cgi
With apache you'll also want to make sure that within the access.conf
file the line:
Options ExecCGI
is in the stanza that covers the directories you intend to put the
bugzilla .html and .cgi files into.
2. Installing the Bugzilla Files
You should untar the bugzilla files into a directory that you're
willing to make writable by the default web server user (probably
'nobody'). You may decide to put the files off of the main web space
for your web server or perhaps off of /usr/local with a symbolic link
in the web space that points to the bugzilla directory. At any rate,
just dump all the files in the same place (optionally omitting the CVS
directory if it accidentally got tarred up with the rest of bugzilla)
and make sure you can get at the files in that directory through your
web server.
Once all the files are in a web accessible directory, make that
directory writable by your webserver's user (which may require just
making it world writable).
Lastly, you'll need to set up a symbolic link from /usr/bonsaitools/bin
to the correct location of your perl executable (probably /usr/bin/perl).
Or, you'll have to hack all the .cgi files to change where they look
for perl.
3. Setting Up the MySQL database
After you've gotten all the software installed and working you're ready
to start preparing the database for its life as a the back end to a high
quality bug tracker.
First, you'll want to fix MySQL permissions. Bugzilla always logs
in as user "bugs", with no password. That needs to work. MySQL
permissions are a deep, nasty complicated thing. I've just turned
them off. If you want to do that, too, then the magic is to do run
"mysql mysql", and feed it commands like this (replace all instances of
HOSTNAME with the name of the machine mysql is running on):
DELETE FROM host;
DELETE FROM user;
INSERT INTO host VALUES
('localhost','%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO host VALUES
(HOSTNAME,'%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y');
INSERT INTO user VALUES
(HOSTNAME,'','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y');
INSERT INTO user VALUES
(HOSTNAME,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y');
INSERT INTO user VALUES
('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y');
The number of 'Y' entries to use varies with the version of MySQL; they
keep adding columns. The list here should work with version 3.22.23b.
This run of "mysql mysql" may need some extra parameters to deal with
whatever database permissions were set up previously. In particular,
you might have to say "mysql -uroot mysql", and give it an appropriate
password.
For much more information about MySQL permissions, see the MySQL
documentation.
After you've tweaked the permissions, run "mysqladmin reload" to make
sure that the database server knows to look at your new permission list.
Or, at the mysql prompt:
mysql> flush privileges;
You must explictly tell mysql to reload permissions before running checksetup.pl.
Next, you can just run the magic checksetup.pl script. (Many thanks
to Holger Schurig <holgerschurig@nikocity.de> for writing this script!)
It will make sure things have reasonable permissions, set up the "data"
directory, and create all the MySQL tables. Just run:
./checksetup.pl
The first time you run it, it will create a file called "localconfig"
which you should examine and perhaps tweak a bit. Then re-run
checksetup.pl and it will do the real work.
At ths point, you should have a nearly empty copy of the bug tracking
setup.
4. Tweaking the Bugzilla->MySQL Connection Data
If you have played with MySQL permissions, rather than just opening it
wide open as described above, then you may need to tweak the Bugzilla
code to connect appropriately.
In order for bugzilla to be able to connect to the MySQL database
you'll have to tell bugzilla where the database server is, what
database you're connecting to, and whom to connect as. Simply open up
the globals.pl file in the bugzilla directory and find the line that
begins like:
$::db = Mysql->Connect("
That line does the actual database connection. The Connect method
takes four parameters which are (with appropriate values):
1. server's host: just use "localhost"
2. database name: "bugs" if you're following these directions
3. MySQL username: whatever you created for your webserver user
probably "nobody"
4. Password for the MySQL account in item 3.
Just fill in those values and close up globals.pl
5. Setting up yourself as Maintainer
Start by creating your own bugzilla account. To do so, just try to
"add a bug" from the main bugzilla menu (now available from your system
through your web browser!). You'll be prompted for logon info, and you
should enter your email address and then select 'mail me my password'.
When you get the password mail, log in with it. Don't finish entering
that new bug.
Now, add yourself to every group. The magic checksetup.pl script
can do this for you, if you run it again now. That script will notice
if there's exactly one user in the database, and if so, add that person
to every group.
If you want to add someone to every group by hand, you can do it by
typing the appropriate MySQL commands. Run mysql, and type:
update profiles set groupset=0x7fffffffffffffff
where login_name = 'XXX';
replacing XXX with your Bugzilla email address.
Now, if you go to the query page (off of the bugzilla main menu) where
you'll now find a 'edit parameters' option which is filled with editable
treats.
6. Setting Up the Whining Cron Job (Optional)
By now you've got a fully functional bugzilla, but what good are bugs
if they're not annoying? To help make those bugs more annoying you can
set up bugzilla's automatic whining system. This can be done by adding
the following command as a daily crontab entry (for help on that see that
crontab man page):
cd <your-bugzilla-directory> ; ./whineatnews.pl
7. Bug Graphs (Optional)
As long as you installed the GD and Graph::Base Perl modules you might
as well turn on the nifty bugzilla bug reporting graphs. Just add
the command:
cd <your-bugzilla-directory> ; ./collectstats.pl
as a nightly entry to your crontab and after two days have passed you'll
be able to view bug graphs from the Bug Reports page.
8. Real security for MySQL
MySQL has "interesting" default security parameters:
mysqld defaults to running as root
it defaults to allowing external network connections
it has a known port number, and is easy to detect
it defaults to no passwords whatsoever
it defaults to allowing "File_Priv"
This means anyone from anywhere on the internet can not only drop the
database with one SQL command, and they can write as root to the system.
To see your permissions do:
> mysql -u root -p
use mysql;
show tables;
select * from user;
select * from db;
To fix the gaping holes:
DELETE FROM user WHERE User='';
UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
FLUSH PRIVILEGES;
If you're not running "mit-pthreads" you can use:
GRANT USAGE ON *.* TO bugs@localhost;
GRANT ALL ON bugs.* TO bugs@localhost;
REVOKE DROP ON bugs.* FROM bugs@localhost;
FLUSH PRIVILEGES;
With "mit-pthreads" you'll need to modify the "globals.pl" Mysql->Connect
line to specify a specific host name instead of "localhost", and accept
external connections:
GRANT USAGE ON *.* TO bugs@bounce.hop.com;
GRANT ALL ON bugs.* TO bugs@bounce.hop.com;
REVOKE DROP ON bugs.* FROM bugs@bounce.hop.com;
FLUSH PRIVILEGES;
Consider also:
o Turning off external networking with "--skip-networking",
unless you have "mit-pthreads", in which case you can't.
Without networking, MySQL connects with a Unix domain socket.
o using the --user= option to mysqld to run it as an unprivileged
user.
o starting MySQL in a chroot jail
o running the httpd in a jail
o making sure the MySQL passwords are different from the OS
passwords (MySQL "root" has nothing to do with system "root").
o running MySQL on a separate untrusted machine
o making backups ;-)
---------[ Appendices ]-----------------------
Appendix A. Required Software Download Links
All of these sites are current as of February 17, 1999. Hopefully
they'll stay current for a while.
MySQL: http://www.mysql.org
Perl: http://www.perl.org
CPAN: http://www.cpan.org
DBI Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/DBI/
Data::Dumper module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Data/
MySQL related Perl modules:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Mysql/
TimeDate Perl module collection:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Date/
GD Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/GD/
Chart::Base module:
ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Chart/
Appendix B. Modifying Your Running System
Bugzilla optimizes database lookups by storing all relatively static
information in the versioncache file, located in the data/ subdirectory
under your installation directory (we said before it needs to be writable,
right?!)
If you make a change to the structural data in your database (the
versions table for example), or to the "constants" encoded in
defparams.pl, you will need to remove the cached content from the data
directory (by doing a "rm data/versioncache"), or your changes won't show
up!
That file gets automatically regenerated whenever it's more than an
hour old, so Bugzilla will eventually notice your changes by itself, but
generally you want it to notice right away, so that you can test things.
Appendix C. Upgrading from previous versions of Bugzilla
The developers of Bugzilla are constantly adding new tables, columns and
fields. You'll get SQL errors if you just update the code. The strategy
to update is to simply always run the checksetup.pl script whenever
you upgrade your installation of Bugzilla. If you want to see what has
changed, you can read the comments in that file, starting from the end.
Appendix D. History
This document was originally adapted from the Bonsai installation
instructions by Terry Weissman <terry@mozilla.org>.
The February 25, 1999 re-write of this page was done by Ry4an Brase
<ry4an@ry4an.org>, with some edits by Terry Weissman, Bryce Nesbitt,
Martin Pool, & Dan Mosedale (But don't send bug reports to them!
Report them using bugzilla, at http://bugzilla.mozilla.org/enter_bug.cgi ,
project Webtools, component Bugzilla).
Comments from people using this document for the first time are
especially welcomed.
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!-- TOC
Chapter: Using Bugzilla
Create an account
Logging in
Setting up preferences
Account Settings
Email Settings
Page Footer
Permissions
Life cycle of a bug
Creating a bug
Checking for duplicates
Overview of all bug fields
Setting bug permissions
The Query Interface
Standard Queries
Email Queries
Boolean Queries
Regexp Queries
The Query Results
Changing Columns
Changing sorting order
Mass changes
Miscellaneous usage hints
-->
<chapter id="using">
<title>Using Bugzilla</title>
<epigraph>
<para>
What, Why, How, & What's in it for me?
</para>
</epigraph>
<section id="whatis">
<title>What is Bugzilla?</title>
<para>
Bugzilla is one example of a class of programs called "Defect Tracking Systems",
or, more commonly, "Bug-Tracking Systems". Defect Tracking Systems allow individual or
groups of developers to keep track of outstanding bugs in their product effectively.
At the time Bugzilla was originally written, as a port from Netscape Communications'
"Bugsplat!" program to Perl from TCL, there were very few competitors in the market
for bug-tracking software. Most commercial defect-tracking software vendors at the
time charged enormous licensing fees. Bugzilla quickly became a favorite of the
open-source crowd (with its genesis in the open-source browser project, Mozilla) and
is now the de-facto standard defect-tracking system against which all others are
measured.
</para>
<para>
Bugzilla has matured immensely, and now boasts many advanced features. These include:
<itemizedlist>
<listitem>
<para>
integrated, product-based granular security schema
</para>
</listitem>
<listitem>
<para>
inter-bug dependencies and dependency graphing
</para>
</listitem>
<listitem>
<para>
advanced reporting capabilities
</para>
</listitem>
<listitem>
<para>
a robust, stable RDBMS back-end
</para>
</listitem>
<listitem>
<para>
extensive configurability
</para>
</listitem>
<listitem>
<para>
a very well-understood and well-thought-out natural bug resolution protocol
</para>
</listitem>
<listitem>
<para>
email, XML, and HTTP APIs
</para>
</listitem>
<listitem>
<para>
integration with several automated software configuration management systems
</para>
</listitem>
<listitem>
<para>
too many more features to list
</para>
</listitem>
</itemizedlist>
</para>
<para>
Despite its current robustness and popularity, however, Bugzilla
faces some near-term challenges, such as reliance on a single database, a lack of
abstraction of the user interface and program logic, verbose email bug
notifications, a powerful but daunting query interface, little reporting configurability,
problems with extremely large queries, some unsupportable bug resolution options,
no internationalization, and dependence on some nonstandard libraries.
</para>
<para>
Despite these small problems, Bugzilla is very hard to beat. It is under <emphasis>very</emphasis>
active development to address the current issues, and a long-awaited overhaul in the form
of Bugzilla 3.0 is expected sometime later this year.
</para>
</section>
<section id="why">
<title>Why Should We Use Bugzilla?</title>
<epigraph>
<para>
No, Who's on first...
</para>
</epigraph>
<para>
For many years, defect-tracking software has remained principally the domain
of large software development houses. Even then, most shops never bothered
with bug-tracking software, and instead simply relied on shared lists and
email to monitor the status of defects. This procedure is error-prone and
tends to cause those bugs judged least significant by developers to be
dropped or ignored
</para>
<para>
These days, many companies are finding that integrated defect-tracking
systems reduce downtime, increase productivity, and raise customer
satisfaction with their systems. Along with full disclosure, an open
bug-tracker allows manufacturers to keep in touch with their clients
and resellers, to communicate about problems effectively throughout
the data management chain. Many corporations have also discovered that
defect-tracking helps reduce costs by providing IT support accountability,
telephone support knowledge bases, and a common, well-understood system
for accounting for unusual system or software issues.
</para>
<para>
But why should <emphasis>you</emphasis> use Bugzilla?
</para>
<para>
Bugzilla is very adaptable to various situations. Known uses currently
include IT support queues, Systems Administration deployment management,
chip design and development problem tracking (both pre-and-post fabrication),
and software bug tracking for luminaries such as Redhat, Loki software,
Linux-Mandrake, and VA Systems. Combined with systems such as CVS, Bonsai,
or Perforce SCM, Bugzilla provides a powerful, easy-to-use solution to
configuration management and replication problems
</para>
<para>
Bugzilla can dramatically increase the productivity and accountability
of individual employees by providing a documented workflow and positive
feedback for good performance. How many times do you wake up in the
morning, remembering that you were supposed to do *something* today,
but you just can't quite remember? Put it in Bugzilla, and you have a record
of it from which you can extrapolate milestones, predict product versions
for integration, and by using Bugzilla's e-mail integration features
be able to follow the discussion trail that led to critical decisions.
</para>
<para>
Ultimately, Bugzilla puts the power in your hands to improve your value
to your employer or business while providing a usable framework for your natural
attention to detail and knowledge store to flourish.
</para>
</section>
<section id="how">
<title>How do I use Bugzilla?</title>
<epigraph>
<para>
Hey! I'm Woody! Howdy, Howdy, Howdy!
</para>
</epigraph>
<para>
Bugzilla is a large and complex system. Describing how to use it
requires some time. If you are only interested in installing or administering
a Bugzilla installation, please consult the Installing and Administering
Bugzilla portions of this Guide. This section is principally aimed towards
developing end-user mastery of Bugzilla, so you may fully enjoy the benefits
afforded by using this reliable open-source bug-tracking software.
</para>
<para>
Throughout this portion of the Guide, we will refer to user account
options available at the Bugzilla test installation,
<ulink url="http://landfill.tequilarista.org/">
landfill.tequilarista.org</ulink>.
Although Landfill serves as a great introduction to Bugzilla, it does not offer
all the options you would have as a user on your own installation of Bugzilla,
nor can it do more than serve as a general introduction to Bugzilla.
However, please use it if you want to
follow this tutorial.
</para>
<section id="myaccount">
<title>Create a Bugzilla Account</title>
<para>
First thing's first! 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 the end-user Bugzilla experience, use this URL:
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/">
http://landfill.tequilarista.org/mozilla/bugzilla/</ulink>
</para>
<orderedlist>
<listitem>
<para>
Click the "Open a new Bugzilla account" link.
</para>
</listitem>
<listitem>
<para>
Enter your "E-mail address" and "Real Name" (or whatever name you want to call yourself)
in the spaces provided, then select the "Create Account" button.
</para>
</listitem>
<listitem>
<para>
Within 5-10 minutes, you should receive an email to the address you provided above,
which contains your login name (generally the same as the email address), and
a password you can use to access your account. This password is randomly generated,
and should be changed at your nearest opportunity (we'll go into how to do it later).
</para>
</listitem>
<listitem>
<para>
Click the "Log In" link in the yellow area at the bottom of the page in your browser,
then enter your "E-mail address" and "Password" you just received into the spaces provided,
and select "Login".
<note>
<para>
If you ever forget your password, you can come back to this page, enter your
"E-mail address", then select the "E-mail me a password" button to have your password
mailed to you again so that you can login.
</para>
</note>
<caution>
<para>
Many modern browsers include an "Auto-Complete" or "Form Fill" feature to
remember the user names and passwords you type in at many sites. Unfortunately,
sometimes they attempt to "guess" what you will put in as your password, and guess
wrong. If you notice a text box is already filled out, please overwrite the contents
of the text box so you can be sure to input the correct information.
</para>
</caution>
</para>
</listitem>
</orderedlist>
<para>
Congratulations! If you followed these directions, you now are the
proud owner of a user account on landfill.tequilarista.org (Landfill) or
your local Bugzilla install. You should now see in your browser a
page called the "Bugzilla Query Page". It may look daunting, but
with this Guide to walk you through it, you will master it in no time.
</para>
</section>
<section id="query">
<title>The Bugzilla Query Page</title>
<para>
The Bugzilla Query Page is the heart and soul of Bugzilla. It is the master
interface where you can find any bug report, comment, or patch currently in the Bugzilla
system. We'll go into how to create your own bug report later on.
</para>
<para>
There are efforts underway to simplify query usage. If you have a local installation
of Bugzilla 2.12 or higher, you should have "quicksearch.html" available
to use and simplify your searches. There is also, or shortly will be, a helper
for the query interface, called "queryhelp.cgi". Landfill tends to run the latest code,
so these two utilities should be available there for your perusal.
</para>
<para>
At this point, please visit the main Bugzilla site,
<ulink url="http://bugzilla.mozilla.org/query.cgi">
bugzilla.mozilla.org</ulink>, to see a more fleshed-out query page.
</para>
<para>
The first thing you need to notice about the Bugzilla Query Page is that
nearly every box you see on your screen has a hyperlink nearby, explaining what
it is or what it does. Near the upper-left-hand corner of your browser window
you should see the word "Status" underlined. Select it.
</para>
<para>
Notice the page that popped up? Every underlined word you see on your screen
is a hyperlink that will take you to context-sensitive help.
Click around for a while, and learn what everything here does. To return
to the query interface after pulling up a help page, use the "Back" button in
your browser.
</para>
<para>
I'm sure that after checking out the online help, you are now an Expert
on the Bugzilla Query Page. If, however, you feel you haven't mastered it yet,
let me walk you through making a few successful queries to find out what there
are in the Bugzilla bug-tracking system itself.
</para>
<orderedlist>
<listitem>
<para>
Ensure you are back on the "Bugzilla Query Page"
Do nothing in the boxes marked "Status", "Resolution", "Platform", "OpSys",
"Priority", or "Severity". The default query for "Status" is to find all bugs that
are NEW, ASSIGNED, or REOPENED, which is what we want. If you don't select anything
in the other 5 scrollboxes there, then you are saying that "any of these are OK";
we're not locking ourselves into only finding bugs on the "DEC" Platform, or "Windows 95"
OpSys (Operating System). You're smart, I think you have it figured out.
</para>
<para>
Basically, selecting <emphasis>anything</emphasis> on the query page narrows your search
down. Leaving stuff unselected, or text boxes unfilled, broadens your search!
</para>
</listitem>
<listitem>
<para>
You see the box immediately below the top six boxes that contains an "Email" text box,
with the words "matching as", a drop-down selection box, then some checkboxes with
"Assigned To" checked by default? This allows you to filter your search down based upon
email address. Let's put my email address in there, and see what happens.
</para>
<para>
Type "barnboy@trilobyte.net" in the top Email text box.
</para>
</listitem>
<listitem>
<para>
Let's narrow the search some more. Scroll down until you find the box with the word
"Program" over the top of it. This is where we can narrow our search down to only
specific products (software programs or product lines) in our Bugzilla database.
Please notice the box is a <emphasis>scrollbox</emphasis>. Using the down arrow on the
scrollbox, scroll down until you can see an entry called "Webtools". Select this entry.
</para>
</listitem>
<listitem>
<para>
Did you notice that some of the boxes to the right changed when you selected "Webtools"?
Every Program (or Product) has different Versions, Components, and Target Milestones associated
with it. A "Version" is the number of a software program.
<example>
<title>Some Famous Software Versions</title>
<informalexample>
<para>
Do you remember the hype in 1995 when Microsoft Windows 95(r) was released?
It may have been several years
ago, but Microsoft(tm) spent over $300 Million advertising this new Version of their
software. Three years later, they released Microsoft Windows 98(r),
another new version, to great fanfare, and then in 2000 quietly
released Microsoft Windows ME(Millenium Edition)(r).
</para>
<para>
Software "Versions" help a manufacturer differentiate
their current product from their
previous products. Most do not identify their products
by the year they were released.
Instead, the "original" version of their software will
often be numbered "1.0", with
small bug-fix releases on subsequent tenths of a digit. In most cases, it's not
a decimal number; for instance, often 1.9 is an <emphasis>older</emphasis> version
of the software than 1.11,
but is a <emphasis>newer</emphasis> version than 1.1.1.
</para>
<para>
In general, a "Version" in Bugzilla should refer to
<emphasis>released</emphasis>
products, not products that have not yet been released
to the public. Forthcoming products
are what the Target Milestone field is for.
</para>
</informalexample>
</example>
</para>
<para>
A "Component" is a piece of a Product.
It may be a standalone program, or some other logical
division of a Product or Program.
Normally, a Component has a single Owner, who is responsible
for overseeing efforts to improve that Component.
<example>
<title>Mozilla Webtools Components</title>
<informalexample>
<para>
Mozilla's "Webtools" Product is composed of several pieces (Components):
<simplelist>
<member><emphasis>Bonsai</emphasis>,
a tool to show recent changes to Mozilla</member>
<member><emphasis>Bugzilla</emphasis>,
a defect-tracking tool</member>
<member><emphasis>Build</emphasis>,
a tool to automatically compile source code
into machine-readable form</member>
<member><emphasis>Despot</emphasis>,
a program that controls access to the other Webtools</member>
<member><emphasis>LXR</emphasis>,
a utility that automatically marks up text files
to make them more readable</member>
<member><emphasis>MozBot</emphasis>,
a "robot" that announces changes to Mozilla in Chat</member>
<member><emphasis>TestManager</emphasis>,
a tool to help find bugs in Mozilla</member>
<member><emphasis>Tinderbox</emphasis>,
which displays reports from Build</member>
</simplelist>
</para>
<para>
A different person is responsible for each of these Components.
Tara Hernandez keeps
the "Bugzilla" component up-to-date.
</para>
</informalexample>
</example>
</para>
<para>
A "Milestone", or "Target Milestone" is a often a planned future "Version" of a
product. In many cases, though, Milestones simply represent significant dates for
a developer. Having certain features in your Product is frequently
tied to revenue (money)
the developer will receive if the features work by the time she
reaches the Target Milestone.
Target Milestones are a great tool to organize your time.
If someone will pay you $100,000 for
incorporating certain features by a certain date,
those features by that Milestone date become
a very high priority. Milestones tend to be highly malleable creatures,
though, that appear
to be in reach but are out of reach by the time the important day arrives.
</para>
<para>
The Bugzilla Project has set up Milestones for future
Bugzilla versions 2.14, 2.16, 2.18, 3.0, etc. However,
a Target Milestone can just as easily be a specific date,
code name, or weird alphanumeric
combination, like "M19".
</para>
</listitem>
<listitem>
<para>
OK, now let's select the "Bugzilla" component from its scrollbox.
</para>
</listitem>
<listitem>
<para>
Skip down the page a bit -- do you see the "submit query" button?
Select it, and let's run
this query!
</para>
</listitem>
<listitem>
<para>
Congratulations! You've completed your first Query, and have before you the Bug List
of the author of this Guide, Matthew P. Barnson (barnboy@trilobyte.net). If I'm
doing well,
you'll have a cryptic "Zarro Boogs Found" message on your screen. It is just
a happy hacker's way of saying "Zero Bugs Found". However, I am fairly certain I will
always have some bugs assigned to me that aren't done yet,
so you won't often see that message!
</para>
</listitem>
</orderedlist>
<para>
I encourage you to click the bug numbers in the left-hand column and examine
my bugs. Also notice that if you click the underlined
links near the top of this page, they do
not take you to context-sensitive help here,
but instead sort the columns of bugs on the screen!
When you need to sort your bugs by priority, severity,
or the people they are assigned to, this
is a tremendous timesaver.
</para>
<para>
A couple more interesting things about the Bug List page:
<simplelist>
<member><emphasis>Change Columns</emphasis>:
by selecting this link, you can show all kinds
of information in the Bug List</member>
<member><emphasis>Change several bugs at once</emphasis>:
If you have sufficient rights to change all
the bugs shown in the Bug List, you can mass-modify them.
This is a big time-saver.</member>
<member><emphasis>Send mail to bug owners</emphasis>:
If you have many related bugs, you can request
an update from every person who owns the bugs in
the Bug List asking them the status.</member>
<member><emphasis>Edit this query</emphasis>:
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.</member>
</simplelist>
</para>
<note>
<para>
There are many more options to the Bugzilla Query Page
and the Bug List than I have shown you.
But this should be enough for you to learn to get around.
I encourage you to check out the
<ulink url="http://www.mozilla.org/bugs/">Bugzilla Home Page</ulink>
to learn about the Anatomy
and Life Cycle of a Bug before continuing.
</para>
</note>
</section>
<section id="bugreports">
<title>Creating and Managing Bug Reports</title>
<epigraph>
<para>And all this time, I thought we were taking bugs <emphasis>out</emphasis>...</para>
</epigraph>
<section id="bug_writing">
<title>Writing a Great Bug Report</title>
<para>
Before we plunge into writing your first bug report, I encourage you to read
<ulink url="http://www.mozilla.org/quality/bug-writing-guidelines.html">Mozilla.org's Bug
Writing Guidelines</ulink>. 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.
</para>
<para>
While you are at it, why not learn how to find previously reported bugs? Mozilla.org
has published a great tutorial on finding duplicate bugs, available at
<ulink url="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html">
http://www.mozilla.org/quality/help/beginning-duplicate-finding.html</ulink>.
</para>
<para>
I realize this was a lot to read. However, understanding the mentality of writing
great bug reports will help us on the next part!
</para>
<orderedlist>
<listitem>
<para>
Go back to <ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/">
http://landfill.tequilarista.org/mozilla/bugzilla/</ulink>
in your browser.
</para>
</listitem>
<listitem>
<para>
Select the
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/enter_bug.cgi">
Enter a new bug report</ulink> link.
</para>
</listitem>
<listitem>
<para>
Select a product.
</para>
</listitem>
<listitem>
<para>
Now you should be at the "Enter Bug" form.
The "reporter" should have been automatically filled out
for you (or else Bugzilla prompted you to Log In again
-- you did keep the email with your username
and password, didn't you?).
</para>
</listitem>
<listitem>
<para>
Select a Component in the scrollbox.
</para>
</listitem>
<listitem>
<para>
Bugzilla should have made reasonable guesses, based upon your browser,
for the "Platform" and "OS" drop-down
boxes. If those are wrong, change them -- if you're on an SGI box
running IRIX, we want to know!
</para>
</listitem>
<listitem>
<para>
Fill in the "Assigned To" box with the email address you provided earlier.
This way you don't end up sending copies of your bug to lots of other people,
since it's just a test bug.
</para>
</listitem>
<listitem>
<para>
Leave the "CC" text box blank.
Fill in the "URL" box with "http://www.mozilla.org".
</para>
</listitem>
<listitem>
<para>
Enter "The Bugzilla Guide" in the Summary text box,
and place any comments you have on this
tutorial, or the Guide in general, into the Description box.
</para>
</listitem>
</orderedlist>
<para>
Voila! Select "Commit" and send in your bug report!
Next we'll look at resolving bugs.
</para>
</section>
<section id="bug_manage">
<title>Managing your Bug Reports</title>
<para>
OK, you should have a link to the bug you just created near the top of your page.
It should say
"Bug XXXX posted", with a link to the right saying "Back to BUG# XXXX".
Select this link.
</para>
<orderedlist>
<listitem>
<para>
Scroll down a bit on the subsequent page,
until you see the "Resolve bug, changing resolution to (dropdown box).
Normally, you would
"Accept bug (change status to ASSIGNED)", fix it, and then resolve.
But in this case, we're
going to short-circuit the process because this wasn't a real bug.
Change the dropdown next to
"Resolve Bug" to "INVALID", make sure the radio button is
marked next to "Resolve Bug", then
click "Commit".
</para>
</listitem>
<listitem>
<para>
Hey! It said it couldn't take the change in a big red box!
That's right, you must specify
a Comment in order to make this change. Select the "Back"
button in your browser, add a
Comment, then try Resolving the bug with INVALID status again.
This time it should work.
</para>
</listitem>
</orderedlist>
<para>
You have now learned the basics of Bugzilla navigation,
entering a bug, and bug maintenance.
I encourage you to explore these features, and see what you can do with them!
We'll spend no more time on individual Bugs or Queries from this point on, so you are
on your own there.
</para>
<para>
But I'll give a few last hints!
</para>
<para>
There is a <ulink url="http://bugzilla.mozilla.org/help.html">CLUE</ulink>
on the Query page
that will teach you more how to use the form.
</para>
<para>
If you click the hyperlink on the
<ulink url="http://bugzilla.mozilla.org/describecomponents.cgi">Component</ulink>
box of the Query page, you will be presented a form that will describe what all
the components are.
</para>
<para>
Possibly the most powerful feature of the Query page is the
<ulink url="http://bugzilla.mozilla.org/booleanchart.html">Boolean Chart</ulink> section.
It's a bit confusing to use the first time, but can provide unparalleled
flexibility in your queries,
allowing you to build extremely powerful requests.
</para>
<para>
Finally, you can build some nifty
<ulink url="http://bugzilla.mozilla.org/reports.cgi">Reports</ulink>
using the "Bug Reports" link near the bottom of the query page, and also
available via the "Reports" link
at the footer of each page.
</para>
</section>
</section>
</section>
<section id="init4me">
<title>What's in it for me?</title>
<epigraph>
<para>
Indiana, it feels like we walking on fortune cookies!
</para>
<para>
These ain't fortune cookies, kid...
</para>
</epigraph>
<para>
Customized User Preferences offer tremendous versatility to
your individual Bugzilla experience.
Let's plunge into what you can do! The first step is to click
the "Edit prefs" link at the footer of each page once you
have logged in to
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/query.cgi?GoAheadAndLogIn=1">
Landfill</ulink>.
</para>
<section id="accountsettings">
<title>Account Settings</title>
<para>
On this page, you can change your basic Account Settings,
including your password and full name.
For security reasons, in order to change anything on this page you
must type your <emphasis>current</emphasis>
password into the "Old Password" field.
If you wish to change your password, type the new password you
want into the "New Password" field and again into the "Re-enter
new password" field to ensure
you typed your new password correctly. Select the "Submit" button and you're done!
</para>
</section>
<section id="emailsettings">
<title>Email Settings</title>
<section id="notification">
<title>Email Notification</title>
<para>
Ahh, here you can reduce or increase the amount of email sent you from Bugzilla!
In the drop-down "Notify me of changes to", select one of
<simplelist>
<member><emphasis>All qualifying bugs</emphasis>: sends you every change to every bug
where your name is somewhere on it, regardless of who changed it.</member>
<member><emphasis>Only those bugs which I am listed in the CC line</emphasis>: prevents
you from receiving mail for which you are the reporter,'
owner, or QA contact. If you are on the CC
list, presumably someone had a <emphasis>good</emphasis>
reason for you to get the email.</member>
<member><emphasis>All qulifying bugs except those which I change</emphasis>:
This is the default, and
a sensible setting. If someone else changes your bugs, you will get emailed,
but if you change bugs
yourself you will receive no notification of the change.</member>
</simplelist>
</para>
</section>
<section id="newemailtech">
<title>New Email Technology</title>
<note>
<para>
This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable newemailtech
in Params"
and "make it the default for all new users", referring her to the Administration section
of this Guide.
</para>
</note>
<para>
Disregard the warnings about "experimental and bleeding edge"; the code to handle email
in a cleaner manner than that historically used for Bugzilla is
quite robust and well-tested now.
</para>
<para>
I recommend you enable the option, "Click here to sign up (and risk any bugs)".
Your email-box
will thank you for it. The fundamental shift in "newemailtech" is away from standard UNIX
"diff" output, which is quite ugly, to a prettier, better laid-out email.
</para>
</section>
<section id="watchsettings">
<title>"Watching" Users</title>
<note>
<para>
This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable watchers in Params".
</para>
</note>
<para>
By entering user email names into the "Users to watch" text entry box, delineated by commas,
you can watch bugs of other users. This powerful functionality enables seamless transitions
as developers change projects, managers wish to get in touch with the issues faced by their
direct reports, or users go on vacation. If any of these three situations apply
to you, you will undoubtedly find this feature quite convenient.
</para>
</section>
</section>
<section id="footersettings">
<title>Page Footer</title>
<note>
<para>
By default, this page is quite barren. However, go explore the Query Page some more; you will
find that you can store numerous queries on the server, so if you regularly run a particular query
it is just a drop-down menu away. On this page of Preferences, if you have many stored
queries you can elect to have them always one-click away!
</para>
</note>
<para>
If you have many stored queries on the server, here you will find individual drop-downs for each
stored query. Each drop-down gives you the option of that query appearing on the footer of every
page in Bugzilla! This gives you powerful one-click access to any complex searches you may set up,
and is an excellent way to impress your boss...
</para>
<tip>
<para>By default, the "My Bugs" link appears at the bottom of each page. However, this query
gives you both the bugs you have reported, as well as those you are assigned. One of the most
common uses for this page is to remove the "My Bugs" link, replacing it with two other queries,
commonly called "My Bug Reports" and "My Bugs" (but only referencing bugs assigned to you). This
allows you to distinguish those bugs you have reported from those you are assigned. I commonly
set up complex Boolean queries in the Query page and link them to my footer in this page. When
they are significantly complex, a one-click reference can save hours of work.</para>
</tip>
</section>
<section id="permissionsettings">
<title>Permissions</title>
<para>
This is a purely informative page which outlines your current permissions on
this installation of Bugzilla. If you have permissions to grant certain permissions to
other users, the "other users" link appears on this page as well as the footer.
For more information regarding user administration, please consult the Administration
section of this Guide.
</para>
</section>
</section>
<section id="usingbz-conc">
<title>Using Bugzilla-Conclusion</title>
<para>
Thank you for reading through this portion of the Bugzilla Guide. I anticipate
it may not yet meet the needs of all readers. If you have additional comments or
corrections to make, please submit your contributions to the
<ulink url="mailto://mozilla-webtools@mozilla.org">mozilla-webtools</ulink>
mailing list/newsgroup. The mailing list is mirrored to the netscape.public.mozilla.webtools
newsgroup, and the newsgroup is mirrored to mozilla-webtools@mozilla.org
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:Bugzilla-Guide\.sgml
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE BOOK PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- Include macros -->
<!ENTITY about SYSTEM "about.sgml">
<!ENTITY conventions SYSTEM "conventions.sgml">
<!ENTITY doc-index SYSTEM "index.sgml">
<!ENTITY faq SYSTEM "faq.sgml">
<!ENTITY gfdl SYSTEM "gfdl.sgml">
<!ENTITY glossary SYSTEM "glossary.sgml">
<!ENTITY installation SYSTEM "installation.sgml">
<!ENTITY administration SYSTEM "administration.sgml">
<!ENTITY using SYSTEM "using.sgml">
<!ENTITY integration SYSTEM "integration.sgml">
<!ENTITY future SYSTEM "future.sgml">
<!ENTITY index SYSTEM "index.sgml">
<!ENTITY database SYSTEM "database.sgml">
<!ENTITY patches SYSTEM "patches.sgml">
<!ENTITY variants SYSTEM "variants.sgml">
]>
<!-- Coding standards for this document
1. Preface new or modified sections with a comment stating who
modified it and when; please also use the "authorinitials" tag.
2. There is no "two".
3. Other than the GFDL, please use the "section" tag instead of "sect1", "sect2", etc.
4. Use Entities to include files for new chapters in Bugzilla-Guide.sgml.
5. Ensure all documents compile cleanly to HTML after modification.
The errors "DTD Declaration not allowed here" and "DTDDECL catalog types not supported"
are normal errors to be expected when compiling the whole guide.
6. Try to index important terms wherever possible.
7. Follow coding standards at http://www.linuxdoc.org.
8. All tags should be lowercase (needsfix)
9. Code being submitted for review should use the
"review" tag. Documentation on this is available at
http://www.linuxdoc.org/LDP/LDP-Author-Guide/tools-hints.html
under section 4.9.4, "Making notes on the text while it's being written".
10. Please use sensible spacing. The comments at the very end of each Guide
file define reasonable defaults for PSGML mode in EMACS.
Double-indent tags, use double spacing whenever possible,
try to avoid clutter and feel free to waste space in the code to make it more readable.
-->
<BOOK ID="index">
<!-- Header -->
<BOOKINFO>
<TITLE>The Bugzilla Guide</TITLE>
<PUBDATE>v2.11.1, 06 March 2001</PUBDATE>
<AUTHOR>
<FIRSTNAME>Matthew</FIRSTNAME>
<OTHERNAME>P.</OTHERNAME>
<SURNAME>Barnson</SURNAME>
<affiliation>
<address><email>barnboy@trilobyte.net</email></address>
</affiliation>
</AUTHOR>
<ABSTRACT>
<PARA>This is the documentation for Bugzilla, the Mozilla bug-tracking system.</PARA>
</ABSTRACT>
<REVHISTORY>
<REVISION>
<REVNUMBER>v2.11</REVNUMBER>
<DATE>20 December 2000</DATE>
<AUTHORINITIALS>MPB</AUTHORINITIALS>
<REVREMARK>Converted the README, FAQ, and DATABASE information into SGML
docbook format.</REVREMARK>
</REVISION>
<revision>
<revnumber>2.11.1</revnumber>
<date>06 March 2001</date>
<revremark>
Took way too long to revise this for 2.12 release.
Updated FAQ to use qandaset tags instead of literallayout,
cleaned up administration section, added User Guide section,
miscellaneous FAQ updates and third-party integration information.
From this point on all new tags are lowercase in preparation for the
2.13 release of the Guide in XML format instead of SGML.
</revremark>
</revision>
</REVHISTORY>
<KEYWORDSET>
<KEYWORD>Bugzilla</KEYWORD>
<KEYWORD>Guide</KEYWORD>
<KEYWORD>installation</KEYWORD>
<KEYWORD>FAQ</KEYWORD>
<KEYWORD>administration</KEYWORD>
<KEYWORD>integration</KEYWORD>
<KEYWORD>MySQL</KEYWORD>
<KEYWORD>Mozilla</KEYWORD>
<KEYWORD>webtools</KEYWORD>
</KEYWORDSET>
</BOOKINFO>
<!-- About This Guide -->
&about;
<!-- Installing Bugzilla -->
&installation;
<!-- Administering Bugzilla -->
&administration;
<!-- Using Bugzilla -->
&using;
<!-- Integrating Bugzilla with Third-Party Tools -->
&integration;
<!-- The Future of Bugzilla -->
&future;
<!-- Appendix: The Frequently Asked Questions -->
&faq;
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Major Bugzilla Variants -->
&variants;
<!-- Appendix: Custom Patches -->
&patches;
<!-- Appendix: The GNU Free Documentation License -->
&gfdl;
<!-- Glossary -->
&glossary;
<!-- Index -->
&index;
</BOOK>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY conventions SYSTEM "conventions.sgml"> ] > -->
<CHAPTER ID="about">
<TITLE>About This Guide</TITLE>
<SECTION ID="aboutthisguide">
<TITLE>Purpose and Scope of this Guide</TITLE>
<PARA>
This document was started on September 17, 2000
by Matthew P. Barnson after a great deal of procrastination updating the Bugzilla FAQ,
which I left untouched for nearly half a year.
After numerous complete rewrites and reformatting, it is the document you see today.
</PARA>
<PARA>
Despite the lack of updates, Bugzilla is simply the best piece of bug-tracking software
the world has ever seen. This document is intended to be the comprehensive guide to
the installation, administration, maintenance, and use of the Bugzilla bug-tracking system.
</PARA>
<PARA>
This release of the Bugzilla Guide is the <EMPHASIS>2.11</EMPHASIS> release.
It is so named that it may match the current version of Bugzilla.
The numbering tradition stems from that used for many free software projects,
in which <EMPHASIS>even-numbered</EMPHASIS> point releases (1.2, 1.14, etc.)
are considered "stable releases", intended for public consumption; on the other
hand, <EMPHASIS>odd-numbered</EMPHASIS> point releases (1.3, 2.09, etc.)
are considered unstable <EMPHASIS>development</EMPHASIS> releases intended
for advanced users, systems administrators, developers, and those who enjoy
a lot of pain.
</PARA>
<PARA>
Newer revisions of the Bugzilla Guide will follow the numbering conventions of
the main-tree Bugzilla releases, available at
<ULINK URL="http://www.mozilla.org/bugs/source.html">Mozilla.org</ULINK>, with
the exception that intermediate releases will have a minor revision number
following a period. For instance, if the current version of Bugzilla is 4.2,
the current "stable" version of the Bugzilla guide, in, say, it's fifth revision,
would be numbered "4.2.5". Got it? Good.
</PARA>
<PARA>
I wrote this in response to the enormous demand for decent Bugzilla documentation.
I have incorporated instructions from the Bugzilla README, Frequently Asked Questions,
Database Schema Document, and various mailing lists to create it.
Chances are, there are glaring errors in this documentation; please contact
<EMAIL>barnboy@trilobyte.net</EMAIL> to correct them.
</PARA>
</SECTION>
<SECTION ID="copyright">
<TITLE>Copyright Information</TITLE>
<BLOCKQUOTE>
<ATTRIBUTION>Copyright (c) 2000-2001 Matthew P. Barnson</ATTRIBUTION>
<PARA>
Permission is granted to copy, distribute and/or modify this document under thei
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 the section entitled
"GNU Free Documentation LIcense".
</PARA>
</BLOCKQUOTE>
<PARA>
If you have any questions regarding this document, its' copyright, or publishing this
document in non-electronic form, please contact <EMAIL>barnboy@trilobyte.net</EMAIL>
</PARA>
</SECTION>
<SECTION ID="disclaimer">
<TITLE>Disclaimer</TITLE>
<PARA>
No liability for the contents of this document can be accepted.
Use the concepts, examples, and other content at your own risk.
As this is a new edition of this document, there may be errors
and inaccuracies that may damage your system. Use of this document
may cause your girlfriend to leave you, your cats to pee on your
furniture and clothing, your computer to cease functioning, your
boss to fire you, and global thermonuclear war. Proceed with caution.
</PARA>
<PARA>
All copyrights are held by their respective owners, unless specifically
noted otherwise. Use of a term in this document should not be regarded
as affecting the validity of any trademark or service mark.
In particular, I like to put down Microsoft(tm). Live with it.
</PARA>
<PARA>
Naming of particular products or brands should not be seen as endorsements,
with the exception of the term "GNU/Linux".
Use GNU/Linux. Love it. Bathe with it. It is life and happiness.
I endorse it wholeheartedly and encourage you to do the same.
</PARA>
<PARA>
You are strongly recommended to make a backup of your system before
installing Bugzilla and at regular intervals thereafter. Heaven knows
it's saved my bacon time after time; if you implement any suggestion in
this Guide, implement this one!
</PARA>
<PARA>
Bugzilla has not undergone a complete security review.
Security holes probably exist in the code.
Great care should be taken both in the installation and usage of this software.
Carefully consider the implications of installing other network services with Bugzilla.
</PARA>
</SECTION>
<!-- Section 2: New Versions -->
<SECTION ID="newversions">
<TITLE>New Versions</TITLE>
<PARA>
This is the initial release of the Bugzilla Guide.
</PARA>
<PARA>
This document can be found in the following places:
</PARA>
<PARA>
<ITEMIZEDLIST>
<LISTITEM>
<PARA>
<ULINK URL="http://www.trilobyte.net/barnsons/">TriloBYTE</ULINK>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<ULINK URL="http://www.mozilla.org/projects/bugzilla/">Mozilla.org</ULINK>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<ULINK URL="http://www.linuxdoc.org/">The Linux Documentation Project</ULINK>
</PARA>
</LISTITEM>
</ITEMIZEDLIST>
</PARA>
<PARA>
The latest version of this document can be checked out via CVS.
Please follow the instructions available at
<ULINK URL="http://www.mozilla.org/cvs.html">the Mozilla CVS page</ULINK>,
and check out the mozilla/webtools/bugzilla/docs/ branch.
</PARA>
</SECTION>
<SECTION ID="credits">
<TITLE>Credits</TITLE>
<PARA>
The people listed below have made enormous contributions to the creation
of this Guide, through their dedicated hacking efforts,
numerous e-mail and IRC support sessions,
and overall excellent contribution to the Bugzilla community:
</PARA>
<PARA>
<ULINK URL="mailto://terry@mozilla.org">Terry Weissman</ULINK>
for initially converting Bugzilla from BugSplat!
and writing the README upon which this documentation is largely based.
</PARA>
<PARA>
<ULINK URL="mailto://tara@tequilarista.org">Tara Hernandez</ULINK>
for keeping Bugzilla development going strong after Terry left Mozilla.org
</PARA>
<PARA>
<ULINK URL="mailto://dkl@redhat.com">Dave Lawrence</ULINK>
for providing insight into the key differences between Red Hat's
customized Bugzilla, and being largely responsible for the
"Red Hat Bugzilla" appendix
</PARA>
<PARA>
<ULINK URL="mailto://endico@mozilla.org">Dawn Endico</ULINK>
for being a hacker extraordinaire and putting up with my incessant
questions and arguments on irc.mozilla.org in #mozwebtools
</PARA>
<PARA>
Last but not least, all the members of the
<ULINK URL="news://news.mozilla.org/netscape/public/mozilla/webtools">
netscape.public.mozilla.webtools</ULINK> newsgroup. Without your
discussions, insight, suggestions, and patches, this could never have happened.
</PARA>
</SECTION>
<SECTION id="contributors">
<TITLE>Contributors</TITLE>
<PARA>
Thanks go to these people for significant contributions to this documentation:
</PARA>
<PARA>
Zach Lipton, Andrew Pearson, Spencer Smith, Eric Hansen
</PARA>
</SECTION>
<SECTION ID="feedback">
<TITLE>Feedback</TITLE>
<PARA>
I welcome feedback on this document. Without your submissions and input,
this Guide cannot continue to exist. Please mail additions, comments, criticisms, etc.
to <EMAIL>barnboy@trilobyte.net</EMAIL>. Please send flames to
<EMAIL>devnull@localhost</EMAIL>
</PARA>
</SECTION>
<SECTION ID="translations">
<TITLE>Translations</TITLE>
<PARA>
The Bugzilla Guide needs translators! Please volunteer your translation into the language of your choice.
If you will translate this Guide, please notify the members of the mozilla-webtools mailing list at
<email>mozilla-webtools@mozilla.org</email>
</PARA>
</SECTION>
<!-- conventions used here (didn't want to give it a chapter of its own) -->
&conventions;
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:Bugzilla-Guide\.sgml
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
sgml-doctype:"<!DOCTYPE chapter PUBLIC \"-//OASIS//DTD DocBook V4.1//EN\">"
End:
-->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!-- TOC
Chapter: Administration
Localconfig and Checksetup.pl customizations
The Email Gateway
Editing parameters
Deciding your site policies
The Shadow Database
Customizing password mail & layout
The Whining Cron
Why you shouldn't allow deletion
User administration
Creating Users
Disabling Users
User Permissions
Product Administration
Creating products
Creating components
Assigning default owners and Q/A contacts to components
Product Milestones
Product Versions
Voting
-->
<CHAPTER id="administration">
<TITLE>Administering Bugzilla</TITLE>
<SUBTITLE>Or, I just got this cool thing installed. Now what the heck do I do with it?</SUBTITLE>
<PARA>
So you followed the README isntructions to the letter, and
just logged into bugzilla with your super-duper god account and you are sitting at the query
screen. Yet, you have nothing to query. Your first act of bisuness needs to be to setup the
operating parameters for bugzilla.</PARA>
<SECTION id="postinstall-check">
<TITLE>Post-Installation Checklist</TITLE>
<PARA>
After installation, follow the checklist below to ensure that
you have a successful installation.
If you do not see a recommended setting for a parameter,
consider leaving it at the default
while you perform your initial tests on your Bugzilla setup.
</PARA>
<INDEXTERM>
<PRIMARY>checklist</PRIMARY>
</INDEXTERM>
<PROCEDURE>
<STEP>
<PARA>
Set "maintainer" to <EMPHASIS>your</EMPHASIS> email address.
This allows Bugzilla's error messages
to display your email
address and allow people to contact you for help.
</PARA>
</STEP>
<STEP>
<PARA>
Set "urlbase" to the URL reference for your Bugzilla installation.
If your bugzilla query page is at http://www.foo.com/bugzilla/query.cgi,
your url base is http://www.foo.com/bugzilla/
</PARA>
</STEP>
<STEP>
<PARA>
Set "usebuggroups" to "1" <EMPHASIS>only</EMPHASIS>
if you need to restrict access to products.
I suggest leaving this parameter <EMPHASIS>off</EMPHASIS>
while initially testing your Bugzilla.
</PARA>
</STEP>
<STEP>
<PARA>
Set "usebuggroupsentry" to "1" if you want to be able to restrict access to products.
Once again, if you are simply testing your installation, I suggest against
turning this parameter on; the strict security checking may stop you from
being able to modify your new entries.
</PARA>
</STEP>
<STEP>
<PARA>
Set "shadowdb" to "bug_shadowdb" if you will be
running a *very* large installation of Bugzilla.
The shadow database enables many simultaneous users
to read and write to the database
without interfering with one another.
<NOTE>
<PARA>
Enabling "shadowdb" can adversely affect the stability
of your installation of Bugzilla.
You may frequently need to manually synchronize your databases,
or schedule nightly syncs
via "cron"
</PARA>
</NOTE>
Once again, in testing you should
avoid this option -- use it if or when you <EMPHASIS>need</EMPHASIS> to use it, and have
repeatedly run into the problem it was designed to solve -- very long wait times while
attempting to commit a change to the database.
</PARA>
<PARA>
If you use the "shadowdb" option, it is only natural that you should turn the "queryagainstshadowdb"
option "On" as well. Otherwise you are replicating data into a shadow database for no reason!
</PARA>
</STEP>
<STEP>
<PARA>
If you have custom logos or HTML you must put in place to fit within your site design guidelines,
place the code in the "headerhtml", "footerhtml", "errorhtml", "bannerhtml", or "blurbhtml" text boxes.
<NOTE>
<PARA>
The "headerhtml" text box is the HTML printed out <EMPHASIS>before</EMPHASIS> any other code on the page.
If you have a special banner, put the code for it in "bannerhtml". You may want to leave these
settings at the defaults initially.
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
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.
</PARA>
</STEP>
<STEP>
<PARA>
Set "newemailtech" to "on". Your users will thank you. This is the default in the post-2.12 world.
</PARA>
</STEP>
<STEP>
<PARA>
Do you want to use the qa contact ("useqacontact") and status whiteboard ("usestatuswhiteboard") fields?
These fields are useful because they allow for more flexibility, particularly when you have an existing
Quality Assurance and/or Release Engineering team,
but they may not be needed for smaller installations.
</PARA>
</STEP>
<STEP>
<PARA>
Set "whinedays" to the amount 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 README, or set this value to "0".
</PARA>
</STEP>
<STEP>
<PARA>
Set the "commenton" options according to your site policy. It is a wise idea to require comments when users
resolve, reassign, or reopen bugs.
<NOTE>
<PARA>
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!)
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
Set "supportwatchers" to "On". This feature is helpful for team leads to monitor progress in their
respective areas, and can offer many other benefits, such as allowing a developer to pick up a
former engineer's bugs without requiring her to change all the information in the bug.
</PARA>
</STEP>
</PROCEDURE>
</SECTION>
<SECTION id="useradmin">
<TITLE>User Administration</TITLE>
<PARA>
User administration is one of the easiest parts of Bugzilla.
Keeping it from getting out of hand, however, can become a challenge.
</PARA>
<SECTION id="defaultuser">
<TITLE>Creating the Default User</TITLE>
<PARA>
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 were to delete the "super user" account, re-running
checksetup.pl will again prompt you for this username and password.
</PARA>
<TIP>
<PARA>
If you wish to add more administrative users, you must use the MySQL interface.
Run "mysql" from the command line, and use these commands ("mysql>" denotes the
mysql prompt, not something you should type in):
<COMMAND><PROMPT>mysql></PROMPT> use bugs;</COMMAND>
<COMMAND><PROMPT>mysql></PROMPT> update profiles set groupset=0x7ffffffffffffff
where login_name = "(user's login name)"; </COMMAND>
</PARA>
</TIP>
</SECTION>
<SECTION id="manageusers">
<TITLE>Managing Other Users</TITLE>
<SECTION id="login">
<TITLE>Logging In</TITLE>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Open the index.html page for your Bugzilla installation in your browser window.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Query Existing Bug Reports" link.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Log In" link at the foot of the page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Type your email address, and the password which was emailed to you when you
created your Bugzilla account, into the spaces provided.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<PARA>Congratulations, you are logged in!</PARA>
</SECTION>
<SECTION id="createnewusers">
<TITLE>Creating new users</TITLE>
<PARA>
Your users can create their own user accounts by clicking the "New Account"
link at the bottom of each page.
However, should you desire to create user accounts ahead of time, here is how you do it.
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
After logging in, click the "Users" link at the footer of the query page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
To see a specific user, type a portion of their login name
in the box provided and click "submit".
To see all users, simply click the "submit" button.
You must click "submit" here to be able to add a new user.
</PARA>
<TIP>
<PARA>
More functionality is available via the list on the right-hand side
of the text entry box.
You can match what you type as a case-insensitive substring (the default)
of all users on your system, a case-sensitive regular expression
(please see the "man regexp" manual page for details on regular expression syntax),
or a <EMPHASIS>reverse</EMPHASIS> regular expression match,
where every user name which does NOT match the regular expression
is selected.
</PARA>
</TIP>
</LISTITEM>
<LISTITEM>
<PARA>
Click the "Add New User" link at the bottom of the user list
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the form presented. This page is self-explanatory. When done, click "submit".
</PARA>
<NOTE>
<PARA>
Adding a user this way will <EMPHASIS>not</EMPHASIS> send an email
informing them of their username and password.
In general, it is preferable to log out and use the "New Account"
button to create users, as it will pre-populate all the required fields and also notify
the user of her account name and password.
</PARA>
</NOTE>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="disableusers">
<TITLE>Disabling Users</TITLE>
<PARA>
I bet you noticed that big "Disabled Text" entry box available from the "Add New User" screen,
when you edit an account?
By entering any text in this box and selecting "submit",
you have prevented the user from using Bugzilla via the web interface.
Your explanation, written in this text box, will be presented to the user
the next time she attempts to use the system.
<WARNING>
<PARA>
Don't disable your own administrative account, or you will hate life!
</PARA>
</WARNING>
</PARA>
</SECTION>
<SECTION id="modifyusers">
<TITLE>Modifying Users</TITLE>
<PARA>
Here I will attempt to describe the function of each option on the user edit screen.
</PARA>
<ITEMIZEDLIST>
<LISTITEM>
<PARA>
<EMPHASIS>Login Name</EMPHASIS>: This is generally the user's email address.
However, if you have edited your system parameters,
this may just be the user's login name or some other identifier.
<TIP>
<PARA>
For compatability reasons, you should probably
stick with email addresses as user login names. It will make your life easier.
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Real Name</EMPHASIS>: Duh!
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Password</EMPHASIS>: You will only see asterisks in versions
of Bugzilla newer than 2.10 or early 2.11. You can change the user password here.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Email Notification</EMPHASIS>: You may choose from one of three options:
<ORDEREDLIST>
<LISTITEM>
<PARA>
All qualifying bugs except those which I change:
The user will be notified of any change to any bug
for which she is the reporter, assignee, Q/A contact, CC recipient, or "watcher".
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Only those bugs which I am listed on the CC line:
The user will not be notified of changes to bugs where she is the assignee,
reporter, or Q/A contact, but will receive them if she is on the CC list.
<NOTE>
<PARA>
She will still receive whining cron emails if you set up the "whinemail" feature.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>All Qualifying Bugs</EMPHASIS>: This user is a glutton for punishment.
If her name is in the reporter, Q/A contact, CC, assignee, or is a "watcher",
she will get email updates regarding the bug.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
<PARA>
<EMPHASIS>Disable Text</EMPHASIS>: If you type anything in this box,
including just a space, the user account is disabled from making any changes
to bugs via the web interface, and what you type in this box is presented as the reason.
<WARNING>
<PARA>Don't disable the administrator account!</PARA>
</WARNING>
<NOTE>
<PARA>
As of this writing, the user can still submit bugs via the e-mail gateway,
if you set it up, despite the disabled text field. The e-mail gateway should
<EMPHASIS>not</EMPHASIS> be enabled for secure installations of Bugzilla.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>CanConfirm</EMPHASIS>: This field is only used if you have enabled
"unconfirmed" status in your parameters screen. If you enable this for a user,
that user can then move bugs from "Unconfirmed" to "Confirmed" status (ergo: "New" status).
Be judicious about allowing users to turn this bit on for other users.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Creategroups</EMPHASIS>: This option will allow a user to create and
destroy groups in Bugzilla. Unless you are using the Bugzilla GroupSentry security
option "usebuggroupsentry" in your parameters, this setting has no effect.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editbugs</EMPHASIS>: Unless a user has this bit set, they can only edit
those bugs for which they are the assignee or the reporter.
<NOTE>
<PARA>
Leaving this option unchecked does not prevent users from adding
comments to a bug! They simply cannot change a bug priority, severity,
etc. unless they are the assignee or reporter.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editcomponents</EMPHASIS>: 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. The name of a product or component can be
changed without affecting the associated bugs, but it tends to annoy
the hell out of your users when these change a lot.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editkeywords</EMPHASIS>: If you use Bugzilla's keyword functionality,
enabling this feature allows a user can 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.
You must be very careful about creating too many new keywords
if you run a very large Bugzilla installation; keywords are global variables
across products, and you can often run into a phenomenon called "keyword bloat".
This confuses users, and then the feature goes unused.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>Editusers</EMPHASIS>: This flag allows a user do what you're doing
right now: edit other users.
This will allow those with the right to do so to remove administrator
priveleges from other users or grant them to themselves. Enable with care.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
<EMPHASIS>PRODUCT</EMPHASIS>: PRODUCT bugs access. This allows an administrator,
with product-level granularity, to specify in which products a user can edit bugs.
The user must still have the "editbugs" privelege to edit bugs in this area;
this simply restricts them from even seeing bugs outside these boundaries if the administrator
has enabled the group sentry parameter "usebuggroupsentry". Unless you are using bug groups,
this option has no effect.
</PARA>
</LISTITEM>
</ITEMIZEDLIST>
</SECTION>
</SECTION>
</SECTION>
<SECTION id="programadmin">
<TITLE>Product, Component, Milestone, and Version Administration</TITLE>
<EPIGRAPH>
<PARA>
Dear Lord, we have to get our users to do WHAT?
</PARA>
</EPIGRAPH>
<REMARK>
Many thanks to Zach Lipton for his contributions to this section
</REMARK>
<SECTION id="products">
<TITLE>Products</TITLE>
<SUBTITLE>Formerly, and in some spots still, called "Programs"</SUBTITLE>
<PARA>
<GLOSSTERM baseform="product" linkend="gloss_product">Products</GLOSSTERM> are the
broadest category in Bugzilla, and you should have the least of these.
If your company makes computer games, you should have one product per game,
and possibly a few special products
(website, meetings...)
</PARA>
<PARA>
A Product (formerly called "Program", and still referred to that way
in some portions of the source code) controls some very important functions.
The number of "votes" available for users to vote for the most important bugs
is set per-product, as is the number of votes required to move a bug automatically
from the UNCONFIRMED status to the NEW status. One can close a Product for further
bug entry and define various Versions available from the Edit Product screen.
</PARA>
<PARA>To create a new product:</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select "components" from the yellow footer
</PARA>
<TIP>
<PARA>
It may seem counterintuitive to click "components" when you want
to edit the properties associated with Products. This is one of a long
list of things we want in Bugzilla 3.0...
</PARA>
</TIP>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "Add" link to the right of "Add a new product".
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the product and a description.
The Description field is free-form.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<TIP>
<PARA>
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.
</PARA>
</TIP>
</SECTION>
<SECTION id="components">
<TITLE>Components</TITLE>
<PARA>
Components are subsections of a Product.
<EXAMPLE>
<TITLE>Creating some Components</TITLE>
<INFORMALEXAMPLE>
<PARA>
The computer game you are designing may 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.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
Each component has a owner and (if you turned it on in the parameters), a qa
contact. The owner should be the primary person who fixes bugs in that component. The QA
Contact should be the person who will ensure these bugs are completely fixed. The Owner,
QA Contact, and Reporter will get email when new bugs are created in this Component and
when these bugs change. Default Owner and Default QA Contact fields only dictate the
<EMPHASIS>default assignments</EMPHASIS>; the Owner and Q/A Contact fields in a bug
are otherwise unrelated to the Component.
</PARA>
<PARA>
To create a new Component:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select the "Edit components" link from the "Edit Product" page
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "Add" link to the right of the "Add a new component" text
on the "Select Component" page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the "Component" field, a short "Description", and the "Initial Owner".
The "Component" field should not contain a space. The "Description" field is
free-form. The "Initial Owner" field must be that of a valid user already
existing in the database. If the initial owner does not exist, Bugzilla
will refuse to create the component.
<TIP>
<PARA>
Is your "Default Owner" a user who is not yet in the database?
No problem.
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select the "Log out" link on the footer of the page.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select the "New Account" link on the footer of the "Relogin" page
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Type in the email address of the default owner you want to create
in the "E-mail address" field, and her full name in the "Real name"
field, then select the "Submit Query" button.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Now select "Log in" again, type in your login information, and you
can modify the product to use the Default Owner information
you require.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Either "edit" more components or return to the "query" page on the ensuing
"Addming new component" page. To return to the Product you were editing, you
must select the "components" link as before.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="versions">
<TITLE>Versions</TITLE>
<PARA>
Versions are the revisions of the product, such as "Flinders 3.1", "Flinders 95",
and "Flinders 2000". Using Versions helps you isolate code changes and are an aid
in reporting.
<EXAMPLE>
<TITLE>Common Use of Versions</TITLE>
<INFORMALEXAMPLE>
<PARA>
A user reports a bug
against Version "Beta 2.0" of your product. The current Version of your software
is "Release Candidate 1", and no longer has the bug. This will
help you triage and classify bugs according to their relevance. It is also
possible people may report bugs against bleeding-edge beta versions that are
not evident in older versions of the software. This can help isolate code
changes that caused the bug
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
<EXAMPLE>
<TITLE>A Different Use of Versions</TITLE>
<INFORMALEXAMPLE>
<PARA>
This field has been used to good effect by an online service provider in a slightly
different way. They had three versions of the product: "Production", "QA",
and "Dev". Although it may be the same product, a bug in the development
environment is not normally as critical as a Production bug, nor does it
need to be reported publicly. When used in conjunction with Target Milestones,
one can easily specify the environment where a bug can be reproduced, and
the Milestone by which it will be fixed.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
</PARA>
<PARA>
To create and edit Versions:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
From the "Edit Product" screen, select "Edit Versions"
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
You will notice that the product already has the default version "undefined".
If your product doesn't use version numbers, you may want to leave this as it is
or edit it so that it is "---". You can then go back to the edit versions page
and add new versions to your product.
</PARA>
<PARA>
Otherwise, click the "Add" button to the right of the "Add a new version" text.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the Version. This can be free-form characters up to the limit of the
text box. Then select the "Add" button.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
At this point you can select "Edit" to edit more Versions, or return to the "Query"
page, from which you can navigate back to the product through the "components" link
at the foot of the Query page.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="milestones">
<TITLE>Milestones</TITLE>
<PARA>
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. Or, you have a
bug that you plan to fix for 2.8, this would have a milestone of 2.8.
</PARA>
<NOTE>
<PARA>
Milestone options will only appear for a Product if you turned the "usetargetmilestone" field
in the "Edit Parameters" screen "On".
</PARA>
</NOTE>
<PARA>
To create new Milestones, set Default Milestones, and set Milestone URL:
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Select "edit milestones"
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Select "Add" to the right of the "Add a new milestone" text
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Enter the name of the Milestone in the "Milestone" field.
You can optionally set the "Sortkey", which is a positive or negative number (-255 to 255)
that defines where in the list this particular milestone appears.
Select "Add".
</PARA>
<EXAMPLE>
<TITLE>Using SortKey with Target Milestone</TITLE>
<INFORMALEXAMPLE>
<PARA>
Let's say you create a target milestone called "Release 1.0", with Sortkey set to "0".
Later, you realize that you will have a public beta, called "Beta1".
You can create a Milestone called "Beta1", with a Sortkey of "-1" in order to ensure
people will see the Target Milestone of "Beta1" earlier on the list than "Release 1.0"
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
</LISTITEM>
<LISTITEM>
<PARA>
If you want to add more milestones, select the "Edit" link.
If you don't, well shoot, you have to go back to the "query" page and select "components"
again, and make your way back to the Product you were editing.
<NOTE>
<PARA>
This is another in the list of unusual user interface decisions that
we'd like to get cleaned up. Shouldn't there be a link to the effect of
"edit the Product I was editing when I ended up here"? In any case,
clicking "components" in the footer takes you back to the "Select product"
screen, from which you can begin editing your product again.
</PARA>
</NOTE>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
From the Edit Product screen again (once you've made your way back), enter the URL
for a description of what your milestones are for this product in the "Milestone URL" field.
It should be of the format "http://www.foo.com/bugzilla/product_milestones.html"
</PARA>
<PARA>
Some common uses of this field include product descriptions, product roadmaps,
and of course a simple description of the meaning of each milestone.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
If you're using Target Milestones, the "Default Milestone" field must have some
kind of entry. If you really don't care if people set coherent Target Milestones,
simply leave this at the default, "---". However, controlling and regularly updating the Default
Milestone field is a powerful tool when reporting the status of projects.
</PARA>
<PARA>Select the "Update" button when you are done.</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="voting">
<TITLE>Voting</TITLE>
<PARA>
The concept of "voting" is a poorly understood, yet powerful feature for the management
of open-source projects. Each user is assigned so many Votes per product, which they can
freely reassign (or assign multiple votes to a single bug).
This allows developers to gauge user need for a particular enhancement
or bugfix. By allowing bugs with a certain number of votes to automatically move from
"UNCONFIRMED" to "NEW", users of the bug system can help high-priority bugs garner
attention so they don't sit for a long time awaiting triage.
</PARA>
<PARA>
The daunting challenge of Votes is deciding where you draw the line for a "vocal majority". If you
only have a user base of 100 users, setting a low threshold for bugs to move from UNCONFIRMED
to NEW makes sense. As the Bugzilla user base expands, however, these thresholds must be
re-evaluated. You should gauge whether this feature is worth the time and close monitoring involved,
and perhaps forego implementation until you have a critical mass of users who demand it.
</PARA>
<PARA>To modify Voting settings:</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Navigate to the "Edit Product" screen for the Product you wish to modify
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Maximum Votes per person" to your calculated value. Setting this field
to "0" disables voting.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Maximum Votes a person can put on a single bug" to your calculated value. It
should probably be some number lower than the "Maximum votes per person".
Setting this field to "0" disables voting, but leaves the voting options open
to the user. This is confusing.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Set "Number of votes a bug in this product needs to automatically get out of the
UNCONFIRMED state" to your calculated number. Setting this field to "0"
disables the automatic move of bugs from UNCONFIRMED to NEW. Some people
advocate leaving this at "0", but of what use are Votes if your Bugzilla
user base is unable to affect which bugs appear on Development radar?
<TIP>
<PARA>
You should probably set this number to higher than a small coalition of
Bugzilla users can influence it. Most sites use this as a "referendum"
mechanism -- if users are able to vote a bug out of UNCONFIRMED, it
is a <EMPHASIS>really</EMPHASIS> bad bug!
</PARA>
</TIP>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Once you have adjusted the values to your preference, select the "Update" button.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
<SECTION id="groups">
<TITLE>Groups and Group Security</TITLE>
<PARA>
Groups can be very useful in bugzilla, because they allow users to isolate
bugs or products that should only be seen by certain people. Groups can also
be a complicated minefield of interdependencies and weirdness if mismanaged.
<EXAMPLE>
<TITLE>When to Use Group Security</TITLE>
<INFORMALEXAMPLE>
<PARA>
Many Bugzilla sites isolate "Security-related" bugs from all other bugs.
This way, they can have a fix ready before the security vulnerability
is announced to the world. You can create a "Security" product which, by
default, has no members, and only add members to the group (in their individual
User page, as described under User Administration) who should have
priveleged access to "Security" bugs. Alternately, you may create a Group
independently of any Product, and change the Group mask on individual bugs
to restrict access to members only of certain Groups.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
Groups only work if you enable the "usebuggroups" paramater.
In addition, if the "usebuggroupsentry" parameter is "On", one can restrict access
to products by groups, so that only members of a product group are able to view
bugs within that product.
Group security in Bugzilla can be divided into two categories:
Generic and Product-Based.
</PARA>
<NOTE>
<PARA>
Groups in Bugzilla are a complicated beast that evolved out of very simple user
permission bitmasks, apparently itself derived from common concepts in UNIX access
controls. A "bitmask" is a fixed-length number whose value can describe one, and
only one, set of states. For instance, UNIX file permissions are assigned bitmask
values: "execute" has a value of 1, "write" has a value of 2,
and "read" has a value of 4. Add them together,
and a file can be read, written to, and executed if it has a bitmask of "7". (This
is a simplified example -- anybody who knows UNIX security knows there is much
more to it than this. Please bear with me for the purpose of this note.) The only
way a bitmask scheme can work is by doubling the bit count for each value. Thus
if UNIX wanted to offer another file permission, the next would have to be a value of
8, then the next 16, the next 32, etc.
</PARA>
<PARA>
Similarly, Bugzilla offers a bitmask to define group permissions, with an internal
limit of 64. Several are already occupied
by built-in permissions. The way around this limitation is
to avoid assigning groups to products if you have many products, avoid bloating
of group lists, and religiously prune irrelevant groups. In reality, most installations
of Bugzilla support far fewer than 64 groups, so this limitation has not hit
for most sites, but it is on the table to be revised for Bugzilla 3.0
because it interferes with the security schemes of some administrators.
</PARA>
</NOTE>
<PARA>
To enable Generic Group Security ("usebuggroups"):
</PARA>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Turn "On" "usebuggroups" in the "Edit Parameters" screen.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
You will generally have no groups set up. Select the "groups" link
in the footer.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Take a moment to understand the instructions on the "Edit Groups" screen.
Once you feel confident you understand what is expected of you, select the
"Add Group" link.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Fill out the "New Name" (remember, no spaces!), "New Description", and "New
User RegExp" fields. "New User RegExp" allows you to automatically place
all users who fulfill the Regular Expression into the new group.
<EXAMPLE>
<TITLE>Creating a New Group</TITLE>
<INFORMALEXAMPLE>
<PARA>
I created a group called "DefaultGroup" with a description of "This is simply
a group to play with", and a "New User RegExp" of "*@velio.com". This
new group automatically includes all Bugzilla users with "@velio.com" at the
end of their user id. When I finished, my new group was assigned bit #128.
</PARA>
</INFORMALEXAMPLE>
</EXAMPLE>
When you have finished, select the "Add" button.
</PARA>
</LISTITEM>
</ORDEREDLIST>
<PARA>
To enable Product-Based Group Security ("usebuggroupsentry"):
</PARA>
<WARNING>
<PARA>
Don't forget that you only have 64 groups masks available, total, for
your installation of Bugzilla! If you plan on having more than 50
products in your individual Bugzilla installation, and require group
security for your products, you should
consider either running multiple Bugzillas or using Generic Group Security
instead of Product-Based ("usebuggroupsentry") Group Security.
</PARA>
</WARNING>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit Parameters" screen.
</PARA>
<WARNING>
<PARA>
"usebuggroupsentry" has the capacity to prevent the administrative user
from directly altering bugs because of conflicting group permissions.
If you plan on using "usebuggroupsentry", you should plan on restricting administrative
account usage to administrative duties only.
In other words, manage bugs with an unpriveleged user account, and
manage users, groups, Products, etc. with the administrative account.
</PARA>
</WARNING>
</LISTITEM>
<LISTITEM>
<PARA>
You will generally have no Groups set up, unless you enabled "usebuggroupsentry"
prior to creating any Products. To create "Generic Group Security" groups,
follow the instructions given above. To create Product-Based Group security,
simply follow the instructions for creating a new Product. If you need to
add users to these new groups as you create them, you will find the option
to add them to the group available under the "Edit User" screens.
</PARA>
</LISTITEM>
</ORDEREDLIST>
</SECTION>
</SECTION>
<SECTION id="security">
<TITLE>Bugzilla Security</TITLE>
<EPIGRAPH>
<PARA>
Putting your money in a wall safe is better protection than depending on the fact that
no one knows that you hide your money in a mayonnaise jar in your fridge.
</PARA>
</EPIGRAPH>
<NOTE>
<PARA>
Poorly-configured MySQL, Bugzilla, and FTP installations have given attackers full
access to systems in the past. Please take these guidelines seriously, even
for Bugzilla machines hidden away behind your firewall. 80% of all computer
trespassers are insiders, not anonymous crackers.
</PARA>
</NOTE>
<PARA>
First thing's first: Secure your installation.
<NOTE>
<PARA>
These instructions must, of necessity, be somewhat vague since Bugzilla runs on so many different
platforms. If you have refinements of these directions for specific platforms, please
submit them to <ULINK URL="mailto://mozilla-webtools@mozilla.org">mozilla-webtools@mozilla.org</ULINK>
</PARA>
</NOTE>
<ORDEREDLIST>
<LISTITEM>
<PARA>
Ensure you are running at least MysQL version 3.22.32 or newer. Earlier versions had
notable security holes and poorly secured default configuration choices.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA><EMPHASIS>There is no substitute for understanding the tools on your system!</EMPHASIS>
Read <ULINK URL="http://www.mysql.com/documentation/mysql/bychapter/manual_Privilege_system.html">
The MySQL Privelege System</ULINK> until you can recite it from memory!</PARA>
<PARA>
At the very least, ensure you password the "mysql -u root" account and the "bugs" account, establish grant
table rights (consult the Keystone guide in Appendix C: The Bugzilla Database for some easy-to-use details)
that do not allow CREATE, DROP, RELOAD, SHUTDOWN, and PROCESS for user "bugs". I wrote up the Keystone
advice back when I knew far less about security than I do now : )
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Lock down /etc/inetd.conf. Heck, disable inet entirely on this box. It should only listen to
port 25 for Sendmail
and port 80 for Apache.
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>Do not run Apache as "nobody". This will require very lax permissions in your Bugzilla directories.
Run it, instead, as a user with a name, set via your httpd.conf file.</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
Ensure you have adequate access controls for $BUGZILLA_HOME/data/ and $BUGZILLA_HOME/localconfig.
The localconfig file stores your "bugs" user password, which would be terrible to have in the hands
of a criminal. Also some files under $BUGZILLA_HOME/data store sensitive information.
</PARA>
<PARA>
On Apache, you can use .htaccess files to protect access to these directories, as outlined
in <ULINK URL="http://bugzilla.mozilla.org/show_bug.cgi?id=57161">Bug 57161</ULINK> for the
localconfig file, and <ULINK URL="http://bugzilla.mozilla.org/show_bug.cgi?id=65572">
Bug 65572</ULINK> for adequate protection in your data/ and shadow/ directories.
</PARA>
<PARA>
Note the instructions which follow are Apache-specific. If you use IIS, Netscape, or other
non-Apache web servers, please consult your system documentation for how to secure these
files from being transmitted to curious users.
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/data directory.
<LITERALLAYOUT>
&lt;Files comments&gt;
allow from all
&lt;/Files&gt;
deny from all
</LITERALLAYOUT>
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/ directory.
<LITERALLAYOUT>
&lt;Files localconfig&gt;
deny from all
&lt;/Files&gt;
allow from all
</LITERALLAYOUT>
</PARA>
<PARA>
Place the following text into a file named ".htaccess", readable by your web server,
in your $BUGZILLA_HOME/shadow directory.
<LITERALLAYOUT>
deny from all
</LITERALLAYOUT>
</PARA>
</LISTITEM>
<LISTITEM>
<PARA>
</PARA>
</LISTITEM>
</ORDEREDLIST>
</PARA>
</SECTION>
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<section id="conventions">
<title>Document Conventions</title>
<indexterm zone="conventions">
<primary>conventions</primary>
</indexterm>
<para>
This document uses the following conventions
</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Descriptions</entry>
<entry>Appearance</entry>
</row>
</thead>
<tbody>
<row>
<entry>Warnings</entry>
<entry><caution>
<para>Warnings.</para>
</caution></entry>
</row>
<row>
<entry>Hint</entry>
<entry><tip>
<para>Hint.</para>
</tip></entry>
</row>
<row>
<entry>Notes</entry>
<entry><note>
<para>Note.</para>
</note></entry>
</row>
<row>
<entry>Information requiring special attention</entry>
<entry><warning>
<para>Warning.</para>
</warning></entry>
</row>
<row>
<entry>File Names</entry>
<entry><filename>file.extension</filename></entry>
</row>
<row>
<entry>Directory Names</entry>
<entry><filename class="directory">directory</filename></entry>
</row>
<row>
<entry>Commands to be typed</entry>
<entry><command>command</command></entry>
</row>
<row>
<entry>Applications Names</entry>
<entry><application>application</application></entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of users command under bash shell</entry>
<entry>bash$</entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of root users command under bash shell</entry>
<entry>bash#</entry>
</row>
<row>
<entry><foreignphrase>Prompt</foreignphrase> of user command under tcsh shell</entry>
<entry>tcsh$</entry>
</row>
<row>
<entry>Environment Variables</entry>
<entry><envar>VARIABLE</envar></entry>
</row>
<row>
<entry>Emphasized word</entry>
<entry><emphasis>word</emphasis></entry>
</row>
<row>
<entry>Code Example</entry>
<entry><programlisting><sgmltag class="starttag">para</sgmltag>Beginning and end of paragraph<sgmltag class="endtag">para</sgmltag></programlisting></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<APPENDIX id="database">
<TITLE>The Bugzilla Database</TITLE>
<NOTE>
<PARA>This document really needs to be updated with more fleshed out information about primary keys, interrelationships, and maybe some nifty tables to document dependencies. Any takers? <REMARK>MPB</REMARK></PARA>
</NOTE>
<SECTION id="dbschema">
<TITLE>Database Schema Chart</TITLE>
<PARA>
<MEDIAOBJECT>
<IMAGEOBJECT>
<IMAGEDATA FILEREF="dbschema.jpg" FORMAT="jpg">
</IMAGEOBJECT>
<TEXTOBJECT>
<PHRASE>Database Relationships</PHRASE>
</TEXTOBJECT>
<CAPTION>
<PARA>Bugzilla database relationships chart</PARA>
</CAPTION>
</MEDIAOBJECT>
</PARA>
</SECTION>
<SECTION id="dbdoc">
<TITLE>MySQL Bugzilla Database Introduction</TITLE>
<LITERALLAYOUT>
Contributor(s): Matthew P. Barnson (mbarnson@excitehome.net)
Last update: May 16, 2000
Changes:
Version 1.0: Initial public release (May 16, 2000)
Maintainer: Matthew P. Barnson (mbarnson@excitehome.net)
===
Table Of Contents
===
FOREWORD
INTRODUCTION
THE BASICS
THE TABLES
THE DETAILS
===
FOREWORD
===
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.
I'm sorry this version is plain text. I can whip this info out a lot faster
if I'm not concerned about complex formatting. I'll get it into sgml for easy
portability as time permits.
The Bugzilla Database Schema has a home! In addition to availability via CVS
and released versions 2.12 and higher of Bugzilla, you can find the latest &
greatest version of the Bugzilla Database Schema at
http://www.trilobyte.net/barnsons/. This is a living document; please be sure
you are up-to-date with the latest version before mirroring.
The Bugzilla Database Schema is designed to provide vital information
regarding the structure of the MySQL database. Where appropriate, this
document will refer to URLs rather than including documents in their entirety
to ensure completeness even should this paper become out of date.
This document is not maintained by Netscape or Netscape employees, so please
do not contact them regarding errors or omissions contained herein. Please
direct all questions, comments, updates, flames, etc. to Matthew P. Barnson
mbarnson@excitehome.net) (barnboy or barnhome on irc.mozilla.org in
#mozwebtools).
I'm sure I've made some glaring errors or omissions in this paper -- please
email me corrections or post corrections to the
netscape.public.mozilla.webtools newsgroup.
===
INTRODUCTION
===
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.
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.
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!
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'.
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."
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...
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!
===
The Basics
===
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 "bigint" and a
"tinyint" entry in MySQL. I'd refer you first to the MySQL documentation,
available at http://www.mysql.com/doc.html, but that's mostly a confusing
morass of high-level database jargon. Here are the basics you need to know
about the database to proceed:
1. To connect to your database, type "mysql -u root" at the command prompt as
any user. If this works without asking you for a password, SHAME ON YOU! You
should have locked your security down like the README 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
MySQL searchable documentation at
http://www.mysql.com/php/manual.php3?section=Privilege_system .
2. You should now be at a prompt that looks like this:
mysql>
At the prompt, if "bugs" is the name of your Bugzilla database, type:
mysql> use bugs;
(don't forget the ";" at the end of each line, or you'll be kicking yourself
all the way through this documentation)
Young Grasshopper, you are now ready for the unveiling of the Bugzilla
database, in the next section...
===
THE TABLES
===
Imagine your MySQL database as a series of spreadsheets, and you won't be too
far off. If you use this command:
mysql> show tables from bugs;
you'll be able to see all the "spreadsheets" (tables) in your database. Cool,
huh? It's kinda' like a filesystem, only much faster and more robust. Come
on, I'll show you more!
From the command issued above, you should now have some output that looks
like this:
+-------------------+
| Tables in bugs |
+-------------------+
| attachments |
| bugs |
| bugs_activity |
| cc |
| components |
| dependencies |
| fielddefs |
| groups |
| keyworddefs |
| keywords |
| logincookies |
| longdescs |
| milestones |
| namedqueries |
| products |
| profiles |
| profiles_activity |
| shadowlog |
| versions |
| votes |
| watch |
+-------------------+
If it doesn't look quite the same, that probably means it's time to
update this documentation :)
Here's an overview of what each table does. Most columns in each table have
descriptive names that make it fairly trivial to figure out their jobs.
attachments: This table stores all attachments to bugs. It tends to be your
largest table, yet also generally has the fewest entries because file
attachments are so (relatively) large.
bugs: This is the core of your system. The bugs table stores most of the
current information about a bug, with the exception of the info stored in the
other tables.
bugs_activity: This stores information regarding what changes are made to bugs
when -- a history file.
cc: This tiny table simply stores all the CC information for any bug which has
any entries in the CC field of the bug. Note that, like most other tables in
Bugzilla, it does not refer to users by their user names, but by their unique
userid, stored as a primary key in the profiles table.
components: This stores the programs and components (or products and
components, in newer Bugzilla parlance) for Bugzilla. Curiously, the "program"
(product) field is the full name of the product, rather than some other unique
identifier, like bug_id and user_id are elsewhere in the database.
dependencies: Stores data about those cool dependency trees.
fielddefs: A nifty table that defines other tables. For instance, when you
submit a form that changes the value of "AssignedTo" this table allows
translation to the actual field name "assigned_to" for entry into MySQL.
groups: defines bitmasks for groups. A bitmask is a number that can uniquely
identify group memberships. For instance, say the group that is allowed to
tweak parameters is assigned a value of "1", the group that is allowed to edit
users is assigned a "2", and the group that is allowed to create new groups is
assigned the bitmask of "4". By uniquely combining the group bitmasks (much
like the chmod command in UNIX,) you can identify a user is allowed to tweak
parameters and create groups, but not edit users, by giving him a bitmask of
"5", or a user allowed to edit users and create groups, but not tweak
parameters, by giving him a bitmask of "6" Simple, huh?
If this makes no sense to you, try this at the mysql prompt:
mysql> select * from groups;
You'll see the list, it makes much more sense that way.
keyworddefs: Definitions of keywords to be used
keywords: Unlike what you'd think, this table holds which keywords are
associated with which bug id's.
logincookies: This stores every login cookie ever assigned to you for every
machine you've ever logged into Bugzilla from. Curiously, it never does any
housecleaning -- I see cookies in this file I've not used for months. However,
since Bugzilla never expires your cookie (for convenience' sake), it makes
sense.
longdescs: The meat of bugzilla -- here is where all user comments are stored!
You've only got 2^24 bytes per comment (it's a mediumtext field), so speak
sparingly -- that's only the amount of space the Old Testament from the Bible
would take (uncompressed, 16 megabytes). Each comment is keyed to the
bug_id to which it's attached, so the order is necessarily chronological, for
comments are played back in the order in which they are received.
milestones: Interesting that milestones are associated with a specific product
in this table, but Bugzilla does not yet support differing milestones by
product through the standard configuration interfaces.
namedqueries: This is where everybody stores their "custom queries". Very
cool feature; it beats the tar out of having to bookmark each cool query you
construct.
products: What products you have, whether new bug entries are allowed for the
product, what milestone you're working toward on that product, votes, etc. It
will be nice when the components table supports these same features, so you
could close a particular component for bug entry without having to close an
entire product...
profiles: Ahh, so you were wondering where your precious user information was
stored? Here it is! With the passwords in plain text for all to see! (but
sshh... don't tell your users!)
profiles_activity: Need to know who did what when to who's profile? This'll
tell you, it's a pretty complete history.
shadowlog: I could be mistaken here, but I believe this table tells you when
your shadow database is updated and what commands were used to update it. We
don't use a shadow database at our site yet, so it's pretty empty for us.
versions: Version information for every product
votes: Who voted for what when
watch: Who (according to userid) is watching who's bugs (according to their
userid).
===
THE DETAILS
===
Ahh, so you're wondering just what to do with the information above? At the
mysql prompt, you can view any information about the columns in a table with
this command (where "table" is the name of the table you wish to view):
mysql> show columns from table;
You can also view all the data in a table with this command:
mysql> select * from table;
-- note: this is a very bad idea to do on, for instance, the "bugs" table if
you have 50,000 bugs. You'll be sitting there a while until you ctrl-c or
50,000 bugs play across your screen.
You can limit the display from above a little with the command, where
"column" is the name of the column for which you wish to restrict information:
mysql> select * from table where (column = "some info");
-- or the reverse of this
mysql> select * from table where (column != "some info");
Let's take our example from the introduction, and assume you need to change
the word "verified" to "approved" in the resolution field. We know from the
above information that the resolution is likely to be stored in the "bugs"
table. Note we'll need to change a little perl code as well as this database
change, but I won't plunge into that in this document. Let's verify the
information is stored in the "bugs" table:
mysql> show columns from bugs
(exceedingly long output truncated here)
| bug_status| enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL | UNCONFIRMED||
Sorry about that long line. We see from this that the "bug status" column is
an "enum field", which is a MySQL peculiarity where a string type field can
only have certain types of entries. While I think this is very cool, it's not
standard SQL. Anyway, we need to add the possible enum field entry
'APPROVED' by altering the "bugs" table.
mysql> ALTER table bugs CHANGE bug_status bug_status
-> enum("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED",
-> "VERIFIED", "APPROVED", "CLOSED") not null;
(note we can take three lines or more -- whatever you put in before the
semicolon is evaluated as a single expression)
Now if you do this:
mysql> show columns from bugs;
you'll see that the bug_status field has an extra "APPROVED" enum that's
available! Cool thing, too, is that this is reflected on your query page as
well -- you can query by the new status. But how's it fit into the existing
scheme of things?
Looks like you need to go back and look for instances of the word "verified"
in the perl code for Bugzilla -- wherever you find "verified", change it to
"approved" and you're in business (make sure that's a case-insensitive search).
Although you can query by the enum field, you can't give something a status
of "APPROVED" until you make the perl changes. Note that this change I
mentioned can also be done by editing checksetup.pl, which automates a lot of
this. But you need to know this stuff anyway, right?
I hope this database tutorial has been useful for you. If you have comments
to add, questions, concerns, etc. please direct them to
mbarnson@excitehome.net. Please direct flames to /dev/null :) Have a nice
day!
===
LINKS
===
Great MySQL tutorial site:
http://www.devshed.com/Server_Side/MySQL/
</LITERALLAYOUT>
</SECTION>
<SECTION id="granttables">
<TITLE>MySQL Permissions & Grant Tables</TITLE>
<NOTE>
<PARA>The following portion of documentation comes from my answer to an old discussion of Keynote, a cool product that does trouble-ticket tracking for IT departments. I wrote this post to the Keynote support group regarding MySQL grant table permissions, and how to use them effectively. It is badly in need of updating, as I believe MySQL has added a field or two to the grant tables since this time, but it serves as a decent introduction and troubleshooting document for grant table issues. I used Keynote to track my troubles until I discovered Bugzilla, which gave me a whole new set of troubles to work on : )</PARA>
</NOTE>
<LITERALLAYOUT>
From matt_barnson@singletrac.com Wed Jul 7 09:00:07 1999
Date: Mon, 1 Mar 1999 21:37:04 -0700
From: Matthew Barnson matt_barnson@singletrac.com
To: keystone-users@homeport.org
Subject: [keystone-users] Grant Tables FAQ
[The following text is in the "iso-8859-1" character set]
[Your display is set for the "US-ASCII" character set]
[Some characters may be displayed incorrectly]
Maybe we can include this rambling message in the Keystone FAQ? It gets
asked a lot, and the only option current listed in the FAQ is
"--skip-grant-tables".
Really, you can't go wrong by reading section 6 of the MySQL manual, at
http://www.mysql.com/Manual/manual.html. I am sure their description is
better than mine.
MySQL runs fine without permissions set up correctly if you run the mysql
daemon with the "--skip-grant-tables" option. Running this way denies
access to nobody. Unfortunately, unless you've got yourself firewalled it
also opens the potential for abuse if someone knows you're running it.
Additionally, the default permissions for MySQL allow anyone at localhost
access to the database if the database name begins with "test_" or is named
"test" (i.e. "test_keystone"). You can change the name of your database in
the keystone.conf file ($sys_dbname). This is the way I am doing it for
some of my databases, and it works fine.
The methods described below assume you're running MySQL on the same box as
your webserver, and that you don't mind if your $sys_dbuser for Keystone has
superuser access. See near the bottom of this message for a description of
what each field does.
Method #1:
1. cd /var/lib
#location where you'll want to run /usr/bin/mysql_install_db shell
script from to get it to work.
2. ln -s mysql data
# soft links the "mysql" directory to "data", which is what
mysql_install_db expects. Alternately, you can edit mysql_install_db and
change all the "./data" references to "./mysql".
3. Edit /usr/bin/mysql_install_db with your favorite text editor (vi,
emacs, jot, pico, etc.)
A) Copy the "INSERT INTO db VALUES
('%','test\_%','','Y','Y','Y','Y','Y','Y');" and paste it immediately after
itself. Chage the 'test\_%' value to 'keystone', or the value of
$sys_dbname in keystone.conf.
B) If you are running your keystone database with any user, you'll need to
copy the "INSERT INTO user VALUES
('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');" line after
itself and change 'root' to the name of the keystone database user
($sys_dbuser) in keystone.conf.
# adds entries to the script to create grant tables for specific
hosts and users. The user you set up has super-user access ($sys_dbuser) --
you may or may not want this. The layout of mysql_install_db is really very
uncomplicated.
4. /usr/bin/mysqladmin shutdown
# ya gotta shut it down before you can reinstall the grant tables!
5. rm -i /var/lib/mysql/mysql/*.IS?' and answer 'Y' to the deletion
questions.
# nuke your current grant tables. This WILL NOT delete any other
databases than your grant tables.
6. /usr/bin/mysql_install_db
# run the script you just edited to install your new grant tables.
7. mysqladmin -u root password (new_password)
# change the root MySQL password, or else anyone on localhost can
login to MySQL as root and make changes. You can skip this step if you want
keystone to connect as root with no password.
8. mysqladmin -u (webserver_user_name) password (new_password)
# change the password of the $sys_dbuser. Note that you will need
to change the password in the keystone.conf file as well in $sys_dbpasswd,
and if your permissions are set up incorrectly anybody can type the URL to
your keystone.conf file and get the password. Not that this will help them
much if your permissions are set to @localhost.
Method #2: easier, but a pain reproducing if you have to delete your grant
tables. This is the "recommended" method for altering grant tables in
MySQL. I don't use it because I like the other way :)
shell> mysql --user=root keystone
mysql> GRANT
SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,
FILE,
ON keystone.*
TO <$sys_dbuser name>@localhost
IDENTIFIED BY '(password)'
WITH GRANT OPTION;
OR
mysql> GRANT ALL PRIVELEGES
ON keystone.*
TO <$sys_dbuser name>@localhost
IDENTIFIED BY '(password)'
WITH GRANT OPTION;
# this grants the required permissions to the keystone ($sys_dbuser)
account defined in keystone.conf. However, if you are runnning many
different MySQL-based apps, as we are, it's generally better to edit the
mysql_install_db script to be able to quickly reproduce your permissions
structure again. Note that the FILE privelege and WITH GRANT OPTION may not
be in your best interest to include.
GRANT TABLE FIELDS EXPLANATION:
Quick syntax summary: "%" in MySQL is a wildcard. I.E., if you are
defining your DB table and in the 'host' field and enter '%', that means
that any host can access that database. Of course, that host must also have
a valid db user in order to do anything useful. 'db'=name of database. In
our case, it should be "keystone". "user" should be your "$sys_dbuser"
defined in keystone.conf. Note that you CANNOT add or change a password by
using the "INSERT INTO db (X)" command -- you must change it with the mysql
-u command as defined above. Passwords are stored encrypted in the MySQL
database, and if you try to enter it directly into the table they will not
match.
TABLE: USER. Everything after "password" is a privelege granted (Y/N).
This table controls individual user global access rights.
'host','user','password','select','insert','update','delete','index','alter'
,'create','drop','grant','reload','shutdown','process','file'
TABLE: DB. This controls access of USERS to databases.
'host','db','user','select','insert','update','delete','index','alter','crea
te','drop','grant'
TABLE: HOST. This controls which HOSTS are allowed what global access
rights. Note that the HOST table, USER table, and DB table are very closely
connected -- if an authorized USER attempts an SQL request from an
unauthorized HOST, she's denied. If a request from an authorized HOST is
not an authorized USER, it is denied. If a globally authorized USER does
not have rights to a certain DB, she's denied. Get the picture?
'host','db','select','insert','update','delete','index','alter','create','dr
op','grant'
You should now have a working knowledge of MySQL grant tables. If there is
anything I've left out of this answer that you feel is pertinent, or if my
instructions don't work for you, please let me know and I'll re-post this
letter again, corrected. I threw it together one night out of exasperation
for all the newbies who don't know squat about MySQL yet, so it is almost
guaranteed to have errors.
Once again, you can't go wrong by reading section 6 of the MySQL manual. It
is more detailed than I!
http://www.mysql.com/Manual/manual.html.
----------------------------------------------------------------------------
10/12/2000
Matthew sent in some mail with updated contact information:
NEW CONTACT INFORMATION:
------------------------
Matthew P. Barnson
Manager, Systems Administration
Excite@Home Business Applications
mbarnson@excitehome.net
(801)234-8300
</LITERALLAYOUT>
</SECTION>
<SECTION id="cleanupwork">
<TITLE>Cleaning up after mucking with Bugzilla</TITLE>
<LITERALLAYOUT>
Contributed by Eric Hansen:
There are several things, and one trick. There is a small tiny piece of
documentation I saw once that said something very important.
1) After pretty much any manual working of the Mysql db, you must
delete a file in the bugzilla directory: data/versioncache
Versioncache basically is a way to speed up bugzilla (from what I
understand). It stores a lot of commonly used information. However,
this file is refreshed every so often (I can't remember the time
interval though). So eventually all changes do propogate out, so you
may see stuff suddenly working.
2) Assuming that failed, you will also have to check something with the
checksetup.pl file. It actually is run twice. The first time it
creates the file: localconfig. You can modify localconfig, (or not if
you are doing bug_status stuff) or you should delete localconfig and
rerun your modified checksetup.pl. Since I don't actually see anything
in localconfig pertaining to bug_status, this point is mainly a FYI.
</LITERALLAYOUT>
</SECTION>
</APPENDIX>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="faq">
<title>The Bugzilla FAQ</title>
<qandaset>
<qandadiv id="faq_general">
<title>General Questions</title>
<qandaentry>
<question>
<para>
Where can I find information about Bugzilla?</para>
</question>
<answer>
<para>
You can stay up-to-date with the latest Bugzilla
information at <ulink url="http://www.mozilla.org/projects/bugzilla/">
http://www.mozilla.org/projects/bugzilla/</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What license is Bugzilla distributed under?
</para>
</question>
<answer>
<para>
Bugzilla is covered by the Mozilla Public License.
See details at <ulink url="http://www.mozilla.org/MPL/">
http://www.mozilla.org/MPL/</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I get commercial support for Bugzilla?
</para>
</question>
<answer>
<para>
<ulink url="http://www.collab.net/">www.collab.net</ulink> offers
Bugzilla as part of their standard offering to large projects.
They do have some minimum fees that are pretty hefty, and generally
aren't interested in small projects.
</para>
<para>
There are several experienced
Bugzilla hackers on the mailing list/newsgroup who are willing
to whore themselves out for generous compensation.
Try sending a message to the mailing list asking for a volunteer.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What major companies or projects are currently using Bugzilla
for bug-tracking?
</para>
</question>
<answer>
<para>
There are <emphasis>dozens</emphasis> of major comapanies with public
Bugzilla sites to track bugs in their products. A few include:
<simplelist>
<member>Netscape/AOL</member>
<member>Mozilla.org</member>
<member>AtHome Corporation</member>
<member>Red Hat Software</member>
<member>Loki Entertainment Software</member>
<member>SuSe Corp</member>
<member>The Horde Project</member>
<member>The Eazel Project</member>
<member>AbiSource</member>
<member>Real Time Enterprises, Inc</member>
<member>Eggheads.org</member>
<member>Strata Software</member>
<member>RockLinux</member>
<member>Creative Labs (makers of SoundBlaster)</member>
<member>The Apache Foundation</member>
<member>The Gnome Foundation</member>
<member>Linux-Mandrake</member>
</simplelist>
</para>
<para>
Suffice to say, there are more than enough huge projects using Bugzilla
that we can safely say it's extremely popular.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Who maintains Bugzilla?
</para>
</question>
<answer>
<para>
There are many, many contributors from around the world maintaining Bugzilla.
The designated "Maintainer" is Tara Hernandez, with QA support by Matthew Tuck.
Dan Mosedale and Dawn Endico are employees of Mozilla.org responsible for the
installation of Bugzilla there, and are very frequent code contributors.
Terry Weissman originally ported Bugzilla, but "these days, Terry just hangs around
and heckles." The rest of us are mostly transient developers; Bugzilla suits
our needs, and we contribute code as we have needs for updates.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How does Bugzilla stack up against other bug-tracking databases?
</para>
</question>
<answer>
<para>
A year has gone by, and I <emphasis>still</emphasis> can't find any head-to-head
comparisons of Bugzilla against other defect-tracking software. However, from my
personal experience with other bug-trackers, Bugzilla offers
superior performance on commodity hardware, better price (free!), more developer-
friendly features (such as stored queries, email integration, and platform
independence), improved scalability, open source code, greater flexibility,
and superior ease-of-use.
</para>
<para>
If you happen to be a commercial Bugzilla vendor, please step forward with a rebuttal
so I can include it in the FAQ. We're not in pursuit of Bugzilla ueber alles;
we simply love having a powerful, open-source tool to get our jobs done.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I change my user name in Bugzilla?
</para>
</question>
<answer>
<para>
You can't. However, the administrative account can, by simply opening
your user account in editusers.cgi and changing the login name.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why doesn't Bugzilla offer this or that feature or compatability
with this other tracking software?
</para>
</question>
<answer>
<para>
It may be that the support has not been built yet, or that you
have not yet found it. Bugzilla is making tremendous strides in
usability, customizability, scalability, and user interface. It
is widely considered the most complete and popular open-source
bug-tracking software in existence.
</para>
<para>
That doesn't mean it can't use improvement!
You can help the project along by either hacking a patch yourself
that supports the functionality you require, or else submitting a
"Request for Enhancement" (RFE) using the bug submission interface
at <ulink url="http://bugzilla.mozilla.org/">bugzilla.mozilla.org</ulink>.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why MySQL? I'm interested in seeing Bugzilla run on
Oracle/Sybase/Msql/PostgreSQL/MSSQL?
</para>
</question>
<answer>
<para>Terry Weissman answers,
<blockquote>
<para>
You're not the only one. But <emphasis>I</emphasis> am not very interested. I'm not
a real SQL or database person. I just wanted to make a useful tool,
and build it on top of free software. So, I picked MySQL, and
learned SQL by staring at the MySQL manual and some code lying
around here, and
wrote Bugzilla. I didn't know that Enum's were non-standard SQL.
I'm not sure if I would have cared, but I didn't even know. So, to
me, things are "portable" because it uses MySQL, and MySQL is
portable enough. I fully understand (now) that people want to be
portable to other databases, but that's never been a real concern
of mine.
</para>
</blockquote>
</para>
<para>
Things aren't quite that grim these days, however. Terry pretty much
sums up much of the thinking many of us have for Bugzilla, but there
is light on the horizon for database-independence! Here are some options:
</para>
<simplelist>
<member>
<emphasis><ulink url="http://bugzilla.redhat.com/">Red Hat Bugzilla</ulink></emphasis>:
Runs a modified Bugzilla 2.8 atop an Oracle database.
</member>
<member>
<emphasis><ulink url="http://sourceforge.net/projects/interzilla">Interzilla</ulink></emphasis>:
A project to run Bugzilla on Interbase. No code released yet, however.
</member>
<member>
<emphasis>Bugzilla 3.0</emphasis>: One of the primary stated goals
is multiple database support.
</member>
</simplelist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why do the scripts say "/usr/bonsaitools/bin/perl" instead of
"/usr/bin/perl" or something else?
</para>
</question>
<answer>
<para>
Mozilla.org uses /usr/bonsaitools/bin/perl. The prime rule in making
submissions is "don't break bugzilla.mozilla.org". If it breaks it, your
patch will be reverted faster than you can do a diff.
</para>
<para>
Here's Terry Weissman's comment, for some historical context:
<blockquote>
<para>
[This was] purely my own convention. I wanted a place to put a version of
Perl and other tools that was strictly under my control for the
various webtools, and not subject to anyone else. Edit it to point
to whatever you like.
</para>
<note>
<para>
We always recommend that, if possible, you keep the path
as /usr/bonsaitools/bin/perl, and simply add a /usr/bonsaitools
and /usr/bonsaitools/bin directory, then symlink your version
of perl to /usr/bonsaitools/bin/perl. This will make upgrading
your Bugzilla much easier in the future.
</para>
<para>
Obviously, if you do not have root access to your Bugzilla
box, our suggestion is irrelevant.
</para>
</note>
</blockquote>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_redhat">
<title>Red Hat Bugzilla</title>
<qandaentry>
<question>
<para>
What about Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
Red Hat Bugzilla is arguably more user-friendly, customizable, and scalable
than stock Bugzilla. Check it out at
http://bugzilla.redhat.com and the sources at ftp://people.redhat.com/dkl/.
They've set their Bugzilla up to work with Oracle out of the box.
Note that Redhat Bugzilla is based upon the 2.8 Bugzilla tree;
Bugzilla has made some tremendous advances since the 2.8 release.
Why not download both Bugzillas to check out the differences for
yourself?
</para>
<para>
Dave Lawrence, the original Red Hat Bugzilla maintainer, mentions:
<blockquote>
<para>
Somebody needs to take the ball and run with it. I'm the only
maintainer and am very pressed for time.
</para>
</blockquote>
If you, or someone you know, has the time and expertise to do the integration
work so main-tree Bugzilla 2.12 and higher integrates the Red
Hat Bugzilla Oracle modifications, please donate your
time to supporting the Bugzilla project.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What are the primary benefits of Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
<emphasis>Dave Lawrence</emphasis>:
<blockquote>
<para>
For the record, we are not using any template type implementation for
the cosmetic changes maded to Bugzilla. It is just alot of html changes
in the code itself. I admit I may have gotten a little carried away with it
but the corporate types asked for a more standardized interface to match up
with other projects relating to Red Hat web sites. A lot of other web based
internal tools I am working on also look like Bugzilla.
</para>
<para>
I do want to land the changes that I have made to Bugzilla but I may
have to back out a good deal and make a different version of Red Hat's
Bugzilla for checking in to CVS. Especially the cosmetic changes because it
seems they may not fit the general public. I will do that as soon as I can.
I also still do my regular QA responsibilities along with Bugzilla so time
is difficult sometimes to come by.
</para>
<para>
There are also a good deal of other changes that were requested by
management for things like support contracts and different permission
groups for making bugs private. Here is a short list of the major
changes that have been made:
</para>
<orderedlist>
<listitem>
<para>
No enum types. All old enum types are now separate smaller tables.
</para>
</listitem>
<listitem>
<para>
No bit wise operations. Not all databases support this so they were
changed to a more generic way of doing this task
</para>
</listitem>
<listitem>
<para>
Bug reports can only be altered by the reporter, assignee, or a
privileged bugzilla user. The rest of the world can see the bug but in
a non-changeable format (unless the bug has been marked private). They
can however add comments, add and remove themselves from the CC list
</para>
</listitem>
<listitem>
<para>
Different group scheme. Each group has an id number related to it.
There is a user_group table which contains userid to groupid mappings
to determine which groups each user belongs to. Additionally there is
a bug_group table that has bugid to groupid mappings to show which
groups can see a particular bug. If there are no entries for a bug in
this table then the bug is public.
</para>
</listitem>
<listitem>
<para>
Product groups. product_table created to only allow certain products to
be visible for certain groups in both bug entry and query. This was
particulary helpful for support contracts.
</para>
</listitem>
<listitem>
<para>
Of course many (too many) changes to Bugzilla code itself to allow use
with Oracle and still allow operation with Mysql if so desired.
Currently if you use Mysql it is set to use Mysql's old permission
scheme to keep breakage to a minimum. Hopefully one day this will
standardize on one style which may of course be something completely
different.
</para>
</listitem>
<listitem>
<para>
Uses Text::Template perl module for rendering of the dynamic HTML pages
such as enter_bug.cgi, query.cgi, bug_form.pl, and for the header and
footer parts of the page. This allows the html to be separate from the
perl code for customizing the look and feel of the page to one's
preference.
</para>
</listitem>
<listitem>
<para>
There are many other smaller changes. There is also a port to Oracle
that I have been working on as time permits but is not completely
finished but somewhat usable. I will merge it into our standard code
base when it becomes production quality. Unfortunately there will have
to be some conditionals in the code to make it work with other than
Oracle due to some differences between Oracle and Mysql.
</para>
</listitem>
</orderedlist>
<para>
Both the Mysql and Oracle versions of our current code base are
available from ftp://people.redhat.com/dkl. If Terry/Tara wants I can submit
patch files for all of the changes I have made and he can determine what is
suitable for addition to the main bugzilla cade base. But for me to commit
changes to the actual CVS I will need to back out alot of things that are
not suitable for the rest of the Bugzilla community. I am open to
suggestions.
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What's the current status of Red Hat Bugzilla?
</para>
</question>
<answer>
<para>
<note>
<para>
This information is somewhat dated; I last updated it
7 June 2000.
</para>
</note>
<emphasis>Dave Lawrence</emphasis>:
<blockquote>
<para>
I suppose the current thread warrants an update on the status of
Oracle and bugzilla ;) We have now been running Bugzilla 2.8 on
Oracle for the last two days in our production environment. I
tried to do as much testing as possible with it before going live
which is some of the reason for the long delay. I did not get
enough feedback as I would have liked from internal developers to
help weed out any bugs still left so I said "Fine, i will take it
live and then I will get the feedback I want :)" So it is now
starting to stabilize and it running quite well after working
feverishly the last two days fixing problems as soon as they came
in from the outside world. The current branch in cvs is up2date if
anyone would like to grab it and try it out. The oracle _setup.pl
is broken right now due to some last minute changes but I will
update that soon. Therefore you would probably need to create the
database tables the old fashioned way using the supplied sql
creation scripts located in the ./oracle directory. We have heavy
optimizations in the database it self thanks to the in-house DBA
here at Red Hat so it is running quite fast. The database itself
is located on a dual PII450 with 1GB ram and 14 high voltage
differential raided scsi drives. The tables and indexes are
partitioned in 4 chuncks across the raided drive which is nice
because when ever you need to do a full table scan, it is actually
starting in 4 different locations on 4 different drives
simultaneously. And the indexes of course are on separate drives
from the data so that speeds things up tremendously. When I can
find the time I will document all that we have done to get this
thing going to help others that may need it.
</para>
<para>
As Matt has mentioned it is still using out-dated code and with a
little help I would like to bring everything up to date for
eventual incorporation with the main cvs tree. Due to other
duties I have with the company any help with this wiould be
appreciated. What we are using now is what I call a best first
effort. It definitely can be improved on and may even need
complete rewrites in a lot of areas. A lot of changes may have to
be made in the way Bugzilla does things currently to make this
transition to a more generic database interface. Fortunately when
making the Oracle changes I made sure I didn't do anything that I
would consider Oracle specific and could not be easily done with
other databases. Alot of the sql statements need to be broken up
into smaller utilities that themselves would need to make
decisions on what database they are using but the majority of the
code can be made database neutral.
</para>
</blockquote>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_loki">
<title>Loki Bugzilla (AKA Fenris)</title>
<note>
<para>
Loki's "Fenris" Bugzilla is no longer actively maintained.
It works well enough for Loki. Additionally, the major
differences in Fenris have now been integrated into
the main source tree of Bugzilla, so there's not much
reason to go grab the source. I left this section of the
FAQ principally for historical interest.
</para>
</note>
<qandaentry>
<question>
<para>
What about Loki Bugzilla?
</para>
</question>
<answer>
<para>
Loki Games has a customized version of Bugzilla available at
http://fenris.lokigames.com. From that page,
<blockquote>
<para>
You may have noticed that Fenris is a fork from Bugzilla-- our
patches weren't suitable for integration --and a few people have
expressed interest in the code. Fenris has one major improvement
over Bugzilla, and that is individual comments are not appended
onto a string blob, they are stored as a record in a separate
table. This allows you to, for instance, separate comments out
according to privilege levels in case your bug database could
contain sensitive information not for public eyes. We also provide
things like email hiding to protect user's privacy, additional
fields such as 'user_affected' in case someone enters someone
else's bug, comment editing and deletion, and more conditional
system variables than Bugzilla does (turn off attachments,
qacontact, etc.).
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Who maintains Fenris (Loki Bugzilla) now?
</para>
</question>
<answer>
<para>
Raphael Barrerro &lt;raistlin@lokigames.com&gt;.
Michael Vance created the initial fork, but no longer
maintains the project.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
</para>
</question>
</qandaentry>
</qandadiv>
<qandadiv id="faq_phb">
<title>Pointy-Haired-Boss Questions</title>
<note>
<para>
The title of this section doesn't mean you're a PHB -- it just means
you probably HAVE a PHB who wants to know this :)
</para>
</note>
<qandaentry>
<question>
<para>
Is Bugzilla web-based or do you have to have specific software or
specific operating system on your machine?
</para>
</question>
<answer>
<para>
It is web and e-mail based. You can edit bugs by sending specially
formatted email to a properly configured Bugzilla, or control via the web.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Has anyone you know of already done any Bugzilla integration with
Perforce (SCM software)?
</para>
</question>
<answer>
<para>
Yes! You can find more information elsewhere in "The Bugzilla
Guide" in the "Integration with Third-Party Products" section.
The section on Perforce isn't very large, but as the maintainer
of the Guide is charged with Perforce/Bugzilla integration by
his company, you can expect this section to grow.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow the user to track multiple projects?
</para>
</question>
<answer>
<para>
Absolutely! You can track up to a "soft-limit" of around
64 individual "Products", that can each be composed of as
many "Components" as you want. Check the Administration
section of the Bugzilla Guide for more information regarding
setting up Products and Components.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If I am on many projects, and search for all bugs assigned to me, will
Bugzilla list them for me and allow me to sort by project, severity etc?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes,
are there any that are NOT allowed?
</para>
</question>
<answer>
<para>
Yes. There are many specific MIME-types that are pre-defined by Bugzilla,
but you may specify any arbitrary MIME-type you need when you
upload the file. Since all attachments are stored in the database,
however, I recommend storing large binary attachments elsewhere
in the web server's file system and providing a hyperlink
as a comment, or in the provided "URL" field in the bug report.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
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?
</para>
</question>
<answer>
<para>
Yes. However, modifying some fields, notably those related to bug
progression states, also require adjusting the program logic to
compensate for the change.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla provide any reporting features, metrics, graphs, etc? You
know, the type of stuff that management likes to see. :)
</para>
</question>
<answer>
<para>
Yes. Look at <ulink url="http://bugzilla.mozilla.org/reports.cgi">
http://bugzilla.mozilla.org/reports.cgi</ulink> for basic reporting
facilities.
</para>
<para>
For more advanced reporting, I recommend hooking up a professional
reporting package, such as Crystal Reports, and use ODBC to access
the MySQL database. You can do a lot through the Query page of
Bugzilla as well, but right now Advanced Reporting is much
better accomplished through third-party utilities that can
interface with the database directly.
</para>
<para>
Advanced Reporting is a Bugzilla 3.X proposed feature.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there email notification and if so, what do you see when you get an
email? Do you see bug number and title or is it only the number?
</para>
</question>
<answer>
<para>
Email notification is user-configurable. The bug id and Topic
of the bug report accompany each email notification, along with
a list of the changes made.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can email notification be set up to send to multiple
people, some on the To List, CC List, BCC List etc?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If there is email notification, do users have to have any particular
type of email application?
</para>
</question>
<answer>
<para>
Bugzilla email is sent in plain text, the most compatible mail format
on the planet.
<note>
<para>
If you decide to use the bugzilla_email integration features
to allow Bugzilla to record responses to mail with the associated bug,
you may need to caution your users to set their mailer to "respond
to messages in the format in which they were sent". For security reasons
Bugzilla ignores HTML tags in comments, and if a user sends HTML-based
email into Bugzilla the resulting comment looks downright awful.
</para>
</note>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
If I just wanted to track certain bugs, as they go through life, can I
set it up to alert me via email whenever that bug changes, whether it be
owner, status or description etc.?
</para>
</question>
<answer>
<para>
Yes. Place yourself in the "cc" field of the bug you wish to monitor.
Then change your "Notify me of changes to" field in the Email Settings
tab of the User Preferences screen in Bugzilla to the "Only those
bugs which I am listed on the CC line" option.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow data to be imported and exported? If I had outsiders
write up a bug report using a MS Word bug template, could that template be
imported into "matching" fields? If I wanted to take the results of a query
and export that data to MS Excel, could I do that?
</para>
</question>
<answer>
<para>
Mozilla allows data export through a custom DTD in XML format.
It does not, however, export to specific formats other than the
XML Mozilla DTD. Importing the data into Excel or any other application
is left as an exercise for the reader.
</para>
<para>
If you create import filters to other applications from Mozilla's XML,
please submit your modifications for inclusion in future Bugzilla
distributions.
</para>
<para>
As for data import, any application can send data to Bugzilla through
the HTTP protocol, or through Mozilla's XML API. However, it seems
kind of silly to put another front-end in front of Bugzilla;
it makes more sense to create a simplified bug submission form in
HTML. You can find an excellent example at
<ulink url="http://www.mozilla.org/quality/help/bugzilla-helper.html">
http://www.mozilla.org/quality/help/bugzilla-helper.html</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla allow fields to be added, changed or deleted? If I want to
customize the bug submission form to meet our needs, can I do that using our
terminology?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Has anyone converted Bugzilla to another language to be used in other
countries? Is it localizable?
</para>
</question>
<answer>
<para>
Currently, no. Internationalization support for Perl did not
exist in a robust fashion until the recent release of version 5.6.0;
Bugzilla is, and likely will remain (until 3.X) completely
non-localized.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user create and save reports? Can they do this in Word format?
Excel format?
</para>
</question>
<answer>
<para>
Yes. No. No.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user re-run a report with a new project, same query?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can a user modify an existing report and then save it into another name?
</para>
</question>
<answer>
<para>
You can save an unlimited number of queries in Bugzilla. You are free
to modify them and rename them to your heart's desire.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Does Bugzilla have the ability to search by word, phrase, compound
search?
</para>
</question>
<answer>
<para>
You have no idea. Bugzilla's query interface, particularly with the
advanced Boolean operators, is incredibly versatile.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can the admin person establish separate group and individual user
privileges?
</para>
</question>
<answer>
<para>
Yes.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
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?
</para>
</question>
<answer>
<para>
Bugzilla does not lock records. It provides mid-air collision detection,
and offers the offending user a choice of options to deal with the conflict.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Are there any backup features provided?
</para>
</question>
<answer>
<para>
MySQL, the database back-end for Bugzilla, allows hot-backup of data.
You can find strategies for dealing with backup considerations
at <ulink url="http://www.mysql.com/doc/B/a/Backup.html">
http://www.mysql.com/doc/B/a/Backup.html</ulink>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can users be on the system while a backup is in progress?
</para>
</question>
<answer>
<para>
Yes. However, commits to the database must wait
until the tables are unlocked. Bugzilla databases are typically
very small, and backups routinely take less than a minute.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What type of human resources are needed to be on staff to install and
maintain Bugzilla? Specifically, what type of skills does the person need to
have? I need to find out if we were to go with Bugzilla, what types of
individuals would we need to hire and how much would that cost vs buying an
"Out-of-the-Box" solution.
</para>
</question>
<answer>
<para>
If Bugzilla is set up correctly from the start, continuing maintenance needs
are minimal and can be completed by unskilled labor. Things like rotate
backup tapes and check log files for the word "error".
</para>
<para>
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.
</para>
<para>
As an example, as of this writing I typically charge
$115 for the first hour, and $89 each hour thereafter
for consulting work. It takes me three to five hours to make Bugzilla
happy on a Development installation of Linux-Mandrake.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What time frame are we looking at if we decide to hire people to install
and maintain the Bugzilla? Is this something that takes hours or weeks to
install and a couple of hours per week to maintain and customize or is this
a multi-week install process, plus a full time job for 1 person, 2 people,
etc?
</para>
</question>
<answer>
<para>
It all depends on your level of commitment. Someone with much Bugzilla
experience can get you up and running in less than a day, and
your Bugzilla install can run untended for years. If your
Bugzilla strategy is critical to your business workflow, hire somebody
with reasonable UNIX or Perl skills to handle your process management and
bug-tracking maintenance & customization.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
</para>
</question>
<answer>
<para>
No. MySQL asks, if you find their product valuable, that you purchase
a support contract from them that suits your needs.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_install">
<title>Bugzilla Installation</title>
<qandaentry>
<question>
<para>
How do I download and install Bugzilla?
</para>
</question>
<answer>
<para>
Check <ulink url="http://www.mozilla.org/projects/bugzilla/">
http://www.mozilla.org/projects/bugzilla/</ulink> for details.
Once you download it, untar it, read the README and
the Bugzilla Guide.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I install Bugzilla on Windows NT?
</para>
</question>
<answer>
<para>
Installation on Windows NT has its own section in
"The Bugzilla Guide".
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there an easy way to change the Bugzilla cookie name?
</para>
</question>
<answer>
<para>
At present, no.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_security">
<title>Bugzilla Security</title>
<qandaentry>
<question>
<para>
How do I completely disable MySQL security if it's giving me problems
(I've followed the instructions in the README!)?
</para>
</question>
<answer>
<para>
Run mysql like this: "mysqld --skip-grant-tables". Please remember <emphasis>this
makes mysql as secure as taping a $100 to the floor of a football stadium
bathroom for safekeeping.</emphasis> Please read the Security section of the
Administration chapter of "The Bugzilla Guide" before proceeding.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Are there any security problems with Bugzilla?
</para>
</question>
<answer>
<para>
The Bugzilla code has not undergone a complete security audit.
It is recommended that you closely examine permissions on your Bugzilla
installation, and follow the recommended security guidelines found
in the README and in The Bugzilla Guide.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I've implemented the security fixes mentioned in Chris Yeh's security
advisory of 5/10/2000 advising not to run MySQL as root, and am running into
problems with MySQL no longer working correctly.
</para>
</question>
<answer>
<para>
This is a common problem, related to running out of file descriptors.
Simply add "ulimit -n unlimited" to the script which starts
mysqld.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_email">
<title>Bugzilla Email</title>
<qandaentry>
<question>
<para>
I have a user who doesn't want to receive any more email from Bugzilla.
How do I stop it entirely for this user?
</para>
</question>
<answer>
<para>
With the email changes to 2.12, the user should be able to set
this in user email preferences.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm evaluating/testing Bugzilla, and don't want it to send email to
anyone but me. How do I do it?
</para>
</question>
<answer>
<para>
Edit the param for the mail text. Replace "To:" with "X-Real-To:",
replace "Cc:" with "X-Real-CC:", and add a "To: (myemailaddress)".
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
</para>
</question>
<answer>
<para>
Try Klaas Freitag's excellent patch for "whineatassigned" functionality.
You can find it at<ulink url=" http://bugzilla.mozilla.org/show_bug.cgi?id=6679">
http://bugzilla.mozilla.org/show_bug.cgi?id=6679</ulink>. This
patch is against an older version of Bugzilla, so you must apply
the diffs manually.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
</para>
</question>
<answer>
<para>
You can call bug_email.pl directly from your aliases file, with
an entry like this:
<blockquote>
<para>
bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
</para>
</blockquote>
However, this is fairly nasty and subject to problems; you also
need to set up your smrsh (sendmail restricted shell) to allow
it. In a pinch, though, it can work.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I set up the email interface to submit/change bugs via email?
</para>
</question>
<answer>
<para>
You can find an updated README.mailif file in the contrib/ directory
of your Bugzilla distribution that walks you through the setup.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Email takes FOREVER to reach me from bugzilla -- it's extremely slow.
What gives?
</para>
</question>
<answer>
<para>
If you are using an alternate Mail Transport Agent (MTA other than
sendmail), make sure the options given in the "processmail" script for all
instances of "sendmail" are correct for your MTA. If you are using Sendmail,
you may wish to delete the "-ODeliveryMode=deferred" option in the
"processmail" script for every invocation of "sendmail". (Be sure and leave
the "-t" option, though!)
</para>
<para>
A better alternative is to change the "-O" option to
"-ODeliveryMode=background". This prevents Sendmail from hanging your
Bugzilla Perl processes if the domain to which it must send mail
is unavailable.
</para>
<para>
This is now a configurable parameter called "sendmailparm", available
from editparams.cgi.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How come email never reaches me from bugzilla changes?
</para>
</question>
<answer>
<para>
Double-check that you have not turned off email in your user preferences.
Confirm that Bugzilla is able to send email by visiting the "Log In"
link of your Bugzilla installation and clicking the "Email me a password"
button after entering your email address.
</para>
<para>
If you never receive mail from Bugzilla, chances you do not have
sendmail in "/usr/lib/sendmail". Ensure sendmail lives in, or is symlinked
to, "/usr/lib/sendmail".
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_db">
<title>Bugzilla Database</title>
<qandaentry>
<question>
<para>
I've heard Bugzilla can be used with Oracle?
</para>
</question>
<answer>
<para>
Red Hat Bugzilla, mentioned above, works with Oracle. The current version
from Mozilla.org does not have this capability. Unfortunately, though
you will sacrifice a lot of the really great features available in
Bugzilla 2.10 and 2.12 if you go with the 2.8-based Redhat version.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Bugs are missing from queries, but exist in the database (and I can pull
them up by specifying the bug ID). What's wrong?
</para>
</question>
<answer>
<para>
You've almost certainly enabled the "shadow database", but for some
reason it hasn't been updated for all your bugs. This is the database
against which queries are run, so that really complex or slow queries won't
lock up portions of the database for other users. You can turn off the
shadow database in editparams.cgi. If you wish to continue using the shadow
database, then as your "bugs" user run "./syncshadowdb -syncall" from the
command line in the bugzilla installation directory to recreate your shadow
database. After it finishes, be sure to check the params and make sure that
"queryagainstshadowdb" is still turned on. The syncshadowdb program turns it
off if it was on, and is supposed to turn it back on when completed; that
way, if it crashes in the middle of recreating the database, it will stay
off forever until someone turns it back on by hand. Apparently, it doesn't
always do that yet.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I think my database might be corrupted, or contain invalid entries. What
do I do?
</para>
</question>
<answer>
<para>
Run the "sanity check" utility (./sanitycheck.cgi in the bugzilla_home
directory) to see! If it all comes back, you're 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...
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I want to manually edit some entries in my database. How?
</para>
</question>
<answer>
<para>
There is no facility in Bugzilla itself to do this. It's also generally
not a smart thing to do if you don't know exactly what you're doing.
However, if you understand SQL you can use the mysqladmin utility to
manually insert, delete, and modify table information. Personally, I
use "phpMyAdmin". You have to compile a PHP module with MySQL
support to make it work, but it's very clean and easy to use.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I try to add myself as a user, but Bugzilla always tells me my password is wrong.
</para>
</question>
<answer>
<para>
Certain version of MySQL (notably, 3.23.29 and 3.23.30) accidentally disabled
the "crypt()" function. This prevented MySQL from storing encrypted passwords.
Upgrade to the "3.23 stable" version of MySQL and you should be good to go.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I think I've set up MySQL permissions correctly, but bugzilla still can't
connect.
</para>
</question>
<answer>
<para>
Try running MySQL from its binary: "mysqld --skip-grant-tables". This
will allow you to completely rule out grant tables as the cause of your
frustration. However, I do not recommend you run it this way on a regular
basis, unless you really want your web site defaced and your machine
cracked.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I synchronize bug information among multiple different Bugzilla
databases?
</para>
</question>
<answer>
<para>
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.
</para>
<para>
MySQL has some synchronization features builtin to the latest releases.
It would be great if someone looked into the possibilities there
and provided a report to the newsgroup on how to effectively
synchronize two Bugzilla installations.
</para>
<para>
If you simply need to transfer bugs from one Bugzilla to another,
checkout the "move.pl" script in the Bugzilla distribution.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Why do I get bizarre errors when trying to submit data, particularly problems
with "groupset"?
</para>
</question>
<answer>
<para>
If you're sure your MySQL parameters are correct, you might want turn
"strictvaluechecks" OFF in editparams.cgi. If you have "usebugsentry" set
"On", you also cannot submit a bug as readable by more than one group with
"strictvaluechecks" ON.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How come even after I delete bugs, the long descriptions show up?
</para>
</question>
<answer>
<para>
Delete everything from $BUZILLA_HOME/shadow. Bugzilla creates shadow
files there, with each filename corresponding to a
bug number. Also be sure to run syncshadowdb to make sure, if you are using
a shadow database, that the shadow database is current.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_nt">
<title>Bugzilla and Win32</title>
<qandaentry>
<question>
<para>
What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
</para>
</question>
<answer>
<para>
Remove Windows. Install Linux. Install Bugzilla.
The boss will never know the difference.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Is there a "Bundle::Bugzilla" equivalent for Win32?
</para>
</question>
<answer>
<para>
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.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
</para>
</question>
<answer>
<para>
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 &lt;path&gt;\perl.exe %s %s as the
executable.
</para>
<para>
Microsoft has some advice on this matter, as well:
<blockquote>
<para>
"Set application mappings. In the ISM, map the extension for the script
file(s) to the executable for the script interpreter. For example, you might
map the extension .py to Python.exe, the executable for the Python script
interpreter. Note For the ActiveState Perl script interpreter, the extension
.pl is associated with PerlIS.dll by default. If you want to change the
association of .pl to perl.exe, you need to change the application mapping.
In the mapping, you must add two percent (%) characters to the end of the
pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe %s %s"
</para>
</blockquote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can I have some general instructions on how to make Bugzilla on Win32 work?
</para>
</question>
<answer>
<para>
The following couple entries are deprecated in favor of the Windows installation
instructions available in the "Administration" portion of "The Bugzilla Guide".
However, they are provided here for historical interest and insight.
<literallayout>
1. #!C:/perl/bin/perl had to be added to every perl file.
2. Converted to Net::SMTP to handle mail messages instead of
/usr/bin/sendmail.
3. The crypt function isn't available on Windows NT (at least none that I
am aware), so I made encrypted passwords = plaintext passwords.
4. The system call to diff had to be changed to the Cygwin diff.
5. This was just to get a demo running under NT, it seems to be working
good, and I have inserted almost 100 bugs from another bug tracking
system. Since this work was done just to get an in-house demo, I am NOT
planning on making a patch for submission to Bugzilla. If you would
like a zip file, let me know.
Q: Hmm, couldn't figure it out from the general instructions above. How
about step-by-step?
A: Sure! Here ya go!
1. Install IIS 4.0 from the NT Option Pack #4.
2. Download and install Active Perl.
3. Install the Windows GNU tools from Cygwin. Make sure to add the bin
directory to your system path. (Everyone should have these, whether
they decide to use Bugzilla or not. :-) )
4. Download relevant packages from ActiveState at
http://www.activestate.com/packages/zips/. + DBD-Mysql.zip
5. Extract each zip file with WinZip, and install each ppd file using the
notation: ppm install &lt;module&gt;.ppd
6. Install Mysql. *Note: If you move the default install from c:\mysql,
you must add the appropriate startup parameters to the NT service. (ex.
-b e:\\programs\\mysql)
7. Download any Mysql client. http://www.mysql.com/download_win.html
8. Setup MySql. (These are the commands that I used.)
I. Cleanup default database settings.
C:\mysql\bin\mysql -u root mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> quit
C:\mysql\bin\mysqladmin reload
II. Set password for root.
C:\mysql\bin\mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
III. Create bugs user.
C:\mysql\bin\mysql -u root -p
mysql> insert into user (host,user,password)
values('localhost','bugs','');
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
IV. Create the bugs database.
C:\mysql\bin\mysql -u root -p
mysql> create database bugs;
V. Give the bugs user access to the bugs database.
mysql> insert into db
(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv)
values('localhost','bugs','bugs','Y','Y','Y','Y','Y','N')
mysql> quit
C:\mysql\bin\mysqladmin -u root reload
9. Run the table scripts to setup the bugs database.
10. Change CGI.pm to use the following regular expression because of
differing backslashes in NT versus UNIX.
o $0 =~ m:[^\\]*$:;
11. Had to make the crypt password = plain text password in the database.
(Thanks to Andrew Lahser" &lt;andrew_lahser@merck.com&gt;" on this one.) The
files that I changed were:
o globals.pl
o CGI.pl
o alternately, you can try commenting all references to 'crypt'
string and replace them with similar lines but without encrypt()
or crypr() functions insida all files.
12. Replaced sendmail with Windmail. Basically, you have to come up with a
sendmail substitute for NT. Someone said that they used a Perl module
(Net::SMTP), but I was trying to save time and do as little Perl coding
as possible.
13. Added "perl" to the beginning of all Perl system calls that use a perl
script as an argument and renamed processmail to processmail.pl.
14. In processmail.pl, I added binmode(HANDLE) before all read() calls. I'm
not sure about this one, but the read() under NT wasn't counting the
EOLs without the binary read."
</literallayout>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm having trouble with the perl modules for NT not being able to talk to
to the database.
</para>
</question>
<answer>
<para>
Your modules may be outdated or inaccurate. Try:
<orderedlist>
<listitem>
<para>
Hitting http://www.activestate.com/ActivePerl
</para>
</listitem>
<listitem>
<para>
Download ActivePerl
</para>
</listitem>
<listitem>
<para>
Go to your prompt
</para>
</listitem>
<listitem>
<para>
Type 'ppm'
</para>
</listitem>
<listitem>
<para>
<prompt>PPM></prompt> <command>install DBI DBD-mysql GD</command>
</para>
</listitem>
</orderedlist>
I reckon TimeDate and Data::Dumper come with the activeperl. You can check
the ActiveState site for packages for installation through PPM.
<ulink url=" http://www.activestate.com/Packages/">
http://www.activestate.com/Packages/</ulink>
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_use">
<title>Bugzilla Usage</title>
<qandaentry>
<question>
<para>
The query page is very confusing. Isn't there a simpler way to query?
</para>
</question>
<answer>
<para>
We are developing in that direction. You can follow progress on this
at <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=16775">
http://bugzilla.mozilla.org/show_bug.cgi?id=16775</ulink>. Some functionality
is available in Bugzilla 2.12, and is available as "quicksearch.html"
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I'm confused by the behavior of the "accept" button in the Show Bug form.
Why doesn't it assign the bug to me when I accept it?
</para>
</question>
<answer>
<para>
The current behavior is acceptable to bugzilla.mozilla.org and most
users. I personally don't like it. You have your choice of patches
to change this behavior, however.
<simplelist>
<member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029">
Add a "and accept bug" radio button</ulink></member>
<member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8153">
"Accept" button automatically assigns to you</ulink></member>
</simplelist>
Note that these patches are somewhat dated. You will need to do the find
and replace manually to apply them. They are very small, though. It is easy.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
I can't upload anything into the database via the "Create Attachment"
link. What am I doing wrong?
</para>
</question>
<answer>
<para>
The most likely cause is a very old browser or a browser that is
incompatible with file upload via POST. Download the latest Netscape,
Microsoft, or Mozilla browser to handle uploads correctly.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Email submissions to Bugzilla that have attachments end up asking me to
save it as a "cgi" file.
</para>
</question>
<answer>
<para>
Yup. Just rename it once you download it, or save it under a different
filename. This will not be fixed anytime too soon, because it would
cripple some other functionality.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
How do I change a keyword in Bugzilla, once some bugs are using it?
</para>
</question>
<answer>
<para>
In the Bugzilla administrator UI, edit the keyword and it will let you
replace the old keyword name with a new one. This will cause a problem
with the keyword cache. Run sanitycheck.cgi to fix it.
</para>
</answer>
</qandaentry>
</qandadiv>
<qandadiv id="faq_hacking">
<title>Bugzilla Hacking</title>
<qandaentry>
<question>
<para>
What bugs are in Bugzilla right now?
</para>
</question>
<answer>
<para>
Try <ulink url="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;product=Webtools&amp;component=Bugzilla">
this link</ulink> to view current bugs or requests for
enhancement for Bugzilla.
</para>
<para>
You can view bugs marked for 2.14 release
<ulink url="http://bugzilla.mozilla.org/buglist.cgi?product=Webtools&amp;component=Bugzilla&amp;target_milestone=Bugzilla+2.14">here</ulink>.
This list includes bugs for the 2.14 release that have already
been fixed and checked into CVS. Please consult the
<ulink url="http://www.mozilla.org/projects/bugzilla/">
Bugzilla Project Page</ulink> for details on how to
check current sources out of CVS so you can have these
bug fixes early!
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
What's the best way to submit patches? What guidelines should I follow?
</para>
</question>
<answer>
<blockquote>
<orderedlist>
<listitem>
<para>
Enter a bug into bugzilla.mozilla.org for the "Webtools" product,
"Bugzilla" component.
</para>
</listitem>
<listitem>
<para>
Upload your patch as a unified DIFF (having used "diff -u" against
the <emphasis>current sources</emphasis> checked out of CVS),
or new source file by clicking
"Create a new attachment" link on the bug page you've just created, and
include any descriptions of database changes you may make, into the bug
ID you submitted in step #1. Be sure and click the "Patch" radio
button to indicate the text you are sending is a patch!
</para>
</listitem>
<listitem>
<para>
Announce your patch and the associated URL
(http://bugzilla.mozilla.org/show_bug.cgi?id=XXXX) 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.
</para>
</listitem>
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
Bask in the glory of the fact that you helped write the most successful
open-source bug-tracking software on the planet :)
</para>
</listitem>
</orderedlist>
</blockquote>
</answer>
</qandaentry>
</qandadiv>
</qandaset>
</APPENDIX>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="gfdl">
<title>GNU Free Documentation License</title>
<!-- - GNU Project - Free Software Foundation (FSF) -->
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
<!-- sect1>
<title>GNU Free Documentation License</title -->
<para>Version 1.1, March 2000</para>
<blockquote>
<para>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.</para>
</blockquote>
<sect1 label="0" id="gfdl_0">
<title>PREAMBLE</title>
<para>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.</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="1" id="gfdl_1">
<title>APPLICABILITY AND DEFINITIONS</title>
<para>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".</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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".</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="2" id="gfdl_2">
<title>VERBATIM COPYING</title>
<para>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.</para>
<para>You may also lend copies, under the same conditions stated
above, and you may publicly display copies.</para>
</sect1>
<sect1 label="3" id="gfdl_3">
<title>COPYING IN QUANTITY</title>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="4" id="gfdl_4">
<title>MODIFICATIONS</title>
<para>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:</para>
<orderedlist numeration="upperalpha">
<listitem><para>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.</para>
</listitem>
<listitem><para>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).</para>
</listitem>
<listitem><para>State on the Title page
the name of the publisher of the Modified Version, as the
publisher.</para>
</listitem>
<listitem><para>Preserve all the
copyright notices of the Document.</para>
</listitem>
<listitem><para>Add an appropriate
copyright notice for your modifications adjacent to the other
copyright notices.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>Preserve in that license
notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.</para>
</listitem>
<listitem><para>Include an unaltered
copy of this License.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>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.</para>
</listitem>
<listitem><para>Delete any section
entitled "Endorsements". Such a section may not be included in
the Modified Version.</para>
</listitem>
<listitem><para>Do not retitle any
existing section as "Endorsements" or to conflict in title with
any Invariant Section.</para>
</listitem>
</orderedlist>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>The author(s) and publisher(s) of the Document do not by
this License give permission to use their names for publicity for
or to assert or imply endorsement of any Modified Version.</para>
</sect1>
<sect1 label="5" id="gfdl_5">
<title>COMBINING DOCUMENTS</title>
<para>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.</para>
<para>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.</para>
<para>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."</para>
</sect1>
<sect1 label="6" id="gfdl_6">
<title>COLLECTIONS OF DOCUMENTS</title>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="7" id="gfdl_7">
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
<para>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.</para>
<para>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.</para>
</sect1>
<sect1 label="8" id="gfdl_8">
<title>TRANSLATION</title>
<para>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.</para>
</sect1>
<sect1 label="9" id="gfdl_9">
<title>TERMINATION</title>
<para>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.</para>
</sect1>
<sect1 label="10" id="gfdl_10">
<title>FUTURE REVISIONS OF THIS LICENSE</title>
<para>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 <ulink
url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
<para>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.</para>
</sect1>
<sect1 label="" id="gfdl_howto">
<title>How to use this License for your documents</title>
<para>To use this License in a document you have written, include
a copy of the License in the document and put the following
copyright and license notices just after the title page:</para>
<blockquote><para>
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".
</para></blockquote>
<para>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.</para>
<para>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.</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-parent-document: ("Bugzilla-Guide.sgml" "appendix")
sgml-exposed-tags:nil
sgml-local-ecat-files:nil
sgml-local-catalogs: CATALOG
sgml-validate-command: "nsgmls -s gfdl.sgml"
ispell-skip-sgml: t
End:
-->
<!-- <!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<glossary id="glossary">
<glossdiv id="gloss_a">
<title>A</title>
<glossentry>
<glossterm>There are no entries for A</glossterm>
<glossdef>
<para></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_b">
<title>B</title>
<glossentry>
<glossterm>Bug</glossterm>
<glossdef>
<para>A "Bug" in Bugzilla refers to an issue entered into the database which has an associated number, assignments, comments, etc. Many also refer to a "Ticket" or "Issue"; in this context, they are synonymous.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Bug Number</glossterm>
<glossdef>
<para>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.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Bug Life Cycle</glossterm>
<glossdef>
<para>A Bug has stages through which it must pass before becoming a "closed bug", including acceptance, resolution, and verification. The "Bug Life Cycle" is moderately flexible according to the needs of the organization using it, though.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_i">
<title>I</title>
<glossentry id="gloss_infiniteloop">
<glossterm>Infinite Loop</glossterm>
<glosssee otherterm="gloss_recursion">
</glossentry>
</glossdiv>
<glossdiv id="gloss_p">
<title>P</title>
<glossentry>
<glossterm id="gloss_product">Product</glossterm>
<glossdef>
<para>A Product is a broad category of types of bugs. In general, there are several Components to a Product. A Product also defines a default Group (used for Bug Security) for all bugs entered into components beneath it.</para>
<example>
<title>A Sample Product</title>
<para>A company sells a software product called "X". They also maintain some older software called "Y", and have a secret project "Z". An effective use of Products might be to create Products "X", "Y", and "Z", each with Components "User Interface", "Database", and "Business Logic". They might also change group permissions so that only those people who are members of Group "Z" can see components and bugs under Product "Z".</para>
</example>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_q">
<title>Q</title>
<glossentry>
<glossterm>Q/A</glossterm>
<glossdef>
<para>"Q/A" is short for "Quality Assurance". 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 "Q/A Contact" field in a Bug.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_r">
<title>R</title>
<glossentry>
<glossterm id="gloss_recursion">Recursion</glossterm>
<glosssee otherterm="gloss_infiniteloop">
</glossentry>
</glossdiv>
<glossdiv id="gloss_z">
<title>Z</title>
<glossentry>
<glossterm>Zarro Boogs Found</glossterm>
<glossdef>
<para>This is the cryptic response sent by Bugzilla when a query returned no results. It is just a goofy way of saying "Zero Bugs Found".</para>
</glossdef>
</glossentry>
</glossdiv>
</glossary>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<CHAPTER id="installation">
<TITLE>Installing Bugzilla</TITLE>
<SECTION id="README.unix">
<TITLE>UNIX Installation</TITLE>
<NOTE>
<PARA>
Please consult the README included with the Bugzilla distribution
as the current canonical source for UNIX installation instructions.
We do, however, have some installation notes for errata from the README.
</PARA>
</NOTE>
<NOTE>
<PARA>
If you are installing Bugzilla on S.u.S.e. Linux, or some other
distributions with "paranoid" security options, it is possible
that the checksetup.pl script may fail with the error:
<ERRORNAME>cannot chdir(/var/spool/mqueue): Permission denied</ERRORNAME>
This is because your
/var/spool/mqueue directory has a mode of "drwx------". Type
<COMMAND>chmod 755 /var/spool/mqueue</COMMAND> as root to fix this problem.
</PARA>
</NOTE>
<NOTE>
<PARA>
</PARA>
</NOTE>
</SECTION>
<SECTION id="README.windows">
<TITLE>Win32 (Win98+/NT/2K) Installation</TITLE>
<PARA>
These directions have <EMPHASIS>not</EMPHASIS> been extensively tested.
We need testers! Please try these out and post any changes to the
newsgroup.
</PARA>
<SECTION id="ntverified">
<TITLE>Win32 Installation: Step-by-step</TITLE>
<NOTE>
<PARA>
You should be familiar with, and cross-reference, the UNIX README
while performing your Win32 installation. Unfortunately, Win32
directions are not yet as detailed as those for UNIX.
</PARA>
<PARA>
The <EMPHASIS>most critical</EMPHASIS> difference for Win32 users is
the lack of support for a crypt() function in MySQL for Windows. It does not
have it! All ENCRYPT statements must be modified.
</PARA>
</NOTE>
<PROCEDURE>
<STEP>
<PARA>
Install <ULINK URL="http://www.apache.org/">Apache Web Server</ULINK>
for Windows.
</PARA>
<NOTE>
<PARA>
You may also use Internet Information Server or Personal Web
Server for this purpose. However, setup is slightly more
difficult. If ActivePerl doesn't seem to handle your file
associations correctly (for .cgi and .pl files), please
consult the FAQ, in the "Win32" section.
</PARA>
<PARA>
If you are going to use IIS, if on Windows NT you must be updated
to at least Service Pack 4.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Install <ULINK URL="http://www.activestate.com/">ActivePerl</ULINK>
</PARA>
<PARA>
Please also check the following links to fully understand the status
of ActivePerl on Win32:
<ULINK URL="http://language.perl.com/newdocs/pod/perlport.html">
Perl Porting</ULINK>, and
<ULINK URL="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html">
Hixie Click Here</ULINK>
</PARA>
</STEP>
<STEP>
<PARA>
Use ppm from your perl\bin directory to install the following packs: DBI,
DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, and GD. You may need
to extract them from .zip format using Winzip or other unzip program first.
These additional ppm modules can be downloaded from ActiveState.
</PARA>
<PARA>
The syntax for ppm is:
<COMPUTEROUTPUT>
<PROMPT>C:> </PROMPT><COMMAND>ppm install &lt;module&gt;.ppd</COMMAND>
</COMPUTEROUTPUT>
</PARA>
<PARA>
You can find ActiveState ppm modules at
<ULINK URL="http://www.activestate.com/PPMPackages/5.6plus/">
http://www.activestate.com/PPMPackages/5.6plus</ULINK>
</PARA>
</STEP>
<STEP>
<PARA>
Download and install the Windows GNU tools from
<ULINK URL="http://www.cygwin.com/">www.cygwin.com</ULINK>.
Make sure the GNU utilities are in your $PATH.
</PARA>
</STEP>
<STEP>
<PARA>
Install MySQL for NT.
<NOTE>
<PARA>
Your configuration file for MySQL <EMPHASIS>must</EMPHASIS> be named C:\MY.CNF.
</PARA>
</NOTE>
</PARA>
</STEP>
<STEP>
<PARA>
Setup MySQL
</PARA>
<SUBSTEPS>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>C:> </PROMPT>
<COMMAND>C:\mysql\bin\mysql -u root mysql</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>DELETE FROM user WHERE Host='localhost' AND User='';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>UPDATE user SET Password=PASSWORD ('new_password')
WHERE user='root';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>GRANT SELECT, INSERT, UPDATE, DELETE,
INDEX, ALTER, CREATE, DROP, REFERENCES
ON bugs.* to bugs@localhost
IDENTIFIED BY 'bugs_password';</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>FLUSH PRIVILEGES;</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>create database bugs;</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>mysql></PROMPT>
<COMMAND>exit</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
<STEP>
<PARA>
<COMPUTEROUTPUT>
<PROMPT>C:></PROMPT>
<COMMAND>C:\mysql\bin\mysqladmin -u root -p reload</COMMAND>
</COMPUTEROUTPUT>
</PARA>
</STEP>
</SUBSTEPS>
</STEP>
<STEP>
<PARA>
Configure Bugzilla. For Win32, this involves editing "defparams.pl"
and "localconfig" to taste. Running "checksetup.pl" should create
localconfig for you. Note that getgrnam() doesn't work, and should be
deleted. Change this line:
"my $webservergid = getgrnam($my_webservergroup); "
to
"my $webservergid = $my_webservergroup; "
</PARA>
</STEP>
<STEP>
<NOTE>
<PARA>
There are several alternatives to Sendmail that will work on Win32.
The one mentioned here is a <EMPHASIS>suggestion</EMPHASIS>, not
a requirement. Some other mail packages that can work include
<ULINK URL="http://www.blat.net/">BLAT</ULINK>,
<ULINK URL="http://www.geocel.com/windmail/">Windmail</ULINK>,
<ULINK URL="http://www.dynamicstate.com/">Mercury Sendmail</ULINK>,
and the CPAN Net::SMTP Perl module (available in .ppm).
Every option requires some hacking of the Perl scripts for Bugzilla
to make it work. The option here simply requires the least.
</PARA>
</NOTE>
<PARA>
Download NTsendmail, available from<ULINK URL="http://www.ntsendmail.com/">
www.ntsendmail.com</ULINK>. In order for it to work, you must set up some
new environment variables (detailed on the ntsendmail home page). Figuring
out where to put those variables is left as an exercise for the reader.
You must have a "real" mail server which allows you to relay off it
in your $ENV{"NTsendmail"} (which you should probably place in globals.pl)
</PARA>
<PARA>
Once downloaded and installed, modify all open(SENDMAIL) calls to open
"| c:\ntsendmail\ntsendmail -t" instead of "|/usr/lib/sendmail -t".
</PARA>
<NOTE>
<PARA>
We need someone to test this and make sure this works as advertised.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Modify globals.pl and CGI.pl to remove the word "encrypt".
</PARA>
<NOTE>
<PARA>
I'm not sure this is all that is involved to remove crypt. Any
NT Bugzilla hackers want to pipe up?
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Change all references to "processmail" to "processmail.pl" in
all files, and rename "processmail" to "processmail.pl"
</PARA>
<NOTE>
<PARA>
I really think this may be a change we want to make for
main-tree Bugzilla. It's painless for the UNIX folks,
and will make the Win32 people happier.
</PARA>
</NOTE>
</STEP>
<STEP>
<PARA>
Modify the path to perl on the first line (#!) of all files
to point to your Perl installation, and
add "perl" to the beginning of all Perl system calls that
use a perl script as an argument. This may take you a while.
There is a "setperl.pl" utility to speed part of this procedure,
available in the "Patches and Utilities" section of The Bugzilla Guide.
</PARA>
</STEP>
<STEP>
<PARA>
In processmail.pl, add "binmode(HANDLE)" before all read() calls.
This may not be necessary, but in some cases the read() under
Win32 doesn't count the EOL's without using a binary read().
</PARA>
</STEP>
</PROCEDURE>
</SECTION>
<SECTION id="addlwintips">
<TITLE>Additional Windows Tips</TITLE>
<TIP>
<PARA>
From Andrew Pearson:
<BLOCKQUOTE>
<PARA>
"You can make Bugzilla work with Personal Web Server for
Windows 98 and higher, as well as for IIS 4.0. Microsoft has
information available at
<ULINK URL=" http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP">
http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</ULINK>
</PARA>
<PARA>
Basically you need to add two String Keys in the
registry at the following location:
</PARA>
<PARA>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
</PARA>
<PARA>
The keys should be called ".pl" and ".cgi", and both
should have a value something like:
<COMMAND>c:/perl/bin/perl.exe "%s" "%s"</COMMAND>
</PARA>
<PARA>
The KB article only talks about .pl, but it goes into
more detail and provides a perl test script.
</PARA>
</BLOCKQUOTE>
</PARA>
</TIP>
</SECTION>
</SECTION>
</CHAPTER>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:upper
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
<!-- Keep these tools listings in alphabetical order please. -MPB -->
<chapter id="integration">
<title>Integrating Bugzilla with Third-Party Tools</title>
<section id="bonsai">
<title>Bonsai</title>
<para>We need Bonsai integration information.</para>
</section>
<section id="cvs">
<title>CVS</title>
<para>We need CVS integration information</para>
</section>
<section id="scm">
<title>Perforce SCM</title>
<para>
Richard Brooksby and his team have an integration tool
in public beta. You can find it at
<ulink url="http://www.ravenbrook.com/project/p4dt">
http://www.ravenbrook.com/project/p4dti</ulink>.
</para>
</section>
<section id="tinderbox">
<title>Tinderbox</title>
<para>We need Tinderbox integration information</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="patches">
<title>Useful Patches and Utilities for Bugzilla</title>
<section id="setperl">
<title>The setperl.pl Utility</title>
<para>
You can use the "setperl.pl" utility to quickly and easily
change the path to perl on all your Bugzilla files.
</para>
<procedure>
<step>
<para>
Download the "setperl.pl" utility to your Bugzilla
directory and make it executable.
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>cd /your/path/to/bugzilla</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O setperl.pl 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=10795'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x setperl.pl</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Prepare (and fix) Bugzilla file permissions.
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+w *</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x duplicates.cgi</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod a-x bug_status.html</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Run the script:
</para>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>./setperl.pl /your/path/to/perl</command>
</computeroutput>
</para>
</step>
</procedure>
</section>
<section id="cmdline">
<title>Command-line Bugzilla Queries</title>
<para>
Users can query Bugzilla from the command line using
this suite of utilities.
</para>
<para>
The query.conf file contains the mapping from options to field
names and comparison types. Quoted option names are "grepped" for, so
it should be easy to edit this file. Comments (#) have no effect; you
must make sure these lines do not contain any quoted "option"
</para>
<para>
buglist is a shell script which submits a Bugzilla query and writes the
resulting HTML page to stdout. It supports both short options,
(such as "-Afoo" or "-Rbar") and long options (such as
"--assignedto=foo" or "--reporter=bar"). If the first character
of an option is not "-", it is treated as if it were prefixed
with "--default=".
</para>
<para>
The columlist is taken from the COLUMNLIST environment variable.
This is equivalent to the "Change Columns" option when you list
bugs in buglist.cgi. If you have already used Bugzilla, use
<command>grep COLUMLIST ~/.netscape/cookies</command> to see
your current COLUMNLIST setting.
</para>
<para>
bugs is a simple shell script which calls buglist and extracts
the bug numbers from the output. Adding the prefix
"http://bugzilla.mozilla.org/buglist.cgi?bug_id="
turns the bug list into a working link if any bugs are found.
Counting bugs is easy. Pipe the results through
<command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command>
</para>
<para>
Akkana says she has good results piping buglist output through
<command>w3m -T text/html -dump</command>
</para>
<procedure>
<step>
<para>
Download three files:
</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O query.conf 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O buglist 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O bugs 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215'</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>
Make your utilities executable:
<computeroutput>
<prompt>bash$</prompt>
<command>chmod u+x buglist bugs</command>
</computeroutput>
</para>
</step>
</procedure>
</section>
<section id="quicksearch">
<title>The Quicksearch Utility</title>
<para>
Quicksearch is a new, experimental feature of the 2.12 release.
It consist of two Javascript files, "quicksearch.js" and "localconfig.js",
and two documentation files, "quicksearch.html" and "quicksearchhack.html"
</para>
<para>
The index.html page has been updated to include the QuickSearch text box.
</para>
<para>
To take full advantage of the query power, the Bugzilla maintainer must
edit "localconfig.js" according to the value sets used in the local installation.
</para>
<para>
Currently, keywords must be hard-coded in localconfig.js. If they are not,
keywords are not automatically recognized. This means, if localconfig.js
is left unconfigured, that searching for a bug with the "foo" keyword
will only find bugs with "foo" in the summary, status whiteboard, product or
component name, but not those with the keyword "foo".
</para>
<para>
Workarounds for Bugzilla users:
<simplelist>
<member>search for '!foo' (this will find only bugs with the keyword "foo"</member>
<member>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</member>
</simplelist>
</para>
<para>
When this tool is ported from client-side JavaScript to server-side Perl,
the requirement for hard-coding keywords can be fixed.
<ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">This bug</ulink>
has details.
</para>
</section>
</appendix>
\ No newline at end of file
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!-- TOC
Chapter: Using Bugzilla
Create an account
Logging in
Setting up preferences
Account Settings
Email Settings
Page Footer
Permissions
Life cycle of a bug
Creating a bug
Checking for duplicates
Overview of all bug fields
Setting bug permissions
The Query Interface
Standard Queries
Email Queries
Boolean Queries
Regexp Queries
The Query Results
Changing Columns
Changing sorting order
Mass changes
Miscellaneous usage hints
-->
<chapter id="using">
<title>Using Bugzilla</title>
<epigraph>
<para>
What, Why, How, & What's in it for me?
</para>
</epigraph>
<section id="whatis">
<title>What is Bugzilla?</title>
<para>
Bugzilla is one example of a class of programs called "Defect Tracking Systems",
or, more commonly, "Bug-Tracking Systems". Defect Tracking Systems allow individual or
groups of developers to keep track of outstanding bugs in their product effectively.
At the time Bugzilla was originally written, as a port from Netscape Communications'
"Bugsplat!" program to Perl from TCL, there were very few competitors in the market
for bug-tracking software. Most commercial defect-tracking software vendors at the
time charged enormous licensing fees. Bugzilla quickly became a favorite of the
open-source crowd (with its genesis in the open-source browser project, Mozilla) and
is now the de-facto standard defect-tracking system against which all others are
measured.
</para>
<para>
Bugzilla has matured immensely, and now boasts many advanced features. These include:
<itemizedlist>
<listitem>
<para>
integrated, product-based granular security schema
</para>
</listitem>
<listitem>
<para>
inter-bug dependencies and dependency graphing
</para>
</listitem>
<listitem>
<para>
advanced reporting capabilities
</para>
</listitem>
<listitem>
<para>
a robust, stable RDBMS back-end
</para>
</listitem>
<listitem>
<para>
extensive configurability
</para>
</listitem>
<listitem>
<para>
a very well-understood and well-thought-out natural bug resolution protocol
</para>
</listitem>
<listitem>
<para>
email, XML, and HTTP APIs
</para>
</listitem>
<listitem>
<para>
integration with several automated software configuration management systems
</para>
</listitem>
<listitem>
<para>
too many more features to list
</para>
</listitem>
</itemizedlist>
</para>
<para>
Despite its current robustness and popularity, however, Bugzilla
faces some near-term challenges, such as reliance on a single database, a lack of
abstraction of the user interface and program logic, verbose email bug
notifications, a powerful but daunting query interface, little reporting configurability,
problems with extremely large queries, some unsupportable bug resolution options,
no internationalization, and dependence on some nonstandard libraries.
</para>
<para>
Despite these small problems, Bugzilla is very hard to beat. It is under <emphasis>very</emphasis>
active development to address the current issues, and a long-awaited overhaul in the form
of Bugzilla 3.0 is expected sometime later this year.
</para>
</section>
<section id="why">
<title>Why Should We Use Bugzilla?</title>
<epigraph>
<para>
No, Who's on first...
</para>
</epigraph>
<para>
For many years, defect-tracking software has remained principally the domain
of large software development houses. Even then, most shops never bothered
with bug-tracking software, and instead simply relied on shared lists and
email to monitor the status of defects. This procedure is error-prone and
tends to cause those bugs judged least significant by developers to be
dropped or ignored
</para>
<para>
These days, many companies are finding that integrated defect-tracking
systems reduce downtime, increase productivity, and raise customer
satisfaction with their systems. Along with full disclosure, an open
bug-tracker allows manufacturers to keep in touch with their clients
and resellers, to communicate about problems effectively throughout
the data management chain. Many corporations have also discovered that
defect-tracking helps reduce costs by providing IT support accountability,
telephone support knowledge bases, and a common, well-understood system
for accounting for unusual system or software issues.
</para>
<para>
But why should <emphasis>you</emphasis> use Bugzilla?
</para>
<para>
Bugzilla is very adaptable to various situations. Known uses currently
include IT support queues, Systems Administration deployment management,
chip design and development problem tracking (both pre-and-post fabrication),
and software bug tracking for luminaries such as Redhat, Loki software,
Linux-Mandrake, and VA Systems. Combined with systems such as CVS, Bonsai,
or Perforce SCM, Bugzilla provides a powerful, easy-to-use solution to
configuration management and replication problems
</para>
<para>
Bugzilla can dramatically increase the productivity and accountability
of individual employees by providing a documented workflow and positive
feedback for good performance. How many times do you wake up in the
morning, remembering that you were supposed to do *something* today,
but you just can't quite remember? Put it in Bugzilla, and you have a record
of it from which you can extrapolate milestones, predict product versions
for integration, and by using Bugzilla's e-mail integration features
be able to follow the discussion trail that led to critical decisions.
</para>
<para>
Ultimately, Bugzilla puts the power in your hands to improve your value
to your employer or business while providing a usable framework for your natural
attention to detail and knowledge store to flourish.
</para>
</section>
<section id="how">
<title>How do I use Bugzilla?</title>
<epigraph>
<para>
Hey! I'm Woody! Howdy, Howdy, Howdy!
</para>
</epigraph>
<para>
Bugzilla is a large and complex system. Describing how to use it
requires some time. If you are only interested in installing or administering
a Bugzilla installation, please consult the Installing and Administering
Bugzilla portions of this Guide. This section is principally aimed towards
developing end-user mastery of Bugzilla, so you may fully enjoy the benefits
afforded by using this reliable open-source bug-tracking software.
</para>
<para>
Throughout this portion of the Guide, we will refer to user account
options available at the Bugzilla test installation,
<ulink url="http://landfill.tequilarista.org/">
landfill.tequilarista.org</ulink>.
Although Landfill serves as a great introduction to Bugzilla, it does not offer
all the options you would have as a user on your own installation of Bugzilla,
nor can it do more than serve as a general introduction to Bugzilla.
However, please use it if you want to
follow this tutorial.
</para>
<section id="myaccount">
<title>Create a Bugzilla Account</title>
<para>
First thing's first! 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 the end-user Bugzilla experience, use this URL:
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/">
http://landfill.tequilarista.org/mozilla/bugzilla/</ulink>
</para>
<orderedlist>
<listitem>
<para>
Click the "Open a new Bugzilla account" link.
</para>
</listitem>
<listitem>
<para>
Enter your "E-mail address" and "Real Name" (or whatever name you want to call yourself)
in the spaces provided, then select the "Create Account" button.
</para>
</listitem>
<listitem>
<para>
Within 5-10 minutes, you should receive an email to the address you provided above,
which contains your login name (generally the same as the email address), and
a password you can use to access your account. This password is randomly generated,
and should be changed at your nearest opportunity (we'll go into how to do it later).
</para>
</listitem>
<listitem>
<para>
Click the "Log In" link in the yellow area at the bottom of the page in your browser,
then enter your "E-mail address" and "Password" you just received into the spaces provided,
and select "Login".
<note>
<para>
If you ever forget your password, you can come back to this page, enter your
"E-mail address", then select the "E-mail me a password" button to have your password
mailed to you again so that you can login.
</para>
</note>
<caution>
<para>
Many modern browsers include an "Auto-Complete" or "Form Fill" feature to
remember the user names and passwords you type in at many sites. Unfortunately,
sometimes they attempt to "guess" what you will put in as your password, and guess
wrong. If you notice a text box is already filled out, please overwrite the contents
of the text box so you can be sure to input the correct information.
</para>
</caution>
</para>
</listitem>
</orderedlist>
<para>
Congratulations! If you followed these directions, you now are the
proud owner of a user account on landfill.tequilarista.org (Landfill) or
your local Bugzilla install. You should now see in your browser a
page called the "Bugzilla Query Page". It may look daunting, but
with this Guide to walk you through it, you will master it in no time.
</para>
</section>
<section id="query">
<title>The Bugzilla Query Page</title>
<para>
The Bugzilla Query Page is the heart and soul of Bugzilla. It is the master
interface where you can find any bug report, comment, or patch currently in the Bugzilla
system. We'll go into how to create your own bug report later on.
</para>
<para>
There are efforts underway to simplify query usage. If you have a local installation
of Bugzilla 2.12 or higher, you should have "quicksearch.html" available
to use and simplify your searches. There is also, or shortly will be, a helper
for the query interface, called "queryhelp.cgi". Landfill tends to run the latest code,
so these two utilities should be available there for your perusal.
</para>
<para>
At this point, please visit the main Bugzilla site,
<ulink url="http://bugzilla.mozilla.org/query.cgi">
bugzilla.mozilla.org</ulink>, to see a more fleshed-out query page.
</para>
<para>
The first thing you need to notice about the Bugzilla Query Page is that
nearly every box you see on your screen has a hyperlink nearby, explaining what
it is or what it does. Near the upper-left-hand corner of your browser window
you should see the word "Status" underlined. Select it.
</para>
<para>
Notice the page that popped up? Every underlined word you see on your screen
is a hyperlink that will take you to context-sensitive help.
Click around for a while, and learn what everything here does. To return
to the query interface after pulling up a help page, use the "Back" button in
your browser.
</para>
<para>
I'm sure that after checking out the online help, you are now an Expert
on the Bugzilla Query Page. If, however, you feel you haven't mastered it yet,
let me walk you through making a few successful queries to find out what there
are in the Bugzilla bug-tracking system itself.
</para>
<orderedlist>
<listitem>
<para>
Ensure you are back on the "Bugzilla Query Page"
Do nothing in the boxes marked "Status", "Resolution", "Platform", "OpSys",
"Priority", or "Severity". The default query for "Status" is to find all bugs that
are NEW, ASSIGNED, or REOPENED, which is what we want. If you don't select anything
in the other 5 scrollboxes there, then you are saying that "any of these are OK";
we're not locking ourselves into only finding bugs on the "DEC" Platform, or "Windows 95"
OpSys (Operating System). You're smart, I think you have it figured out.
</para>
<para>
Basically, selecting <emphasis>anything</emphasis> on the query page narrows your search
down. Leaving stuff unselected, or text boxes unfilled, broadens your search!
</para>
</listitem>
<listitem>
<para>
You see the box immediately below the top six boxes that contains an "Email" text box,
with the words "matching as", a drop-down selection box, then some checkboxes with
"Assigned To" checked by default? This allows you to filter your search down based upon
email address. Let's put my email address in there, and see what happens.
</para>
<para>
Type "barnboy@trilobyte.net" in the top Email text box.
</para>
</listitem>
<listitem>
<para>
Let's narrow the search some more. Scroll down until you find the box with the word
"Program" over the top of it. This is where we can narrow our search down to only
specific products (software programs or product lines) in our Bugzilla database.
Please notice the box is a <emphasis>scrollbox</emphasis>. Using the down arrow on the
scrollbox, scroll down until you can see an entry called "Webtools". Select this entry.
</para>
</listitem>
<listitem>
<para>
Did you notice that some of the boxes to the right changed when you selected "Webtools"?
Every Program (or Product) has different Versions, Components, and Target Milestones associated
with it. A "Version" is the number of a software program.
<example>
<title>Some Famous Software Versions</title>
<informalexample>
<para>
Do you remember the hype in 1995 when Microsoft Windows 95(r) was released?
It may have been several years
ago, but Microsoft(tm) spent over $300 Million advertising this new Version of their
software. Three years later, they released Microsoft Windows 98(r),
another new version, to great fanfare, and then in 2000 quietly
released Microsoft Windows ME(Millenium Edition)(r).
</para>
<para>
Software "Versions" help a manufacturer differentiate
their current product from their
previous products. Most do not identify their products
by the year they were released.
Instead, the "original" version of their software will
often be numbered "1.0", with
small bug-fix releases on subsequent tenths of a digit. In most cases, it's not
a decimal number; for instance, often 1.9 is an <emphasis>older</emphasis> version
of the software than 1.11,
but is a <emphasis>newer</emphasis> version than 1.1.1.
</para>
<para>
In general, a "Version" in Bugzilla should refer to
<emphasis>released</emphasis>
products, not products that have not yet been released
to the public. Forthcoming products
are what the Target Milestone field is for.
</para>
</informalexample>
</example>
</para>
<para>
A "Component" is a piece of a Product.
It may be a standalone program, or some other logical
division of a Product or Program.
Normally, a Component has a single Owner, who is responsible
for overseeing efforts to improve that Component.
<example>
<title>Mozilla Webtools Components</title>
<informalexample>
<para>
Mozilla's "Webtools" Product is composed of several pieces (Components):
<simplelist>
<member><emphasis>Bonsai</emphasis>,
a tool to show recent changes to Mozilla</member>
<member><emphasis>Bugzilla</emphasis>,
a defect-tracking tool</member>
<member><emphasis>Build</emphasis>,
a tool to automatically compile source code
into machine-readable form</member>
<member><emphasis>Despot</emphasis>,
a program that controls access to the other Webtools</member>
<member><emphasis>LXR</emphasis>,
a utility that automatically marks up text files
to make them more readable</member>
<member><emphasis>MozBot</emphasis>,
a "robot" that announces changes to Mozilla in Chat</member>
<member><emphasis>TestManager</emphasis>,
a tool to help find bugs in Mozilla</member>
<member><emphasis>Tinderbox</emphasis>,
which displays reports from Build</member>
</simplelist>
</para>
<para>
A different person is responsible for each of these Components.
Tara Hernandez keeps
the "Bugzilla" component up-to-date.
</para>
</informalexample>
</example>
</para>
<para>
A "Milestone", or "Target Milestone" is a often a planned future "Version" of a
product. In many cases, though, Milestones simply represent significant dates for
a developer. Having certain features in your Product is frequently
tied to revenue (money)
the developer will receive if the features work by the time she
reaches the Target Milestone.
Target Milestones are a great tool to organize your time.
If someone will pay you $100,000 for
incorporating certain features by a certain date,
those features by that Milestone date become
a very high priority. Milestones tend to be highly malleable creatures,
though, that appear
to be in reach but are out of reach by the time the important day arrives.
</para>
<para>
The Bugzilla Project has set up Milestones for future
Bugzilla versions 2.14, 2.16, 2.18, 3.0, etc. However,
a Target Milestone can just as easily be a specific date,
code name, or weird alphanumeric
combination, like "M19".
</para>
</listitem>
<listitem>
<para>
OK, now let's select the "Bugzilla" component from its scrollbox.
</para>
</listitem>
<listitem>
<para>
Skip down the page a bit -- do you see the "submit query" button?
Select it, and let's run
this query!
</para>
</listitem>
<listitem>
<para>
Congratulations! You've completed your first Query, and have before you the Bug List
of the author of this Guide, Matthew P. Barnson (barnboy@trilobyte.net). If I'm
doing well,
you'll have a cryptic "Zarro Boogs Found" message on your screen. It is just
a happy hacker's way of saying "Zero Bugs Found". However, I am fairly certain I will
always have some bugs assigned to me that aren't done yet,
so you won't often see that message!
</para>
</listitem>
</orderedlist>
<para>
I encourage you to click the bug numbers in the left-hand column and examine
my bugs. Also notice that if you click the underlined
links near the top of this page, they do
not take you to context-sensitive help here,
but instead sort the columns of bugs on the screen!
When you need to sort your bugs by priority, severity,
or the people they are assigned to, this
is a tremendous timesaver.
</para>
<para>
A couple more interesting things about the Bug List page:
<simplelist>
<member><emphasis>Change Columns</emphasis>:
by selecting this link, you can show all kinds
of information in the Bug List</member>
<member><emphasis>Change several bugs at once</emphasis>:
If you have sufficient rights to change all
the bugs shown in the Bug List, you can mass-modify them.
This is a big time-saver.</member>
<member><emphasis>Send mail to bug owners</emphasis>:
If you have many related bugs, you can request
an update from every person who owns the bugs in
the Bug List asking them the status.</member>
<member><emphasis>Edit this query</emphasis>:
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.</member>
</simplelist>
</para>
<note>
<para>
There are many more options to the Bugzilla Query Page
and the Bug List than I have shown you.
But this should be enough for you to learn to get around.
I encourage you to check out the
<ulink url="http://www.mozilla.org/bugs/">Bugzilla Home Page</ulink>
to learn about the Anatomy
and Life Cycle of a Bug before continuing.
</para>
</note>
</section>
<section id="bugreports">
<title>Creating and Managing Bug Reports</title>
<epigraph>
<para>And all this time, I thought we were taking bugs <emphasis>out</emphasis>...</para>
</epigraph>
<section id="bug_writing">
<title>Writing a Great Bug Report</title>
<para>
Before we plunge into writing your first bug report, I encourage you to read
<ulink url="http://www.mozilla.org/quality/bug-writing-guidelines.html">Mozilla.org's Bug
Writing Guidelines</ulink>. 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.
</para>
<para>
While you are at it, why not learn how to find previously reported bugs? Mozilla.org
has published a great tutorial on finding duplicate bugs, available at
<ulink url="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html">
http://www.mozilla.org/quality/help/beginning-duplicate-finding.html</ulink>.
</para>
<para>
I realize this was a lot to read. However, understanding the mentality of writing
great bug reports will help us on the next part!
</para>
<orderedlist>
<listitem>
<para>
Go back to <ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/">
http://landfill.tequilarista.org/mozilla/bugzilla/</ulink>
in your browser.
</para>
</listitem>
<listitem>
<para>
Select the
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/enter_bug.cgi">
Enter a new bug report</ulink> link.
</para>
</listitem>
<listitem>
<para>
Select a product.
</para>
</listitem>
<listitem>
<para>
Now you should be at the "Enter Bug" form.
The "reporter" should have been automatically filled out
for you (or else Bugzilla prompted you to Log In again
-- you did keep the email with your username
and password, didn't you?).
</para>
</listitem>
<listitem>
<para>
Select a Component in the scrollbox.
</para>
</listitem>
<listitem>
<para>
Bugzilla should have made reasonable guesses, based upon your browser,
for the "Platform" and "OS" drop-down
boxes. If those are wrong, change them -- if you're on an SGI box
running IRIX, we want to know!
</para>
</listitem>
<listitem>
<para>
Fill in the "Assigned To" box with the email address you provided earlier.
This way you don't end up sending copies of your bug to lots of other people,
since it's just a test bug.
</para>
</listitem>
<listitem>
<para>
Leave the "CC" text box blank.
Fill in the "URL" box with "http://www.mozilla.org".
</para>
</listitem>
<listitem>
<para>
Enter "The Bugzilla Guide" in the Summary text box,
and place any comments you have on this
tutorial, or the Guide in general, into the Description box.
</para>
</listitem>
</orderedlist>
<para>
Voila! Select "Commit" and send in your bug report!
Next we'll look at resolving bugs.
</para>
</section>
<section id="bug_manage">
<title>Managing your Bug Reports</title>
<para>
OK, you should have a link to the bug you just created near the top of your page.
It should say
"Bug XXXX posted", with a link to the right saying "Back to BUG# XXXX".
Select this link.
</para>
<orderedlist>
<listitem>
<para>
Scroll down a bit on the subsequent page,
until you see the "Resolve bug, changing resolution to (dropdown box).
Normally, you would
"Accept bug (change status to ASSIGNED)", fix it, and then resolve.
But in this case, we're
going to short-circuit the process because this wasn't a real bug.
Change the dropdown next to
"Resolve Bug" to "INVALID", make sure the radio button is
marked next to "Resolve Bug", then
click "Commit".
</para>
</listitem>
<listitem>
<para>
Hey! It said it couldn't take the change in a big red box!
That's right, you must specify
a Comment in order to make this change. Select the "Back"
button in your browser, add a
Comment, then try Resolving the bug with INVALID status again.
This time it should work.
</para>
</listitem>
</orderedlist>
<para>
You have now learned the basics of Bugzilla navigation,
entering a bug, and bug maintenance.
I encourage you to explore these features, and see what you can do with them!
We'll spend no more time on individual Bugs or Queries from this point on, so you are
on your own there.
</para>
<para>
But I'll give a few last hints!
</para>
<para>
There is a <ulink url="http://bugzilla.mozilla.org/help.html">CLUE</ulink>
on the Query page
that will teach you more how to use the form.
</para>
<para>
If you click the hyperlink on the
<ulink url="http://bugzilla.mozilla.org/describecomponents.cgi">Component</ulink>
box of the Query page, you will be presented a form that will describe what all
the components are.
</para>
<para>
Possibly the most powerful feature of the Query page is the
<ulink url="http://bugzilla.mozilla.org/booleanchart.html">Boolean Chart</ulink> section.
It's a bit confusing to use the first time, but can provide unparalleled
flexibility in your queries,
allowing you to build extremely powerful requests.
</para>
<para>
Finally, you can build some nifty
<ulink url="http://bugzilla.mozilla.org/reports.cgi">Reports</ulink>
using the "Bug Reports" link near the bottom of the query page, and also
available via the "Reports" link
at the footer of each page.
</para>
</section>
</section>
</section>
<section id="init4me">
<title>What's in it for me?</title>
<epigraph>
<para>
Indiana, it feels like we walking on fortune cookies!
</para>
<para>
These ain't fortune cookies, kid...
</para>
</epigraph>
<para>
Customized User Preferences offer tremendous versatility to
your individual Bugzilla experience.
Let's plunge into what you can do! The first step is to click
the "Edit prefs" link at the footer of each page once you
have logged in to
<ulink url="http://landfill.tequilarista.org/mozilla/bugzilla/query.cgi?GoAheadAndLogIn=1">
Landfill</ulink>.
</para>
<section id="accountsettings">
<title>Account Settings</title>
<para>
On this page, you can change your basic Account Settings,
including your password and full name.
For security reasons, in order to change anything on this page you
must type your <emphasis>current</emphasis>
password into the "Old Password" field.
If you wish to change your password, type the new password you
want into the "New Password" field and again into the "Re-enter
new password" field to ensure
you typed your new password correctly. Select the "Submit" button and you're done!
</para>
</section>
<section id="emailsettings">
<title>Email Settings</title>
<section id="notification">
<title>Email Notification</title>
<para>
Ahh, here you can reduce or increase the amount of email sent you from Bugzilla!
In the drop-down "Notify me of changes to", select one of
<simplelist>
<member><emphasis>All qualifying bugs</emphasis>: sends you every change to every bug
where your name is somewhere on it, regardless of who changed it.</member>
<member><emphasis>Only those bugs which I am listed in the CC line</emphasis>: prevents
you from receiving mail for which you are the reporter,'
owner, or QA contact. If you are on the CC
list, presumably someone had a <emphasis>good</emphasis>
reason for you to get the email.</member>
<member><emphasis>All qulifying bugs except those which I change</emphasis>:
This is the default, and
a sensible setting. If someone else changes your bugs, you will get emailed,
but if you change bugs
yourself you will receive no notification of the change.</member>
</simplelist>
</para>
</section>
<section id="newemailtech">
<title>New Email Technology</title>
<note>
<para>
This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable newemailtech
in Params"
and "make it the default for all new users", referring her to the Administration section
of this Guide.
</para>
</note>
<para>
Disregard the warnings about "experimental and bleeding edge"; the code to handle email
in a cleaner manner than that historically used for Bugzilla is
quite robust and well-tested now.
</para>
<para>
I recommend you enable the option, "Click here to sign up (and risk any bugs)".
Your email-box
will thank you for it. The fundamental shift in "newemailtech" is away from standard UNIX
"diff" output, which is quite ugly, to a prettier, better laid-out email.
</para>
</section>
<section id="watchsettings">
<title>"Watching" Users</title>
<note>
<para>
This option may not be available in all Bugzilla installations, depending upon
the preferences of the systems administrator responsible for the setup of your Bugzilla.
However, if you really want this functionality, ask her to "enable watchers in Params".
</para>
</note>
<para>
By entering user email names into the "Users to watch" text entry box, delineated by commas,
you can watch bugs of other users. This powerful functionality enables seamless transitions
as developers change projects, managers wish to get in touch with the issues faced by their
direct reports, or users go on vacation. If any of these three situations apply
to you, you will undoubtedly find this feature quite convenient.
</para>
</section>
</section>
<section id="footersettings">
<title>Page Footer</title>
<note>
<para>
By default, this page is quite barren. However, go explore the Query Page some more; you will
find that you can store numerous queries on the server, so if you regularly run a particular query
it is just a drop-down menu away. On this page of Preferences, if you have many stored
queries you can elect to have them always one-click away!
</para>
</note>
<para>
If you have many stored queries on the server, here you will find individual drop-downs for each
stored query. Each drop-down gives you the option of that query appearing on the footer of every
page in Bugzilla! This gives you powerful one-click access to any complex searches you may set up,
and is an excellent way to impress your boss...
</para>
<tip>
<para>By default, the "My Bugs" link appears at the bottom of each page. However, this query
gives you both the bugs you have reported, as well as those you are assigned. One of the most
common uses for this page is to remove the "My Bugs" link, replacing it with two other queries,
commonly called "My Bug Reports" and "My Bugs" (but only referencing bugs assigned to you). This
allows you to distinguish those bugs you have reported from those you are assigned. I commonly
set up complex Boolean queries in the Query page and link them to my footer in this page. When
they are significantly complex, a one-click reference can save hours of work.</para>
</tip>
</section>
<section id="permissionsettings">
<title>Permissions</title>
<para>
This is a purely informative page which outlines your current permissions on
this installation of Bugzilla. If you have permissions to grant certain permissions to
other users, the "other users" link appears on this page as well as the footer.
For more information regarding user administration, please consult the Administration
section of this Guide.
</para>
</section>
</section>
<section id="usingbz-conc">
<title>Using Bugzilla-Conclusion</title>
<para>
Thank you for reading through this portion of the Bugzilla Guide. I anticipate
it may not yet meet the needs of all readers. If you have additional comments or
corrections to make, please submit your contributions to the
<ulink url="mailto://mozilla-webtools@mozilla.org">mozilla-webtools</ulink>
mailing list/newsgroup. The mailing list is mirrored to the netscape.public.mozilla.webtools
newsgroup, and the newsgroup is mirrored to mozilla-webtools@mozilla.org
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:Bugzilla-Guide\.sgml
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment