Commit ac2e474d authored by barnboy%trilobyte.net's avatar barnboy%trilobyte.net

Big checkin of docs to resolve every

known outstanding doc bug! Yay release. Still many things to fix. Aren't there always?
parent a07f84f3
......@@ -2,33 +2,35 @@ 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 XML sources (do not edit)
txt/ # The compiled text docs from XML sources (do not edit)
xml/ # The original XML doc sources (edit these)
A note about the XML:
The documentation is written in DocBook 4.1.2, and attempts to adhere
to the LinuxDoc standards where applicable (http://www.tldp.org).
Please consult "The LDP Author Guide" at tldp.org for details on how
to set up your personal environment for compiling XML files.
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. XML
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 XML before checking it in with something like:
nsgmls -s $JADE_PUB/xml.dcl Bugzilla-Guide.xml
your SGML before checking it in with something like:
nsgmls -s Bugzilla-Guide.sgml
When you validate, please validate the master document (Bugzilla-Guide.xml)
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/xml validators do not yet support
The reason these occur is that free sgml validators do not yet support
the DTDDECL catalog entries, and I've included DOCTYPE declarations in
entities referenced from Bugzilla-Guide.xml so these entities can compile
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, but for now they are convenient and don't hurt anything.
......@@ -37,13 +39,13 @@ documentation. Please address comments and questions to the newsgroup:
news://news.mozilla.org/netscape/public/mozilla/webtools .
==========
HOW TO SET UP YOUR OWN XML EDITING ENVIRONMENT:
HOW TO SET UP YOUR OWN SGML EDITING ENVIRONMENT:
==========
Trying to set up an XML Docbook editing environment the
Trying to set up an SGML/XML Docbook editing environment the
first time can be a daunting task.
I use Linux-Mandrake, in part, because it has a fully-functional
XML Docbook editing environment included as part of the
SGML/XML Docbook editing environment included as part of the
distribution CD's. If you have easier instructions for how to
do this for a particular Linux distribution or platform, please
let the team know at the mailing list: mozilla-webtools@mozilla.org.
......@@ -60,96 +62,68 @@ rpms:
openjade
jadetex
docbook-dtds
docbook-dtd41-sgml
docbook-style-dsssl
docbook-dtd31-sgml
docbook-style-dsssl-doc
docbook-utils
xemacs
psgml
sgml-tools
sgml-common
Set up environment:
If you're getting these from RedHat, make sure you get the ones in the
rawhide area. The ones in the 7.2 distribution are too old and don't
include the XML stuff. The packages distrubuted with RedHat 8.0 and 9
and known to work.
in your .bashrc add this line (after installing above RPMS):
export SGML_CATALOG_FILES=/etc/sgml/catalog
Download "ldp.dsl" from the Resources page on tldp.org. This is the
Download "ldp.dsl" from the Resources page on linuxdoc.org. This is the
stylesheet I use to get the HTML and text output. It works well, and has a
nice, consistent look with the rest of the linuxdoc documents. You'll have to
adjust the paths in ldp.dsl at the top of the file to reflect the actual
locations of your docbook catalog files. I created a directory,
/usr/share/sgml/docbook/ldp, and put the ldp.dsl file there. I then edited
ldp.dsl and changed two lines near the top:
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets/html/docbook.dsl" CDATA
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets-1.62/html/docbook.dsl" CDATA
dsssl>
...and...
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets/print/docbook.dsl" CDATA
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets-1.62/print/docbook.dsl" CDATA
dsssl>
Note the difference is the top one points to the HTML docbook stylesheet,
and the next one points to the PRINT docbook stylesheet.
Also note that modifying ldp.dsl doesn't seem to be needed on RedHat 9.
You know, this sure looks awful involved. Anyway, once you have this in
You know, this sure looks awful involved. Anyway, once you have this in
place, add to your .bashrc:
export SGML_CATALOG_FILES=/etc/sgml/catalog
export LDP_HOME=/usr/share/sgml/docbook/ldp
export JADE_PUB=/usr/share/doc/openjade-1.3.1/pubtext
or in .tcshrc:
setenv SGML_CATALOG_FILES /etc/sgml/catalog
setenv LDP_HOME /usr/share/sgml/docbook/ldp
setenv JADE_PUB /usr/share/doc/openjade-1.3.1/pubtext
If you have root access and want to set this up for anyone on your box,
you can add those lines to /etc/profile for bash users and /etc/csh.login
for tcsh users.
Make sure you edit the paths in the above environment variables if those
folders are anywhere else on your system (for example, the openjade version
might change if you get a new version at some point).
I suggest xemacs for editing your XML Docbook documents. The darn
thing just works, and generally includes PSGML mode by default. Not to
mention you can validate the SGML from right within it without having to
remember the command-line syntax for nsgml (not that it's that hard
anyway). If not, you can download psgml at
http://www.sourceforge.net/projects/psgml.
Another good editor is the latest releases of vim and gvim. Vim will
recognize DocBook tags and give them a different color than unreconized tags.
I suggest xemacs for editing your SGML/XML Docbook documents. The darn
thing just works, and generally includes PSGML mode by default. You can
download psgml at http://www.sourceforge.net/projects/psgml.
==========
NOTES:
==========
Here are the commands I use to maintain this documentation.
You MUST have DocBook 4.1.2 set up correctly in order for this to work.
You MUST have DocBook 4.1 set up correctly in order for this to work.
Substitute your own path to "ldp.dsl" for "$LDP_HOME".
These commands can be run all at once using the ./makedocs.pl script.
To create HTML documentation:
bash$ cd html
bash$ jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml
../sgml/Bugzilla-Guide.sgml
To create HTML documentation as a single big HTML file:
bash$ cd html
bash$ jade -V nochunks -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml >Bugzilla-Guide.html
../sgml/Bugzilla-Guide.sgml >Bugzilla-Guide.html
To create TXT documentation as a single big TXT file:
bash$ cd txt
bash$ lynx -dump -nolist ../html/Bugzilla-Guide.html >Bugzilla-Guide.txt
Sincerely,
Matthew P. Barnson
The Bugzilla "Doc Knight"
mbarnson@sisna.com
with major edits by Dave Miller <justdave@syndicomm.com> based on
experience setting this up on the Landfill test server.
barnboy@trilobyte.net
......@@ -23,7 +23,7 @@
<!ENTITY bz-ver "2.14">
<!ENTITY bz-cvs-ver "2.15">
<!ENTITY bzg-date "August 10, 2001">
<!ENTITY bzg-ver "2.14.0">
<!ENTITY bzg-ver "2.14">
<!ENTITY bzg-cvs-ver "2.15.0">
<!ENTITY bzg-auth "Matthew P. Barnson">
<!ENTITY bzg-auth-email "<email>barnboy@NOSPAM.trilobyte.net</email>">
......@@ -137,15 +137,6 @@ try to avoid clutter and feel free to waste space in the code to make it more re
</affiliation>
</collab>
<editor>
<firstname>I.</firstname>
<surname>Freely</surname>
<othername>P.</othername>
<affiliation>
<address><email>ipfreely@freely.eye-p.net</email></address>
</affiliation>
</editor>
</authorgroup>
<abstract>
......@@ -165,6 +156,12 @@ try to avoid clutter and feel free to waste space in the code to make it more re
professional on operating system upon which you install
Bugzilla.
</para>
<para>
THIS DOCUMENTATION IS MAINTAINED IN DOCBOOK 4.1 SGML FORMAT.
IF YOU WISH TO MAKE CORRECTIONS, PLEASE MAKE THEM IN PLAIN
TEXT OR SGML DIFFS AGAINST THE SOURCE. I CANNOT ACCEPT
ADDITIONS TO THE GUIDE WRITTEN IN HTML!
</para>
</abstract>
......
......@@ -14,11 +14,10 @@
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.
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
......
......@@ -8,18 +8,21 @@
</subtitle>
<para>
So you followed the installation instructions 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 business needs to be to setup the
operating parameters for bugzilla.
So you followed <quote><xref linkend="installation"></quote> to the
letter, and logged into Bugzilla for the very first time with your
super-duper god account. You sit, contentedly staring at the
Bugzilla Query Screen, the worst of the whole mad business of
installing this terrific program behind you. It seems, though, you
have nothing yet to query! Your first act of business should be to
setup the operating parameters for Bugzilla so you can get busy
getting data into your bug tracker.
</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
After installation, follow the checklist below to help 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.
......@@ -30,47 +33,80 @@
<procedure>
<step>
<para>
Bring up "editparams.cgi" in your web browser. For
instance, to edit parameters at mozilla.org, the URL would
be <ulink url="http://bugzilla.mozilla.org/editparams.cgi">
http://bugzilla.mozilla.org/editparams.cgi</ulink>, also
available under the "edit parameters" link on your query
page.
Bring up <filename>editparams.cgi</filename> in your web
browser. This should be available as the <quote>edit
parameters</quote> link from any Bugzilla screen once you
have logged in.
</para>
</step>
<step>
<para>The <quote>maintainer</quote> is the email address of
the person responsible for maintaining this Bugzilla
installation. The maintainer need not be a valid Bugzilla
user. Error pages, error emails, and administrative mail
will be sent with the maintainer as the return email
address.</para>
<para>
Set "maintainer" to <emphasis>your</emphasis> email address.
Set <quote>maintainer</quote> 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>The <quote>urlbase</quote> parameter defines the fully
qualified domain name and web server path to your Bugzilla
installation.</para>
<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/
For example, if your bugzilla query page is
http://www.foo.com/bugzilla/query.cgi, set your
<quote>urlbase</quote> is http://www.foo.com/bugzilla/.
</para>
</step>
<step>
<para><quote>usebuggroups</quote> dictates whether or not to
implement group-based security for Bugzilla. If set,
Bugzilla bugs can have an associated groupmask defining
which groups of users are allowed to see and edit the
bug.</para>
<para>
Set "usebuggroups" to "on" <emphasis>only</emphasis> if you
need to restrict access to products. I suggest leaving this
parameter <emphasis>off</emphasis> while initially testing
your Bugzilla.
may wish 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 "on" if you want to restrict
access to products. Once again, if you are simply testing
<quote>usebuggroupsentry</quote>, when set to
<quote>on</quote>, requires that all bugs have an associated
groupmask when submitted. This parameter is made for those
installations where product isolation is a necessity.
</para>
<para>
Set "usebuggroupsentry" to "on" if you absolutely need to
restrict access to bugs from the moment they are submitted
through resolution. 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>
You run into an interesting problem when Bugzilla reaches a
high level of continuous activity. MySQL supports only
table-level write locking. What this means is that if
someone needs to make a change to a bug, they will lock the
entire table until the operation is complete. Locking for
write also blocks reads until the write is complete. The
<quote>shadowdb</quote> parameter was designed to get around
this limitation. While only a single user is allowed to
write to a table at a time, reads can continue unimpeded on
a read-only shadow copy of the database. Although your
database size will double, a shadow database can cause an
enormous performance improvement when implemented on
extremely high-traffic Bugzilla databases.
</para>
<para>
Set "shadowdb" to "bug_shadowdb" if you will be running a
*very* large installation of Bugzilla. The shadow database
......@@ -79,15 +115,19 @@
<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"
of your installation of Bugzilla. You should regularly
check that your database is in sync. It is often
advisable to force a shadow database sync nightly via
<quote>cron</quote>.
</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.
a change to the database. Mozilla.org began needing
<quote>shadowdb</quote> when they reached around 40,000
Bugzilla users with several hundred Bugzilla bug changes and
comments per day.
</para>
<para>
If you use the "shadowdb" option, it is only natural that
......@@ -97,6 +137,18 @@
</para>
</step>
<step>
<para><quote>headerhtml</quote>, <quote>footerhtml</quote>,
<quote>errorhtml</quote>, <quote>bannerhtml</quote>, and
<quote>blurbhtml</quote> are all templates which control
display of headers, footers, errors, banners, and additional
data. We could go into some detail regarding the usage of
these, but it is really best just to monkey around with them
a bit to see what they do. I strongly recommend you copy
your <filename>data/params</filename> file somewhere safe
before playing with these values, though. If they are
changed dramatically, it may make it impossible for you to
display Bugzilla pages to fix the problem until you have
restored your <filename>data/params</filename> file.</para>
<para>
If you have custom logos or HTML you must put in place to
fit within your site design guidelines, place the code in
......@@ -105,15 +157,20 @@
<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.
<emphasis>before</emphasis> any other code on the page,
except the CONTENT-TYPE header sent by the Bugzilla
engine. 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><quote>passwordmail</quote> is rather simple. Every
time a user creates an account, the text of this parameter
is read as the text to send to the new user along with their
password message.</para>
<para>
Add any text you wish to the "passwordmail" parameter box.
For instance, many people choose to use this box to give a
......@@ -121,20 +178,32 @@
</para>
</step>
<step>
<para>
Ensure "newemailtech" is "on". Your users will thank you.
This is the default in the post-2.12 world, and is only an
issue if you are upgrading.
</para>
</step>
<step>
<para><quote>useqacontact</quote> allows you to define an
email address for each component, in addition to that of the
default owner, who will be sent carbon copies of incoming
bugs. The critical difference between a QA Contact and an
Owner is that the QA Contact follows the component. If you
reassign a bug from component A to component B, the QA
Contact for that bug will change with the reassignment,
regardless of owner.</para>
<para><quote>usestatuswhiteboard</quote> defines whether you
wish to have a free-form, overwritable field associated with
each bug. The advantage of the Status Whiteboard is that it
can be deleted or modified with ease, and provides an
easily-searchable field for indexing some bugs that have
some trait in common. Many people will put <quote>help
wanted</quote>, <quote>stalled</quote>, or <quote>waiting
on reply from somebody</quote> messages into the Status
Whiteboard field so those who peruse the bugs are aware of
their status even more than that which can be indicated by
the Resolution fields.</para>
<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.
for many smaller installations.
</para>
</step>
<step>
......@@ -144,14 +213,22 @@
they have untouched new bugs. If you do not plan to use
this feature, simply do not set up the whining cron job
described in the installation instructions, or set this
value to "0".
value to "0" (never whine).
</para>
</step>
<step>
<para><quote>commenton</quote> fields allow you to dictate
what changes can pass without comment, and which must have a
comment from the person who changed them. Often,
administrators will allow users to add themselves to the CC
list, accept bugs, or change the Status Whiteboard without
adding a comment as to their reasons for the change, yet
require that most other changes come with an
explanation.</para>
<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.
reassign, or reopen bugs at the very least.
<note>
<para>
It is generally far better to require a developer
......@@ -164,12 +241,28 @@
</para>
</step>
<step>
<para>The <quote>supportwatchers</quote> option can be an
exceptionally powerful tool in the hands of a power Bugzilla
user. By enabling this option, you allow users to receive
email updates whenever other users receive email updates.
This is, of course, subject to the groupset restrictions on
the bug; if the <quote>watcher</quote> would not normally be
allowed to view a bug, the watcher cannot get around the
system by setting herself up to watch the bugs of someone
with bugs outside her priveleges. She would still only
receive email updates for those bugs she could normally
view.</para>
<para>For Bugzilla sites which require strong inter-Product
security to prevent snooping, watchers are not a good
idea.</para>
<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.
However, for most sites you should set
<quote>supportwatchers</quote> 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>
......@@ -205,6 +298,9 @@
groupset=0x7ffffffffffffff where login_name = "(user's
login name)"; </command>
</para>
<para>Yes, that is <emphasis>fourteen</emphasis>
<quote>f</quote>'s. A whole lot of f-ing going on if you
want to create a new administator.</para>
</tip>
</section>
......@@ -269,11 +365,11 @@
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.
regular expression (please see the <command>man
regexp</command> 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>
......@@ -292,10 +388,14 @@
<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.
password. While useful for creating dummy accounts
(watchers which shuttle mail to another system, for
instance, or email addresses which are a mailing
list), in general it is preferable to log out and use
the <quote>New Account</quote> 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>
......@@ -317,6 +417,11 @@
Don't disable your own administrative account, or you
will hate life!
</para>
<para>At this time, <quote>Disabled Text</quote> does not
prevent a user from using the email interface. If you
have the email interface enabled, they can still
continue to submit bugs and comments that way. We need
a patch to fix this.</para>
</warning>
</para>
</section>
......@@ -350,9 +455,8 @@
</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.
<emphasis>Password</emphasis>: You can change the user
password here. It is normal to only see asterisks.
</para>
</listitem>
<listitem>
......
......@@ -26,9 +26,16 @@
<glossdiv id="gloss_a">
<title>A</title>
<glossentry>
<glossterm>There are no entries for A</glossterm>
<glossterm>Apache</glossterm>
<glossdef>
<para></para>
<para>In this context, Apache is the web server most
commonly used for serving up
<glossterm>Bugzilla</glossterm> pages. Contrary to
popular belief, the apache web server has nothing to do
with the ancient and noble Native American tribe, but
instead derived its name from the fact that it was
<quote>a patchy</quote> version of the original
<acronym>NCSA</acronym> world-wide-web server.</para>
</glossdef>
</glossentry>
</glossdiv>
......@@ -70,8 +77,77 @@
the needs of the organization using it, though.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Bugzilla</glossterm>
<glossdef>
<para>
Bugzilla is the industry-standard bug tracking system. It
is quite popular among Open Source enthusiasts.
</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_c">
<title></title>
<glossentry id="gloss_component">
<glossterm>Component</glossterm>
<glossdef>
<para>
A Component is a subsection of a Product. It should be a
narrow category, tailored to your organization. All
Products must contain at least one Component (and, as a
matter of fact, creating a Product with no Components will
create an error in Bugzilla).
</para>
</glossdef>
</glossentry>
<glossentry id="gloss_cpan">
<glossterm><acronym>CPAN</acronym></glossterm>
<glossdef>
<para><acronym>CPAN</acronym> stands for the
<quote>Comprehensive Perl Archive Network</quote>. CPAN
maintains a large number of extremely useful
<glossterm>Perl</glossterm> modules. By themselves, Perl
modules generally do nothing, but when used as part of a
larger program, they provide much-needed algorithms and
functionality.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_d">
<title>D</title>
<glossentry>
<glossterm>daemon</glossterm>
<glossdef>
<para>A daemon is a computer program which runs in the
background. In general, most daemons are started at boot
time via System V init scripts, or through RC scripts on
BSD-based systems. <glossterm>mysqld</glossterm>, the
MySQL server, and <glossterm>apache</glossterm>, a web
server, are generally run as daemons.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_g">
<title></title>
<glossentry>
<glossterm>Groups</glossterm>
<glossdef>
<para>The word <quote>Groups</quote> has a very special
meaning to Bugzilla. Bugzilla's main security mechanism
comes by lumping users into groups, and assigning those
groups certain privileges to
<glossterm>Products</glossterm> and
<glossterm>Components</glossterm> in the
<glossterm>Bugzilla</glossterm> database.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_i">
<title>I</title>
<glossentry id="gloss_infiniteloop">
......@@ -81,7 +157,22 @@
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_m">
<title>M</title>
<glossentry>
<glossterm>mysqld</glossterm>
<glossdef>
<para>mysqld is the name of the
<glossterm>daemon</glossterm> for the MySQL database. In
general, it is invoked automatically through the use of
the System V init scripts on GNU/Linux and AT&amp;T System
V-based systems, such as Solaris and HP/UX, or through the
RC scripts on BSD-based systems.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_p">
<title>P</title>
<glossentry>
......@@ -108,6 +199,17 @@
</example>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Perl</glossterm>
<glossdef>
<para>First written by Larry Wall, Perl is a remarkable
program language. It has the benefits of the flexibility
of an interpreted scripting language (such as shell
script), combined with the speed and power of a compiled
language, such as C. <glossterm>Bugzilla</glossterm> is
maintained in Perl.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_q">
......@@ -129,8 +231,8 @@
<glossdiv id="gloss_r">
<title>R</title>
<glossentry>
<glossterm id="gloss_recursion">Recursion</glossterm>
<glossentry id="gloss_recursion" xreflabel="Recursion">
<glossterm>Recursion</glossterm>
<glossdef>
<para>The property of a function looking back at itself for
something. <quote>GNU</quote>, for instance, stands for
......@@ -140,10 +242,52 @@
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_s">
<title>S</title>
<glossentry>
<glossterm><acronym>SGML</acronym></glossterm>
<glossdef>
<para><acronym>SGML</acronym> stands for <quote>Standard
Generalized Markup Language</quote>. Created in the
1980's to provide an extensible means to maintain
documentation based upon content instead of presentation,
<acronym>SGML</acronym> has withstood the test of time as
a robust, powerful language.
<glossterm><acronym>XML</acronym></glossterm> is the
<quote>baby brother</quote> of SGML; any valid
<acronym>XML</acronym> document it, by definition, a valid
<acronym>SGML</acronym> document. The document you are
reading is written and maintained in
<acronym>SGML</acronym>, and is also valid
<acronym>XML</acronym> if you modify the Document Type
Definition.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_t">
<title>T</title>
<glossentry id="gloss_target_milestone" xreflabel="Target Milestone">
<glossterm>Target Milestone</glossterm>
<glossdef>
<para>
Target Milestones are Product goals. They are
configurable on a per-Product basis. Most software
development houses have a concept of
<quote>milestones</quote> where the people funding a
project expect certain functionality on certain dates.
Bugzilla facilitates meeting these milestones by giving
you the ability to declare by which milestone a bug will be
fixed, or an enhancement will be implemented.
</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="gloss_z">
<title>Z</title>
<glossentry>
<glossentry id="zarro-boogs-found" xreflabel="Zarro Boogs Found">
<glossterm>Zarro Boogs Found</glossterm>
<glossdef>
<para>This is the cryptic response sent by Bugzilla when a
......
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<chapter id="installation">
<chapter id="installation" xreflabel="Bugzilla Installation">
<title>Installation</title>
<para>
These installation instructions are presented assuming you are
......@@ -50,6 +50,7 @@
refer to these documents when installing, configuring, and
maintaining your Bugzilla installation.
</member>
</simplelist>
<warning>
......@@ -108,8 +109,7 @@
the CPAN dependencies listed below, and are running the very
most recent version of Perl and MySQL (both the executables
and development libraries) on your system, check out
Bundle::Bugzilla in <xref
linkend="bundlebugzilla"></para>
Bundle::Bugzilla in <xref linkend="bundlebugzilla"></para>
</note>
<para>
The software packages necessary for the proper running of bugzilla are:
......@@ -185,39 +185,64 @@
attack.
</para>
</warning>
<note>
<para>Linux-Mandrake 8.0, the author's test system, includes
every required and optional library for Bugzilla. The
easiest way to install them is by using the
<filename>urpmi</filename> utility. If you follow these
commands, you should have everything you need for
Bugzilla, and <filename>checksetup.pl</filename> should
not complain about any missing libraries. You may already
have some of these installed.</para>
<simplelist>
<member><prompt>bash#</prompt><command> urpmi
perl-mysql</command></member>
<member><prompt>bash#</prompt><command> urpmi
perl-chart</command></member>
<member><prompt>bash#</prompt><command> urpmi
perl-gd</command></member>
<member><prompt>bash#</prompt><command> urpmi
perl-MailTools</command> (for Bugzilla email
integration)</member>
<member><prompt>bash#</prompt><command> urpmi
apache-modules</command></member>
</simplelist>
</note>
</para>
</section>
<section id="install-mysql">
<title>Installing MySQL Database</title>
<para>
Visit MySQL homepage at http://www.mysql.com/ 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.
Visit MySQL homepage at <ulink
url="http://www.mysql.com">www.mysql.com</ulink> and grab the latest stable release of the server. Many of the binary versions of MySQL store their data files in <filename>/var</filename> which is often part of a smaller root partition. If you decide to build from sources you can easily set the dataDir as an option to <filename>configure</filename>.
</para>
<para>
If you've installed from source or non-package (RPM, deb,
etc.) binaries you'll want to make sure to add mysqld to your
If you install from source or non-package (RPM, deb, etc.)
binaries you need to add
<firstterm>mysqld</firstterm> 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.
your machine reboots. Further discussion of UNIX init
sequences are beyond the scope of this guide.
<note>
<para>You should have your init script start
<glossterm>mysqld</glossterm> with the ability to accept
large packets. By default, <filename>mysqld</filename>
only accepts packets up to 64K long. This limits the size
of attachments you may put on bugs. If you add <option>-O
max_allowed_packet=1M</option> to the command that starts
<filename>mysqld</filename> (or
<filename>safe_mysqld</filename>), then you will be able
to have attachments up to about 1 megabyte.</para>
</note>
</para>
<note>
<para>
If you plan on running Bugzilla and MySQL on the same
machine, consider using the "--skip-networking" option in
the init script. This enhances security by preventing
network access to MySQL.
machine, consider using the <option>--skip-networking</option>
option in the init script. This enhances security by
preventing network access to MySQL.
</para>
</note>
</section>
......@@ -260,9 +285,10 @@
<tip id="bundlebugzilla" xreflabel="Using Bundle::Bugzilla instead of manually installing Perl modules">
<para>
You can skip the following Perl module installation steps by
installing "Bundle::Bugzilla" from CPAN, which includes
them. All Perl module installation steps require you have an
active Internet connection. If you wish to use
installing <productname>Bundle::Bugzilla</productname> from
<glossterm linkend="gloss_cpan">CPAN</glossterm>, which
includes them. All Perl module installation steps require
you have an active Internet connection. If you wish to use
Bundle::Bugzilla, however, you must be using the latest
version of Perl (at this writing, version &perl-ver;)
</para>
......@@ -293,7 +319,7 @@
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.
at the time of this writing can be found in <xref linkend="downloadlinks">.
</para>
<para>
Quality, general Perl module installation instructions can be found on
......@@ -370,9 +396,11 @@
hurt anything.
</para>
<para>
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.
Data::Dumper is used by the MySQL-related Perl modules. It
can be found on CPAN (see <xref linkend="downloadlinks">) and
can be
installed by following the same four step make sequence used
for the DBI module.
</para>
</section>
......@@ -414,37 +442,42 @@
<section>
<title>TimeDate Perl Module Collection</title>
<para>
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 link
link may be found in Appendix B, Software Download Links.
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.
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 (see link: <xref linkend="downloadlinks">). 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.
</para>
</section>
<section>
<title>GD Perl Module (1.8.3)</title>
<para>
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.
The GD library was written by Thomas Boutell a long while
ago to programatically generate images in C. Since then it's
become the defacto standard for programatic image
construction. The Perl bindings to it found in the GD library
are used on millions of web pages to generate graphs on the
fly. That's what bugzilla will be using it for so you must
install it if you want any of the graphing to work.
</para>
<para>
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 B, Software Download Links).
Actually bugzilla uses the Graph module which relies on GD
itself. Isn't that always the way with object-oriented
programming? At any rate, you can find the GD library on CPAN
in <xref linkend="downloadlinks">.
</para>
<note>
<para>
The Perl GD library requires some other libraries that may or may not be
installed on your system, including "libpng" and "libgd". The full requirements
are listed in the Perl GD library README. Just realize that if compiling GD fails,
it's probably because you're missing a required library.
The Perl GD library requires some other libraries that may
or may not be installed on your system, including
<classname>libpng</classname> and
<classname>libgd</classname>. The full requirements are
listed in the Perl GD library README. Just realize that if
compiling GD fails, it's probably because you're missing a
required library.
</para>
</note>
</section>
......@@ -453,62 +486,78 @@
<title>Chart::Base Perl Module (0.99c)</title>
<para>
The Chart module provides bugzilla with on-the-fly charting
abilities. It can be installed in the usual fashion after it has been
fetched from CPAN where it is found as the Chart-x.x... tarball in a
directory to be listed in Appendix B, "Software Download Links".
Note that as with the GD perl
module, only the version listed above, or newer, will work.
Earlier
versions used GIF's, which are no longer supported by the latest
versions of GD.
abilities. It can be installed in the usual fashion after it
has been fetched from CPAN where it is found as the
Chart-x.x... tarball, linked in <xref linkend="downloadlinks">. Note that
as with the GD perl module, only the version listed above, or
newer, will work. Earlier versions used GIF's, which are no
longer supported by the latest versions of GD.
</para>
</section>
<section>
<title>DB_File Perl Module</title>
<para>
DB_File is a module which allows Perl programs to make use of the facilities provided by
Berkeley DB version 1.x. This module is required by collectstats.pl which is used for
bug charting. If you plan to make use of bug charting, you must install this module.
DB_File is a module which allows Perl programs to make use
of the facilities provided by Berkeley DB version 1.x. This
module is required by collectstats.pl which is used for bug
charting. If you plan to make use of bug charting, you must
install this module.
</para>
</section>
<section>
<title>HTTP Server</title>
<para>
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 need to adjust the MySQL "bugs" user permissions
accordingly.
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 need to adjust
the MySQL <quote>bugs</quote> user permissions accordingly.
<note>
<para>I strongly recommend Apache as the web server to use.
The Bugzilla Guide installation instructions, in general,
assume you are using Apache. As more users use different
webservers and send me information on the peculiarities of
installing using their favorite webserver, I will provide
notes for them.</para>
</note>
</para>
<para>
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:
<computeroutput>AddHandler cgi-script .cgi</computeroutput>
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:
<programlisting>
AddHandler cgi-script .cgi
</programlisting>
</para>
<para>
With apache you'll also want to make sure that within the access.conf
file the line:
<computeroutput>
Options ExecCGI
</computeroutput>
is in the stanza that covers the directories you intend to put the bugzilla
.html and .cgi files into.
With apache you'll also want to make sure that within the
access.conf file the line:
<programlisting>
Options ExecCGI
</programlisting>
is in the stanza that covers the directories into which
you intend to put the bugzilla .html and .cgi files.
</para>
<note>
<para>
If you are using a newer version of Apache, both of the above lines will be
(or will need to be) in the httpd.conf file, rather than srm.conf or
access.conf.
Users of newer versions of Apache will generally find both
of the above lines will be in the httpd.conf file, rather
than srm.conf or access.conf.
</para>
</note>
<warning>
<para>
There are two critical directories and a file that should not be a served by
the HTTP server. These are the <quote>data</quote> and <quote>shadow</quote>
directories and the
<quote>localconfig</quote> file. You should configure your HTTP server to not serve
content from these files. Failure to do so will expose critical passwords
and other data. Please see <xref linkend="htaccess"> for details.
There are important files and directories that should not
be a served by the HTTP server. These are most files in the
<quote>data</quote> and <quote>shadow</quote> directories
and the <quote>localconfig</quote> file. You should
configure your HTTP server to not serve content from these
files. Failure to do so will expose critical passwords and
other data. Please see <xref linkend="htaccess"> for details
on how to do this for Apache. I appreciate notes on how to
get this same functionality using other webservers.
</para>
</warning>
</section>
......@@ -516,59 +565,65 @@
<section>
<title>Installing the Bugzilla Files</title>
<para>
You should untar the Bugzilla files into a directory that you're
willing to make writable by the default web server user (probably
<quote>nobody</quote>). 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
directories if they were accidentally tarred up with the rest of Bugzilla)
and make sure you can access the files in that directory through your
web server.
You should untar the Bugzilla files into a directory that
you're willing to make writable by the default web server user
(probably <quote>nobody</quote>). You may decide to put the
files off of the main web space for your web server or perhaps
off of <filename>/usr/local</filename> 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, and make sure
you can access the files in that directory through your web
server.
</para>
<tip>
<para>
If you symlink the bugzilla directory into your Apache's
HTML heirarchy, you may receive "Forbidden" errors unless you
add the "FollowSymLinks" directive to the &lt;Directory&gt; entry
for the HTML root.
HTML heirarchy, you may receive
<errorname>Forbidden</errorname> errors unless you add the
<quote>FollowSymLinks</quote> directive to the
&lt;Directory&gt; entry for the HTML root.
</para>
</tip>
<para>
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). This is a temporary step until you run
the post-install <quote>checksetup.pl</quote> script, which locks down your
installation.
</para>
<para>
Lastly, you'll need to set up a symbolic link to /usr/bonsaitools/bin/perl
for the correct location of your perl executable (probably /usr/bin/perl).
Otherwise you must hack all the .cgi files to change where they look
for perl. To make future upgrades easier, you should use the symlink
approach.
<example>
<title>Setting up bonsaitools symlink</title>
<para>
Here's how you set up the Perl symlink on Linux to make Bugzilla work.
Your mileage may vary; if you are running on Solaris, you probably need to subsitute
<quote>/usr/local/bin/perl</quote> for <quote>/usr/bin/perl</quote>
below; if on certain other UNIX systems,
Perl may live in weird places like <quote>/opt/perl</quote>. As root, run these commands:
<programlisting>
bash# mkdir /usr/bonsaitools
bash# mkdir /usr/bonsaitools/bin
Once all the files are in a web accessible directory, make
that directory writable by your webserver's user. This is a
temporary step until you run the post-install
<filename>checksetup.pl</filename> script, which locks down your
installation.
</para>
<para>
Lastly, you'll need to set up a symbolic link to
<filename>/usr/bonsaitools/bin/perl</filename> for the correct
location of your perl executable (probably
<filename>/usr/bin/perl</filename>). Otherwise you must hack
all the .cgi files to change where they look for perl, or use
<xref linkend="setperl">, found in
<xref linkend="patches">. I suggest using the symlink
approach for future release compatability.
<example>
<title>Setting up bonsaitools symlink</title>
<para>
Here's how you set up the Perl symlink on Linux to make
Bugzilla work. Your mileage may vary. For some UNIX
operating systems, you probably need to subsitute
<quote>/usr/local/bin/perl</quote> for
<quote>/usr/bin/perl</quote> below; if on certain other
UNIX systems, Perl may live in weird places like
<quote>/opt/perl</quote>. As root, run these commands:
<programlisting>
bash# mkdir /usr/bonsaitools
bash# mkdir /usr/bonsaitools/bin
bash# ln -s /usr/bin/perl /usr/bosaitools/bin/perl
</programlisting>
</para>
</example>
<tip>
<para>
If you don't have root access to set this symlink up,
</programlisting>
</para>
</example>
<tip>
<para>
If you don't have root access to set this symlink up,
check out the
<xref linkend="setperl">, listed in <xref linkend="patches">.
It will change the path to perl in all your Bugzilla files for you.
</para>
<xref linkend="setperl">, listed in <xref
linkend="patches">. It will change the path to perl in all your Bugzilla files for you.
</para>
</tip>
</para>
</section>
......@@ -581,10 +636,11 @@ bash# ln -s /usr/bin/perl /usr/bosaitools/bin/perl
quality bug tracker.
</para>
<para>
First, you'll want to fix MySQL permissions to allow access from
Bugzilla. For the purpose of this Installation section, the Bugzilla username
will be "bugs", and will have minimal permissions.
First, you'll want to fix MySQL permissions to allow access
from Bugzilla. For the purpose of this Installation section,
the Bugzilla username will be <quote>bugs</quote>, and will
have minimal permissions.
<warning>
<para>
Bugzilla has not undergone a thorough security audit. It
......@@ -594,199 +650,190 @@ bash# ln -s /usr/bin/perl /usr/bosaitools/bin/perl
</para>
<para>That would be bad.</para>
</warning>
</para>
<para>
Give the MySQL root user a password. MySQL passwords are
limited to 16 characters.
<simplelist>
<member>
<computeroutput>
<prompt>bash#</prompt>
<command>mysql -u root mysql</command>
</computeroutput>
</member>
<member>
<computeroutput>
<prompt>mysql></prompt>
<command>
UPDATE user SET Password=PASSWORD ('new_password')
WHERE user='root';
</command>
</computeroutput>
</member>
<member>
<computeroutput>
<prompt>mysql></prompt>
<command>FLUSH PRIVILEGES;</command>
</computeroutput>
</member>
</simplelist>
From this point on, if you need to access MySQL as the
MySQL root user, you will need to use "mysql -u root -p" and
enter your new_password. Remember that MySQL user names have
nothing to do with Unix user names (login names).
</para>
<para>
Next, we create the "bugs" user, and grant sufficient
permissions for checksetup.pl, which we'll use later, to work
its magic. This also restricts the "bugs" user to operations
within a database called "bugs", and only allows the account
to connect from "localhost". Modify it to reflect your setup
if you will be connecting from another machine or as a different
user.
</para>
<para>
Remember to set bugs_password to some unique password.
<simplelist>
<member>
<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>
</member>
<member>
<computeroutput>
<prompt>
mysql>
</prompt>
<command>
FLUSH PRIVILEGES;
</command>
</computeroutput>
</member>
</simplelist>
</para>
<para>
Next, run the magic checksetup.pl script. (Many thanks to Holger
Schurig &lt;holgerschurig@nikocity.de&gt; for writing this script!)
It will make sure Bugzilla files and directories have reasonable
permissions, set up the "data" directory, and create all the MySQL
tables.
<simplelist>
<member>
<computeroutput>
<prompt>bash#</prompt>
<command>./checksetup.pl</command>
</computeroutput>
</member>
</simplelist>
The first time you run it, it will create a file called "localconfig".
</para>
</section>
<section>
<title>Tweaking "localconfig"</title>
<para>
This file contains a variety of settings you may need to tweak including
how Bugzilla should connect to the MySQL database.
</para>
<para>
The connection settings include:
<orderedlist>
<listitem>
<para>
server's host: just use "localhost" if the MySQL server is
local
</para>
</listitem>
<listitem>
<para>
database name: "bugs" if you're following these directions
</para>
</listitem>
<listitem>
<para>
MySQL username: "bugs" if you're following these directions
</para>
</listitem>
<listitem>
<para>
Password for the "bugs" MySQL account above
</para>
</listitem>
</orderedlist>
</para>
<para>
You may also install .htaccess files that the Apache webserver will use
to restrict access to Bugzilla data files. See <xref linkend="htaccess">.
</para>
<para>
Once you are happy with the settings, re-run checksetup.pl. On this
second run, it will create the database and an administrator account
for which you will be prompted to provide information.
</para>
<para>
When logged into an administrator account once Bugzilla is running,
if you go to the query page (off of the bugzilla main menu), you'll
find an 'edit parameters' option that is filled with editable treats.
</para>
<para>
Should everything work, you should have a nearly empty copy of the bug
tracking setup.
</para>
<para>
The second time around, checksetup.pl will stall if it is on a
filesystem that does not fully support file locking via flock(), such as
NFS mounts. This support is required for Bugzilla to operate safely with
multiple instances. If flock() is not fully supported, it will stall at:
<errorcode>Now regenerating the shadow database for all bugs.</errorcode>
<note>
</para>
<para>
Give the MySQL root user a password. MySQL passwords are
limited to 16 characters.
<simplelist>
<member>
<computeroutput> <prompt>bash#</prompt> <command>mysql
-u root mysql</command> </computeroutput>
</member>
<member>
<computeroutput> <prompt>mysql></prompt> <command>
UPDATE user SET Password=PASSWORD ('new_password')
WHERE user='root'; </command> </computeroutput>
</member>
<member>
<computeroutput> <prompt>mysql></prompt> <command>FLUSH
PRIVILEGES;</command> </computeroutput>
</member>
</simplelist> From this point on, if you need to access
MySQL as the MySQL root user, you will need to use
<command>mysql -u root -p</command> and enter your
new_password. Remember that MySQL user names have nothing to
do with Unix user names (login names).
</para>
<para>
Next, we create the <quote>bugs</quote> user, and grant
sufficient permissions for checksetup.pl, which we'll use
later, to work its magic. This also restricts the
<quote>bugs</quote> user to operations within a database
called <quote>bugs</quote>, and only allows the account to
connect from <quote>localhost</quote>. Modify it to reflect
your setup if you will be connecting from another machine or
as a different user.
</para>
<para>
Remember to set bugs_password to some unique password.
<simplelist>
<member>
<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>
</member>
<member>
<computeroutput>
<prompt>
mysql>
</prompt>
<command>
FLUSH PRIVILEGES;
</command>
</computeroutput>
</member>
</simplelist>
</para>
<para>
Next, run the magic checksetup.pl script. (Many thanks to
Holger Schurig &lt;holgerschurig@nikocity.de&gt; for writing
this script!) It will make sure Bugzilla files and directories
have reasonable permissions, set up the
<filename>data</filename> directory, and create all the MySQL
tables.
<simplelist>
<member>
<computeroutput> <prompt>bash#</prompt>
<command>./checksetup.pl</command> </computeroutput>
</member>
</simplelist> The first time you run it, it will create a
file called <filename>localconfig</filename>.
</para>
</section>
<section>
<title>Tweaking <filename>localconfig</filename></title>
<para>
This file contains a variety of settings you may need to tweak including
how Bugzilla should connect to the MySQL database.
</para>
<para>
The connection settings include:
<orderedlist>
<listitem>
<para>
The second time you run checksetup.pl, you should become the
user your web server runs as, and that you ensure that you set the
"webservergroup" parameter in localconfig to match the web
server's group
name, if any. I believe, for the next release of Bugzilla,
this will
be fixed so that Bugzilla supports a "webserveruser" parameter
in localconfig
as well.
<example>
<title>Running checksetup.pl as the web user</title>
<para>
Assuming your web server runs as user "apache",
and Bugzilla is installed in
"/usr/local/bugzilla", here's one way to run checksetup.pl
as the web server user.
As root, for the <emphasis>second run</emphasis>
of checksetup.pl, do this:
<programlisting>
bash# chown -R apache:apache /usr/local/bugzilla
bash# su - apache
bash# cd /usr/local/bugzilla
bash# ./checksetup.pl
</programlisting>
</para>
</example>
server's host: just use <quote>localhost</quote> if the
MySQL server is local
</para>
</note>
</para>
</listitem>
<listitem>
<para>
database name: <quote>bugs</quote> if you're following
these directions
</para>
</listitem>
<listitem>
<para>
MySQL username: <quote>bugs</quote> if you're following
these directions
</para>
</listitem>
<listitem>
<para>
Password for the <quote>bugs</quote> MySQL account above
</para>
</listitem>
</orderedlist>
</para>
<para>
You should also install .htaccess files that the Apache
webserver will use to restrict access to Bugzilla data files.
See <xref
linkend="htaccess">.
</para>
<para>
Once you are happy with the settings, re-run
<filename>checksetup.pl</filename>. On this second run, it will
create the database and an administrator account for which
you will be prompted to provide information.
</para>
<para>
When logged into an administrator account once Bugzilla is
running, if you go to the query page (off of the Bugzilla main
menu), you'll find an <quote>edit parameters</quote> option
that is filled with editable treats.
</para>
<para>
Should everything work, you will have a nearly empty Bugzilla
database and a newly-created <filename>localconfig</filename>
file in your Bugzilla root directory.
</para>
<para>
<note>
<para>
The checksetup.pl script is designed so that you can run
it at any time without causing harm. You should run it
after any upgrade to Bugzilla.
The second time you run checksetup.pl, you should become
the user your web server runs as, and that you ensure that
you set the <quote>webservergroup</quote> parameter in localconfig to
match the web server's group name, if any. I believe,
for the next release of Bugzilla, this will be fixed so
that Bugzilla supports a <quote>webserveruser</quote> parameter in
localconfig as well.
<example>
<title>Running checksetup.pl as the web user</title>
<para>
Assuming your web server runs as user "apache", and
Bugzilla is installed in "/usr/local/bugzilla", here's
one way to run checksetup.pl as the web server user.
As root, for the <emphasis>second run</emphasis> of
checksetup.pl, do this:
<programlisting>
bash# chown -R apache:apache /usr/local/bugzilla
bash# su - apache
bash# cd /usr/local/bugzilla
bash# ./checksetup.pl
</programlisting>
</para>
</example>
</para>
</note>
</section>
<section>
<title>Setting Up Maintainers Manually (Optional)</title>
</para>
<note>
<para>
If you want to add someone else to every group by hand, you
The checksetup.pl script is designed so that you can run
it at any time without causing harm. You should run it
after any upgrade to Bugzilla.
</para>
</note>
</section>
<section>
<title>Setting Up Maintainers Manually (Optional)</title>
<para>
If you want to add someone else to every group by hand, you
can do it by typing the appropriate MySQL commands. Run
'<computeroutput> mysql -u root -p bugs</computeroutput>' You
<command> mysql -u root -p bugs</command> You
may need different parameters, depending on your security
settings. Then:
<simplelist>
<member>
<computeroutput> <prompt>mysql></prompt> <command>update
profiles set groupset=0x7fffffffffffffff where
login_name = 'XXX';</command> </computeroutput>
login_name = 'XXX';</command> </computeroutput> (yes, that's <emphasis>fifteen</emphasis><quote>f</quote>'s.
</member>
</simplelist> replacing XXX with the Bugzilla email address.
</para>
......@@ -1156,33 +1203,74 @@ bash# ./checksetup.pl
<parameter>0</parameter>.
</para>
</section>
<section id="mod_throttle" xreflabel="Using mod_throttle to prevent Denial of Service attacks">
<title><filename>mod_throttle</filename> and Security</title>
<para>
It is possible for a user, by mistake or on purpose, to access
the database many times in a row which can result in very slow
access speeds for other users. If your Bugzilla installation
is experiencing this problem , you may install the Apache
module <filename>mod_throttle</filename> which can limit
connections by ip-address. You may download this module at
<ulink
url="http://www.snert.com/Software/Throttle/">http://www.snert.com/Software/Throttle/</ulink>. Follow the instructions to install into your Apache install. <emphasis>This module only functions with the Apache web server!</emphasis>. You may use the <command>ThrottleClientIP</command> command provided by this module to accomplish this goal. See the <ulink url="http://www.snert.com/Software/Throttle/">Module Instructions</ulink> for more information. </para>
</section>
<section id="content_type" xreflabel="Preventing untrusted Bugzilla contentfrom executing malicious Javascript code">
<title>Preventing untrusted Bugzilla content from executing malicious Javascript code</title>
<para>It is possible for a Bugzilla to execute malicious
Javascript code. Due to internationalization concerns, we are
unable to incorporate the code changes necessary to fulfill
the CERT advisory requirements mentioned in <ulink
url="http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3">http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3</ulink>. Executing the following code snippet from a UNIX command shell will rectify the problem if your Bugzilla installation is intended for an English-speaking audience. As always, be sure your Bugzilla installation has a good backup before making changes, and I recommend you understand what the script is doing before executing it. </para>
<para><programlisting>
bash# cd $BUGZILLA_HOME; for i in `ls *.cgi`; \
do cat $i | sed 's/Content-type\: text\/html/Content-Type: text\/html\; charset=ISO-8859-1/' >$i.tmp; \
mv $i.tmp $i; done
</programlisting></para>
<para>
All this one-liner command does is search for all instances of
<quote>Content-type: text/html</quote> and replaces it with
<quote>Content-Type: text/html; charset=ISO-8859-1</quote>.
This specification prevents possible Javascript attacks on the
browser, and is suggested for all English-speaking sites. For
non-english-speaking Bugzilla sites, I suggest changing
<quote>ISO-8859-1</quote>, above, to <quote>UTF-8</quote>.
</para>
</section>
<section>
<title>UNIX Installation Instructions History</title>
<para>
This document was originally adapted from the Bonsai installation
instructions by Terry Weissman &lt;terry@mozilla.org&gt;.
This document was originally adapted from the Bonsai
installation instructions by Terry Weissman
&lt;terry@mozilla.org&gt;.
</para>
<para>
The February 25, 1999 re-write of this page was done by Ry4an Brase
&lt;ry4an@ry4an.org&gt;, 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).
The February 25, 1999 re-write of this page was done by Ry4an
Brase &lt;ry4an@ry4an.org&gt;, 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).
</para>
<para>
This document was heavily modified again Wednesday, March 07 2001 to
reflect changes for Bugzilla 2.12 release by Matthew P. Barnson. The
securing MySQL section should be changed to become standard procedure
for Bugzilla installations.
This document was heavily modified again Wednesday, March 07
2001 to reflect changes for Bugzilla 2.12 release by Matthew
P. Barnson. The securing MySQL section should be changed to
become standard procedure for Bugzilla installations.
</para>
<para>
Finally, the README in its entirety was marked up in SGML and included into
the Guide on April 24, 2001 by Matt Barnson. Since that time, it's undergone
extensive modification as Bugzilla grew.
Finally, the README in its entirety was marked up in SGML and
included into the Guide on April 24, 2001 by Matt Barnson.
Since that time, it's undergone extensive modification as
Bugzilla grew.
</para>
<para>
Comments from people using this Guide for the first time are particularly welcome.
Comments from people using this Guide for the first time are
particularly welcome.
</para>
</section>
</section>
......@@ -1217,27 +1305,33 @@ bash# ./checksetup.pl
picnic. Support for Win32 has improved dramatically in the
last few releases, but, if you choose to proceed, you should
be a <emphasis>very</emphasis> skilled Windows Systems
Administrator with both strong troubleshooting abilities and
a high tolerance for pain. Bugzilla on NT requires hacking
source code and implementing some advanced utilities. What
follows is the recommended installation procedure for Win32;
additional suggestions are provided in <xref linkend="faq">.
Administrator with strong troubleshooting abilities, a high
tolerance for pain, and moderate perl skills. Bugzilla on NT
requires hacking source code and implementing some advanced
utilities. What follows is the recommended installation
procedure for Win32; additional suggestions are provided in
<xref linkend="faq">.
</para>
</note>
<procedure>
<step>
<para>
Install <ulink url="http://www.apache.org/">Apache Web Server</ulink>
for Windows.
Install <ulink url="http://www.apache.org/">Apache Web
Server</ulink> for Windows, and copy the Bugzilla files
somewhere Apache can serve them. Please follow all the
instructions referenced in <xref linkend="installation">
regarding your Apache configuration, particularly
instructions regarding the <quote>AddHandler</quote>
parameter and <quote>ExecCGI</quote>.
</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 <xref linkend="faq">.
You may also use Internet Information Server or Personal
Web Server for this purpose. However, setup is quite
different. If ActivePerl doesn't seem to handle your
file associations correctly (for .cgi and .pl files),
please consult <xref linkend="faq">.
</para>
<para>
If you are going to use IIS, if on Windows NT you must
......@@ -1299,8 +1393,7 @@ bash# ./checksetup.pl
Install MySQL for NT.
<note>
<para>
You can download MySQL for Windows NT from <ulink
url="http://www.mysql.com/">MySQL.com</ulink>. Some find it helpful to use the WinMySqlAdmin utility, included with the download, to set up the database.
You can download MySQL for Windows NT from <ulink url="http://www.mysql.com/">MySQL.com</ulink>. Some find it helpful to use the WinMySqlAdmin utility, included with the download, to set up the database.
</para>
</note>
</para>
......@@ -1393,13 +1486,21 @@ bash# ./checksetup.pl
this line:
</para>
<para>
"my $webservergid = getgrnam($my_webservergroup); "
<programlisting>
my $webservergid = getgrnam($my_webservergroup);
</programlisting>
</para>
<para>
to
</para>
<para>
"my $webservergid = $my_webservergroup; "
<programlisting>
my $webservergid = $my_webservergroup;
</programlisting>
or the name of the group you wish to own the files explicitly:
<programlisting>
my $webservergid = 'Administrators'
</programlisting>
</para>
</step>
......@@ -1412,8 +1513,7 @@ bash# ./checksetup.pl
<step>
<para>Edit <filename>localconfig</filename> to suit your
requirements. Set <varname>$db_pass</varname> to your
<quote>bugs_password</quote> from <xref
linkend="ntbugs-password">, and <varname>$webservergroup</varname> to <quote>8</quote>.</para>
<quote>bugs_password</quote> from <xref linkend="ntbugs-password">, and <varname>$webservergroup</varname> to <quote>8</quote>.</para>
<note>
<para>Not sure on the <quote>8</quote> for
<varname>$webservergroup</varname> above. If it's
......@@ -1455,8 +1555,7 @@ bash# ./checksetup.pl
<procedure>
<step>
<para>
Download NTsendmail, available from<ulink
url="http://www.ntsendmail.com/"> www.ntsendmail.com</ulink>. 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)
Download NTsendmail, available from<ulink url="http://www.ntsendmail.com/"> www.ntsendmail.com</ulink>. 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>
</step>
......@@ -1503,7 +1602,15 @@ $mail->send($from,$to,$subject,$msg);
</programlisting>
</para>
<note>
<para>The code above needs testing as well to make sure it is correct.</para>
<para>
Some have found success using the commercial product,
<productname>Windmail</productname>.
You could try replacing your sendmail calls with:
<programlisting>
open SENDMAIL, "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t > mail.log";
</programlisting>
or something to that effect.
</para>
</note>
</step>
</procedure>
......@@ -1568,9 +1675,9 @@ exit;
<step>
<note>
<para>
This step is completely optional if you are using IIS or
another web server which only decides on an interpreter
based upon the file extension (.pl), rather than the
This step is optional if you are using IIS or another
web server which only decides on an interpreter based
upon the file extension (.pl), rather than the
<quote>shebang</quote> line (#/usr/bonsaitools/bin/perl)
</para>
</note>
......@@ -1583,8 +1690,7 @@ exit;
utility to speed part of this procedure, available in the
<xref linkend="patches"> section of The Bugzilla Guide.
However, it requires the Cygwin GNU-compatible environment
for Win32 be set up in order to work. See <ulink
url="http://www.cygwin.com/">http://www.cygwin.com/</ulink> for details on obtaining Cygwin.
for Win32 be set up in order to work. See <ulink url="http://www.cygwin.com/">http://www.cygwin.com/</ulink> for details on obtaining Cygwin.
</para>
</step>
......@@ -1604,10 +1710,11 @@ system ("perl processmail.pl",@ARGLIST);
<tip>
<para>
If you are using IIS 5.0 or higher, you must add cgi
If you are using IIS or Personal Web Server, you must add cgi
relationships to Properties -> Home directory (tab) ->
Application Settings (section) -> Configuration (button),
such as: <programlisting>
such as:
<programlisting>
.cgi to: &lt;perl install directory&gt;\perl.exe %s %s
.pl to: &lt;perl install directory&gt;\perl.exe %s %s
GET,HEAD,POST
......@@ -1625,11 +1732,10 @@ GET,HEAD,POST
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>
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
......@@ -1651,119 +1757,28 @@ GET,HEAD,POST
</para>
</tip>
<tip>
<para>"Brian" had this to add, about upgrading to Bugzilla 2.12 from previous versions:</para>
<blockquote>
<para>
Hi - I am updating bugzilla to 2.12 so I can tell you what I did (after I
deleted the current dir and copied the files in).
</para>
<para>
In checksetup.pl, I did the following...
</para>
<procedure>
<step>
<programlisting>
my $webservergid = getgrnam($my_webservergroup);
<para>
If attempting to run Bugzilla 2.12 or older, you will need
to remove encrypt() calls from the Perl source. This is
<emphasis>not necessary</emphasis> for Bugzilla 2.13 and
later.
<example>
<title>Removing encrypt() for Windows NT Bugzilla version
2.12 or earlier</title>
<para>
Replace this:
<programlisting>
SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) . ", " . SqlQuote(substr($realcryptpwd, 0, 2)) . ")");
my $enteredcryptpwd = FetchOneColumn();
</programlisting>
<para>to</para>
<programlisting>
my $webservergid = 'Administrators'
with this:
<programlisting>
my $enteredcryptpwd = $enteredpwd
</programlisting>
</step>
<step>
<para>
I then ran checksetup.pl
</para>
</step>
<step>
<para>
I removed all the encrypt()
<example>
<title>Removing encrypt() for Windows NT installations</title>
<para>
Replace this:
<programlisting>
SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) . ", " .
SqlQuote(substr($realcryptpwd, 0, 2)) . ")");
my $enteredcryptpwd = FetchOneColumn();
</programlisting>
with this:
<programlisting>
my $enteredcryptpwd = $enteredpwd
</programlisting>
in cgi.pl.
</para>
</example>
</para>
</step>
<step>
<para>
I renamed processmail to processmail.pl
</para>
</step>
<step>
<para>
I altered the sendmail statements to windmail:
<programlisting>
open SENDMAIL, "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t > mail.log";
</programlisting>
</para>
<para>
The quotes around the dir is for the spaces. mail.log is for the output
</para>
</step>
</procedure>
</blockquote>
</tip>
<tip>
<para>
This was some late breaking information from Jan Evert. Sorry for the lack of formatting.
in cgi.pl.
</para>
</example>
</para>
<literallayout>
I'm busy installing bugzilla on a WinNT machine and I thought I'd notify you
at this moment of the commments I have to section 2.2.1 of the bugzilla
guide (at http://www.trilobyte.net/barnsons/html/).
Step 1:
I've used apache, installation is really straightforward.
After reading the Unix installation instructions, I found that it is
necessary to add the ExecCGI option to the bugzilla directory. Also the
'AddHandler' line for .cgi is by default commented out.
Step 3: although just a detail, 'ppm install &lt;module%gt;' will also work
(without .ppd). And, it can also download these automatically from
ActiveState.
Step 4: although I have cygwin installed, it seems that it is not necessary.
On my machine cygwin is not in the PATH and everything seems to work as
expected.
However, I've not used everything yet.
Step 6: the 'bugs_password' given in SQL command d needs to be edited into
localconfig later on (Step 7) if the password is not empty. I've also edited
it into globals.pl, but I'm not sure that is needed. In both places, the
variable is named db_pass.
Step 8: all the sendmail replacements mentioned are not as simple as
described there. Since I am not familiar (yet) with perl, I don't have any
mail working yet.
Step 9: in globals.pl the encrypt() call can be replaced by just the
unencrypted password. In CGI.pl, the complete SQL command can be removed.
Step 11: I've only changed the #! lines in *.cgi. I haven't noticed problems
with the system() call yet.
There seem to be only four system() called programs: processmail.pl (handled
by step 10), syncshadowdb (which should probably get the same treatment as
processmail.pl), diff and mysqldump. The last one is only needed with the
shadowdb feature (which I don't use).
There seems to be one step missing: copying the bugzilla files somehwere
that apache can serve them.
Just noticed the updated guide... Brian's comment is new. His first comment
will work, but opens up a huge security hole.
</literallayout>
</tip>
</section>
</section>
......
......@@ -5,49 +5,59 @@
<chapter id="integration">
<title>Integrating Bugzilla with Third-Party Tools</title>
<section id="bonsai">
<section id="bonsai" xreflabel="Bonsai, the Mozilla automated CVS management system">
<title>Bonsai</title>
<para>We need Bonsai integration information.</para>
<para>Bonsai is a web-based tool for managing <xref
linkend="cvs">
. Using Bonsai, administrators can control open/closed status
of trees, query a fast relational database back-end for change,
branch, and comment information, and view changes made since the
last time the tree was closed. These kinds of changes cause the
engineer responsible to be <quote>on the hook</quote> (include
cool URL link here for Hook policies at mozilla.org). Bonsai
also includes gateways to <xref
linkend="tinderbox"> and Bugzilla </para>
</section>
<section id="cvs">
<section id="cvs" xreflabel="CVS, the Concurrent Versioning System">
<title>CVS</title>
<para>CVS integration is best accomplished, at this point, using the Bugzilla Email Gateway.</para>
<para>CVS integration is best accomplished, at this point, using
the Bugzilla Email Gateway. There have been some files
submitted to allow greater CVS integration, but we need to make
certain that Bugzilla is not tied into one particular software
management package.</para>
<para>
Follow the instructions in the FAQ for enabling Bugzilla e-mail
integration. Ensure that your check-in script sends an email to
your Bugzilla e-mail gateway with the subject of <quote>[Bug
XXXX]</quote>, and you can have CVS check-in comments append
to your Bugzilla bug. If you have your check-in script include
an @resolution field, you can even change the Bugzilla bug
state.
</para>
</section>
<section id="scm">
<section id="scm" xreflabel="Perforce SCM (Fast Software Configuration Management System, a powerful commercial alternative to CVS">
<title>Perforce SCM</title>
<para>
You can find the project page for Bugzilla and Teamtrack Perforce integration at:
<ulink url="http://www.ravenbrook.com/project/p4dti/">
http://www.ravenbrook.com/project/p4dti</ulink>. "p4dti" is now an officially
supported product from Perforce, and you can find the "Perforce Public Depot"
p4dti page at <ulink url="http://public.perforce.com/public/perforce/p4dti/index.html">
http://public.perforce.com/public/perforce/p4dti/index.html</ulink>.
</para>
<para>
Integration of Perforce with Bugzilla, once patches are applied, is fairly seamless. However,
p4dti is a patch against the Bugzilla 2.10 release, not the current 2.12 release. I anticipate
patches for 2.12 will be out shortly. Check the project page regularly for updates, or
take the given patches and patch it manually. p4dti is designed to support multiple defect
trackers, and maintains its own documentation for it. Please consult the pages linked
above for further information.
You can find the project page for Bugzilla and Teamtrack
Perforce integration (p4dti) at: <ulink
url="http://www.ravenbrook.com/project/p4dti/"> http://www.ravenbrook.com/project/p4dti</ulink> . <quote>p4dti</quote> is now an officially supported product from Perforce, and you can find the "Perforce Public Depot" p4dti page at <ulink url="http://public.perforce.com/public/perforce/p4dti/index.html"> http://public.perforce.com/public/perforce/p4dti/index.html</ulink>.
</para>
<para>
Right now, there is no way to synchronize the Bug ID and the Perforce Transaction Number, or
to change the Bug ID to read (PRODUCT).bugID unless you hack it in. Additionally, if you
have synchronization problems, the easiest way to avoid them is to only put the bug
information, comments, etc. into Bugzilla, and not into the Perforce change records.
They will link anyway; merely reference the bug ID fixed in your change description,
and put a comment into Bugzilla
giving the change ID that fixed the Bugzilla bug. It's a process issue, not a technology
question.
Integration of Perforce with Bugzilla, once patches are applied,
is seamless. Perforce replication information will appear below
the comments of each bug. Be certain you have a matching set of
patches for the Bugzilla version you are installing. p4dti is
designed to support multiple defect trackers, and maintains its
own documentation for it. Please consult the pages linked above
for further information.
</para>
</section>
<section id="tinderbox">
<title>Tinderbox</title>
<para>We need Tinderbox integration information</para>
<section id="tinderbox" xreflabel="Tinderbox, the Mozilla automated build management system">
<title>Tinderbox/Tinderbox2</title>
<para>We need Tinderbox integration information.</para>
</section>
</chapter>
......
......@@ -3,6 +3,40 @@
<appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla">
<title>Useful Patches and Utilities for Bugzilla</title>
<para>Are you looking for a way to put your Bugzilla into overdrive? Catch some of the niftiest tricks here in this section.</para>
<section id="rewrite" xreflabel="Apache mod_rewrite magic">
<title>Apache <filename>mod_rewrite</filename> magic</title>
<para>Apache's <filename>mod_rewrite</filename> module lets you do some truly amazing things with URL rewriting. Here are a couple of examples of what you can do.</para>
<orderedlist>
<listitem>
<para>
Make it so if someone types
<computeroutput>http://www.foo.com/12345</computeroutput>,
Bugzilla spits back
http://www.foo.com/show_bug.cgi?id=12345. Try setting up
your VirtualHost section for Bugzilla with a rule like
this:</para>
<programlisting>
<![CDATA[
<VirtualHost 12.34.56.78>
RewriteEngine On
RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
</VirtualHost>
]]>
</programlisting>
</listitem>
<listitem>
<para>There are many, many more things you can do with
mod_rewrite. As time goes on, I will include many more in
the Guide. For now, though, please refer to the mod_rewrite
documentation at <ulink
url="http://www.apache.org">http://www.apache.org</ulink></para>
</listitem>
</orderedlist>
</section>
<section id="setperl" xreflabel="The setperl.csh Utility">
<title>The setperl.csh Utility</title>
<para> You can use the "setperl.csh" utility to quickly and
......
......@@ -31,7 +31,7 @@ Chapter: Using Bugzilla
<title>Using Bugzilla</title>
<epigraph>
<para>
What, Why, How, & What's in it for me?
What, Why, How, & Where?
</para>
</epigraph>
......@@ -92,8 +92,10 @@ system against which all others are measured.
</listitem>
<listitem>
<para>
available integration with automated software configuration management systems, including
Perforce and CVS
available integration with automated software
configuration management systems, including Perforce and
CVS (through the Bugzilla email interface and
checkin/checkout scripts)
</para>
</listitem>
<listitem>
......@@ -104,23 +106,28 @@ system against which all others are measured.
</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.
Despite its current robustness and popularity, 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, little internationalization (although non-US
character sets are accepted for comments), and dependence on
some nonstandard libraries.
</para>
<para>
Some recent headway has been made on the query front, however. If you are using the latest
version of Bugzilla, you should see a "simple search" form on the default front page of
your Bugzilla install. Type in two or three search terms and you should pull up some
relevant information. This is also available as "queryhelp.cgi".
Some recent headway has been made on the query front, however.
If you are using the latest version of Bugzilla, you should see
a <quote>simple search</quote> form on the default front page of
your Bugzilla install. Type in two or three search terms and
you should pull up some relevant information. This is also
available as "queryhelp.cgi".
</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.
Despite these small problems, Bugzilla is very hard to beat. It
is under <emphasis>very</emphasis> active development to address
the current issues, and continually gains new features.
</para>
</section>
......@@ -132,50 +139,57 @@ system against which all others are measured.
</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
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.
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 and hardware 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
Bugzilla is very adaptable to various situations. Known uses
currently include IT support queues, Systems Administration
deployment management, chip design and development problem
tracking (both pre-and-post fabrication), and software and
hardware bug tracking for luminaries such as Redhat, 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.
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 <emphasis>something</emphasis> 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.
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>
......@@ -189,46 +203,45 @@ system against which all others are measured.
<para>
Bugzilla is a large, 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.
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,
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>.
landfill.tequilarista.org</ulink>.
<note>
<para>
Some people have run into difficulties completing this tutorial. If
you run into problems, please check the updated, online documentation available
at <ulink url="http://www.trilobyte.net/barnsons/">http://www.trilobyte.net/barnsons</ulink>.
If you're still stumped, please subscribe to the newsgroup and provide details of exactly
what's stumping you! If enough people complain, I'll have to fix it in the next
version of this Guide. You can subscribe to the newsgroup at
<ulink url="news://news.mozilla.org/netscape.public.mozilla.webtools">
news://news.mozilla.org/netscape.public.mozilla.webtools</ulink>
Some people have run into difficulties completing this
tutorial. If you run into problems, please check the
updated online documentation available at <ulink
url="http://www.trilobyte.net/barnsons/">http://www.trilobyte.net/barnsons</ulink>. If you're still stumped, please subscribe to the newsgroup and provide details of exactly what's stumping you! If enough people complain, I'll have to fix it in the next version of this Guide. You can subscribe to the newsgroup at <ulink url="news://news.mozilla.org/netscape.public.mozilla.webtools"> news://news.mozilla.org/netscape.public.mozilla.webtools</ulink>
</para>
</note>
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. Additionally,
Landfill often runs cutting-edge versions of Bugzilla for testing, so some things
may work slightly differently than mentioned here.
</note> 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. Additionally,
Landfill often runs cutting-edge versions of Bugzilla for
testing, so some things may work slightly differently than
mentioned here.
</para>
<section id="myaccount">
<title>Create a Bugzilla Account</title>
<para>
First things 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/bugzilla-tip/">
http://landfill.tequilarista.org/bugzilla-tip/</ulink>
First things 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/bugzilla-tip/"> http://landfill.tequilarista.org/bugzilla-tip/</ulink>
</para>
<orderedlist>
<listitem>
......@@ -238,64 +251,81 @@ system against which all others are measured.
</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.
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).
Within moments, you should receive an email to the address
you provided above, which contains your login name
(generally the same as the email address), and a password
you can use to access your account. This password is
randomly generated, and 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".
Click the <quote>Log In</quote> link in the yellow area at
the bottom of the page in your browser, then enter your
<quote>E-mail address</quote> and <quote>Password</quote>
you just received into the spaces provided, and select
<quote>Login</quote>.
<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.
If you ever forget your password, you can come back to
this page, enter your <quote>E-mail address</quote>,
then select the <quote>E-mail me a password</quote>
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.
Many modern browsers include an
<quote>Auto-Complete</quote> or <quote>Form
Fill</quote> 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.
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
<quote>Bugzilla Query Page</quote>. 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.
The Bugzilla Query Page is the heart and soul of the Bugzilla
user experience. 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.
There are efforts underway to simplify query usage. If you
have a local installation of Bugzilla 2.12 or higher, you
should have <filename>quicksearch.html</filename> available to
use and simplify your searches. There is also a helper for
the query interface, called
<filename>queryhelp.cgi</filename>. 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,
......@@ -303,47 +333,57 @@ system against which all others are measured.
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.
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 <quote>Status</quote> 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.
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 <quote>Back</quote>
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.
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.
Ensure you are back on the <quote>Bugzilla Query
Page</quote>. 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!
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.
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.
......@@ -352,47 +392,55 @@ system against which all others are measured.
<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.
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.
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).
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.
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.
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>
......@@ -438,26 +486,25 @@ system against which all others are measured.
</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.
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".
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>
......@@ -475,56 +522,54 @@ system against which all others are measured.
</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
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.
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>
<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.
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>
......@@ -539,37 +584,35 @@ system against which all others are measured.
<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.
Before we plunge into writing your first bug report, I
encourage you to read some bug-writing guidelines. If you
are reading this document as part of a Bugzilla CVS checkout
or un-tarred Bugzilla distribution, you should be able to
read them by clicking <ulink
url="../../bugwritinghelp.html">here</ulink>. If you are reading this online, check out the Mozilla.org bug-writing guidelines at <ulink url="http://www.mozilla.org/quality/bug-writing-guidelines.html">http://www.mozilla.org/quality/bug-writing-guidelines.html</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>.
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!
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/bugzilla-tip/">
http://landfill.tequilarista.org/bugzilla-tip/</ulink>
in your browser.
Go back to <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/"> http://landfill.tequilarista.org/bugzilla-tip/</ulink> in your browser.
</para>
</listitem>
<listitem>
<para>
Select the
<ulink url="http://landfill.tequilarista.org/bugzilla-tip/enter_bug.cgi">
Enter a new bug report</ulink> link.
Select the <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/enter_bug.cgi"> Enter a new bug report</ulink> link.
</para>
</listitem>
<listitem>
......@@ -579,11 +622,11 @@ system against which all others are measured.
</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?).
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>
......@@ -593,107 +636,97 @@ system against which all others are measured.
</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!
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.
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".
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.
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.
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.
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".
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.
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.
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.
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.
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.
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.
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>
......@@ -701,7 +734,7 @@ system against which all others are measured.
</section>
<section id="init4me">
<title>What's in it for me?</title>
<title>Where can I find my user preferences?</title>
<epigraph>
<para>
Indiana, it feels like we walking on fortune cookies!
......@@ -711,98 +744,95 @@ system against which all others are measured.
</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/bugzilla-tip/query.cgi?GoAheadAndLogIn=1">
Landfill</ulink>.
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/bugzilla-tip/query.cgi?GoAheadAndLogIn=1"> Landfill</ulink>.
</para>
<section id="accountsettings">
<section id="accountsettings" xreflabel="Account Settings">
<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!
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 <quote>Old
Password</quote> field. If you wish to change your
password, type the new password you want into the <quote>New
Password</quote> field and again into the <quote>Re-enter
new password</quote> field to ensure you typed your new
password correctly. Select the <quote>Submit</quote> button
and you are done.
</para>
</section>
<section id="emailsettings">
<section id="emailsettings" >
<title>Email Settings</title>
<section id="notification">
<section id="notification" xreflabel="">
<title>Email Notification</title>
<note>
<para>
The email notification settings described below have been obsoleted in Bugzilla 2.12, and
this section will be replaced with a comprehensive description of the amazing array of
new options at your disposal. However, in the meantime, throw this chunk out the window
and go crazy with goofing around with different notification options.
</para>
</note>
<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>
Here you can reduce or increase the amount of email sent you
from Bugzilla. Although this is referred to as
<quote>Advanced Email Filtering Options</quote>, they are,
in fact, the standard email filter set. All of them are
self-explanatory, but you can use the filters in interesting
ways. For instance, some people (notably Quality Assurance
personnel) often only care to receive updates regarding a
bug when the bug changes state, so they can track bugs on
their flow charts and know when it is time to pull the bug
onto a quality assurance platform for inspection. Other
people set up email gateways to
<xref linkend="bonsai"> or <xref linkend="tinderbox">, and
restrict which types of Bugzilla information are fed to
these systems..
</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.
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.
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.
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".
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.
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>
......@@ -810,36 +840,46 @@ system against which all others are measured.
<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!
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...
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>
<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.
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>
......@@ -847,12 +887,11 @@ system against which all others are measured.
<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
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>
......
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