Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
3e7d0c08
Commit
3e7d0c08
authored
Apr 04, 2008
by
gerv%gerv.net
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Phase 1 of a big documentation update before 2.17.6.
parent
d4be3230
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1246 additions
and
1832 deletions
+1246
-1832
Bugzilla-Guide.xml
docs/en/xml/Bugzilla-Guide.xml
+26
-41
about.xml
docs/en/xml/about.xml
+34
-113
administration.xml
docs/en/xml/administration.xml
+161
-835
conventions.xml
docs/en/xml/conventions.xml
+11
-20
installation.xml
docs/en/xml/installation.xml
+517
-363
integration.xml
docs/en/xml/integration.xml
+6
-1
introduction.xml
docs/en/xml/introduction.xml
+33
-53
patches.xml
docs/en/xml/patches.xml
+6
-43
using.xml
docs/en/xml/using.xml
+452
-363
No files found.
docs/en/xml/Bugzilla-Guide.xml
View file @
3e7d0c08
...
...
@@ -13,7 +13,7 @@
<!ENTITY integration SYSTEM "integration.xml">
<!ENTITY future SYSTEM "future.xml">
<!ENTITY index SYSTEM "index.xml">
<!ENTITY
database SYSTEM "database
.xml">
<!ENTITY
customization SYSTEM "customization
.xml">
<!ENTITY patches SYSTEM "patches.xml">
<!ENTITY variants SYSTEM "variants.xml">
<!ENTITY introduction SYSTEM "introduction.xml">
...
...
@@ -32,13 +32,12 @@
For a devel release, simple bump bz-ver and bz-date
-->
<!ENTITY bz-ver "2.17.
4
">
<!ENTITY bz-ver "2.17.
5
">
<!ENTITY bz-nextver "2.18">
<!ENTITY bz-date "200
3-04-23
">
<!ENTITY bz-date "200
4-01-15
">
<!ENTITY % bz-devel "INCLUDE">
<!ENTITY bz "http://www.bugzilla.org/">
<!ENTITY bzg-auth "The Bugzilla Team">
<!ENTITY bzg-bugs "<ulink url='http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation'>
Bugzilla Documentation
</ulink>
">
<!ENTITY mysql "http://www.mysql.com/">
<!ENTITY newest-perl-ver "5.8">
...
...
@@ -70,21 +69,23 @@
<!-- Coding standards for this document
* Other than the GFDL, please use the "section" tag instead of "sect1", "sect2", etc.
* Other than the GFDL, please use the "section" tag instead of "sect1",
"sect2", etc.
* Use Entities to include files for new chapters in Bugzilla-Guide.xml.
* Try to use Entities for frequently-used passages of text as well.
* Ensure all documents compile cleanly to HTML after modification.
The warning, "DTDDECL catalog types not supported" is normal.
The warning, "DTDDECL catalog types not supported" is normal.
* Try to index important terms wherever possible.
* Use "glossterm" whenever you introduce a new term.
* Follow coding standards at http://www.tldp.org, and
check out the KDE guidelines (they are nice, too)
http://i18n.kde.org/doc/markup.html
check out the KDE guidelines (they are nice, too)
http://i18n.kde.org/doc/markup.html
* All tags should be lowercase.
* Please use sensible spacing. The comments at the very end of each
file define reasonable defaults for PSGML mode in EMACS.
Double-indent tags, use double spacing whenever possible, and
try to avoid clutter and feel free to waste space in the code to make it more readable.
file define reasonable defaults for PSGML mode in EMACS.
* Double-indent tags, use double spacing whenever possible, and
try to avoid clutter and feel free to waste space in the code to make it
more readable.
-->
...
...
@@ -93,18 +94,10 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<!-- Header -->
<bookinfo>
<title>
The Bugzilla Guide -
&bz-ver;
<![%bz-devel;[Development ]]>
Release
</title>
<title>
The Bugzilla Guide -
&bz-ver;
<![%bz-devel;[Development ]]>
Release
</title>
<authorgroup>
<author>
<firstname>
Matthew
</firstname>
<othername>
P.
</othername>
<surname>
Barnson
</surname>
</author>
<author>
<firstname>
Jacob
</firstname>
<surname>
Steenhagen
</surname>
</author>
<corpauthor>
The Bugzilla Team
</corpauthor>
</authorgroup>
...
...
@@ -112,24 +105,19 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<abstract>
<para>
This is the documentation for Bugzilla,
the mozilla.org
bug-tracking system.
This is the documentation for Bugzilla,
a
bug-tracking system
from mozilla.org
.
Bugzilla is an enterprise-class piece of software
that
powers issue-tracking
for hundreds of
organizations around the world
, tracking millions of bugs
.
that
tracks millions of bugs and issues
for hundreds of
organizations around the world.
</para>
<para>
This documentation is maintained in DocBook 4.1.2 XML format.
Changes are best submitted as plain text or XML diffs, attached
to a bug filed in the
&bzg-bugs;
component
.
<para>
The most current version of this document can always be found on the
<ulink
url=
"http://www.bugzilla.org/documentation.html"
>
Bugzilla
Documentation Page
</ulink>
.
</para>
<![%bz-devel;[
<para>
This is a development version of this guide. Information in it
is subject to change before the
&bz-nextver;
release of this guide
(which will correspond with the
&bz-nextver;
release of Bugzilla).
</para>
]]>
</abstract>
<keywordset>
...
...
@@ -160,18 +148,15 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<!-- Administering Bugzilla -->
&administration;
<!-- Customizing Bugzilla -->
&customization;
<!-- Appendix: The Frequently Asked Questions -->
&faq;
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Custom Patches -->
&patches;
<!-- Appendix: Major Bugzilla Variants -->
&variants;
<!-- Appendix: GNU Free Documentation License -->
&gfdl;
...
...
docs/en/xml/about.xml
View file @
3e7d0c08
...
...
@@ -7,7 +7,7 @@
<section
id=
"copyright"
>
<title>
Copyright Information
</title>
<blockquote>
<attribution>
Copyright (c) 2000-200
3 Matthew P. Barnson and
&bzg-auth;
</attribution>
<attribution>
Copyright (c) 2000-200
4 The Bugzilla Team
</attribution>
<para>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
...
...
@@ -20,7 +20,7 @@
<para>
If you have any questions regarding this document, its
copyright, or publishing this document in non-electronic form,
please contact
&bzg-auth;
.
please contact
the Bugzilla Team
.
</para>
</section>
...
...
@@ -28,7 +28,7 @@
<title>
Disclaimer
</title>
<para>
No liability for the contents of this document can be accepted.
Use the concepts, examples, and other content
at your own risk.
Follow the instructions herein
at your own risk.
This document may contain errors
and inaccuracies that may damage your system, cause your partner
to leave you, your boss to fire you, your cats to
...
...
@@ -36,35 +36,20 @@
war. Proceed with caution.
</para>
<para>
All copyrights are held by their respective owners, unless
specifically noted otherwise. Use of a term in this document
should not be regarded as affecting the validity of any
trademark or service mark.
</para>
<para>
Naming of particular products or brands should not be seen as
endorsements, with the exception of the term "GNU/Linux". We
wholeheartedly endorse the use of GNU/Linux
in every situation
where it is appropriate. It is an extremely
versatile, stable,
wholeheartedly endorse the use of GNU/Linux
; it is an extremely
versatile, stable,
and robust operating system that offers an ideal operating
environment for Bugzilla.
</para>
<para>
You are strongly recommended to make a backup of your system
before installing Bugzilla and at regular intervals thereafter.
If you implement any suggestion in this Guide, implement this one!
</para>
<para>
Although the Bugzilla development team has taken great care to
ensure that all easily-exploitable bugs or options are
documented or fixed in the code, security holes surely exist.
Great care should be taken both in the installation and usage of
this software. Carefully consider the implications of installing
other network services with Bugzilla. The Bugzilla development
team members, Netscape Communications, America Online Inc., and
any affiliated developers or sponsors assume no liability for
your use of this product. You have the source code to this
product, and are responsible for auditing it yourself to ensure
ensure that all exploitable bugs or options have been
fixed, security holes surely exist. Great care should be taken both in
the installation and usage of this software. The Bugzilla development
team members assume no liability for your use of this software. You have
the source code, and are responsible for auditing it yourself to ensure
your security needs are met.
</para>
</section>
...
...
@@ -77,24 +62,14 @@
This is the
&bz-ver;
version of The Bugzilla Guide. It is so named
to match the current version of Bugzilla.
<![%bz-devel;[
This version of the guide, like its associated Bugzilla version is a
development version. Information is subject to change between now and
when &bz-nextver; is released.
This version of the guide, like its associated Bugzilla version, is a
development version.
]]>
If you are
reading this from any source other than those below, please
check one of these mirrors to make sure you are reading an
up-to-date version of the Guide.
</para>
<para>
The newest version of this guide can always be found at
<ulink
url=
"http://www.bugzilla.org"
/>
; including
documentation for past releases and the current development version.
</para>
<para>
The documentation for the most recent stable release of Bugzilla can also
be found at
<ulink
url=
"http://www.tldp.org"
>
The Linux Documentation Project
</ulink>
.
url=
"http://www.bugzilla.org"
/>
; however, you should read the version
which came with the Bugzilla release you are using.
</para>
<para>
The latest version of this document can always be checked out via CVS.
...
...
@@ -118,87 +93,33 @@
contribution to the Bugzilla community:
</para>
<!-- TODO: This is evil... there has to be a valid way to get this look -->
<variablelist>
<varlistentry>
<term>
Matthew P. Barnson
<email>
mbarnson@sisna.com
</email></term>
<listitem>
<para>
for the Herculaean task of pulling together the Bugzilla Guide
and shepherding it to 2.14.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Terry Weissman
<email>
terry@mozilla.org
</email></term>
<listitem>
<para>
for initially writing Bugzilla and creating the README upon
which the UNIX installation documentation is largely based.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Tara Hernandez
<email>
tara@tequilarists.org
</email></term>
<listitem>
<para>
for keeping Bugzilla development going strong after Terry left
mozilla.org and for running landfill.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Dave Lawrence
<email>
dkl@redhat.com
</email></term>
<listitem>
<para>
for providing insight into the key differences between Red
Hat's customized Bugzilla, and being largely responsible for
<xref
linkend=
"variant-redhat"
/>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Dawn Endico
<email>
endico@mozilla.org
</email></term>
<listitem>
<para>
for being a hacker extraordinaire and putting up with Matthew's
incessant questions and arguments on irc.mozilla.org in #mozwebtools
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Jacob Steenhagen
<email>
jake@bugzilla.org
</email></term>
<listitem>
<para>
for taking over documentation during the 2.17 development
period.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Last but not least, all the members of the
<ulink
url=
"news://news.mozilla.org/netscape/public/mozilla/webtools"
/>
newsgroup. Without your discussions, insight, suggestions, and patches,
this could never have happened.
</para>
<para>
Thanks also go to the following people for significant contributions
to this documentation (in alphabetical order):
<simplelist
type=
"inline"
>
<member>
Andrew Pearson
</member>
<member>
Matthew P. Barnson
</member>
<member>
Kevin Brannen
</member>
<member>
Dawn Endico
</member>
<member>
Ben FrantzDale
</member>
<member>
Eric Hanson
</member>
<member>
Tara Hernandez
</member>
<member>
Dave Lawrence
</member>
<member>
Zach Lipton
</member>
<member>
Gervase Markham
</member>
<member>
Andrew Pearson
</member>
<member>
Joe Robins
</member>
<member>
Kevin Brannen
</member>
<member>
Martin Wulffeld
</member>
<member>
Ron Teitelbaum
</member>
<member>
Spencer Smith
</member>
<member>
Zach Liption
</member>
</simplelist>
.
<member>
Jacob Steenhagen
</member>
<member>
Ron Teitelbaum
</member>
<member>
Terry Weissman
</member>
<member>
Martin Wulffeld
</member>
</simplelist>
.
</para>
<para>
Last but not least, all the members of the
<ulink
url=
"news://news.mozilla.org/netscape/public/mozilla/webtools"
>
netscape.public.mozilla.webtools
</ulink>
newsgroup. Without your discussions, insight, suggestions, and patches,
this could never have happened.
</para>
</section>
...
...
docs/en/xml/administration.xml
View file @
3e7d0c08
...
...
@@ -71,7 +71,7 @@
standard type, and Bugzilla does not yet take advantage of features
such as transactions which would justify this speed decrease. The
Bugzilla team are, however, happy to hear about any experiences with
row level locking and Bugzilla
</para>
row level locking and Bugzilla
.
</para>
<para>
The
<quote>
shadowdb
</quote>
parameter was designed to get around this limitation. While only a
...
...
@@ -82,7 +82,7 @@
high-traffic Bugzilla databases.
</para>
<para>
As a guide, mozilla.org began needing
As a guide,
on reasonably old hardware,
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>
...
...
@@ -321,7 +321,7 @@
they attempt to perform these actions, and should explain
why the account was disabled.
<warning>
<para>
Don't disable
the administrator account
!
</para>
<para>
Don't disable
all the administrator accounts
!
</para>
</warning>
<note>
...
...
@@ -418,178 +418,167 @@
</section>
</section>
<section
id=
"pro
gramadmin
"
>
<title>
Product
, Component, Milestone, and Version Administration
</title>
<section
id=
"pro
ducts
"
>
<title>
Product
s
</title>
<section
id=
"products"
>
<title>
Products
</title>
<para>
<glossterm
linkend=
"gloss-product"
baseform=
"product"
>
Products
</glossterm>
<para>
<glossterm
linkend=
"gloss-product"
baseform=
"product"
>
Products
</glossterm>
are the broadest category in Bugzilla, and tend to represent real-world
shipping products. E.g. if your company makes computer games,
you should have one product per game, perhaps a "Common" product for
units of technology used in multiple games, and maybe a few special
products (Website, Administration...)
</para>
<para>
Many of Bugzilla's settings are configurable on a per-product
basis. The number of "votes" available to users is set per-product,
as is the number of votes
required to move a bug automatically from the UNCONFIRMED status to the
NEW status.
</para>
<para>
To create a new product:
</para>
<orderedlist>
<listitem>
<para>
Select "products" from the footer
</para>
</listitem>
<listitem>
<para>
Select the "Add" link in the bottom right
</para>
</listitem>
<listitem>
<para>
Enter the name of the product and a description. The
Description field may contain HTML.
</para>
</listitem>
</orderedlist>
<para>
Don't worry about the "Closed for bug entry", "Maximum Votes
per person", "Maximum votes a person can put on a single bug",
"Number of votes a bug in this Product needs to automatically get out
of the UNCOMFIRMED state", and "Version" options yet. We'll cover
those in a few moments.
</para>
</section>
are the broadest category in Bugzilla, and tend to represent real-world
shipping products. E.g. if your company makes computer games,
you should have one product per game, perhaps a "Common" product for
units of technology used in multiple games, and maybe a few special
products (Website, Administration...)
</para>
<section
id=
"components"
>
<title>
Components
</title>
<para>
Components are subsections of a Product. E.g. the computer game
you are designing may have a "UI"
component, an "API" component, a "Sound System" component, and a
"Plugins" component, each overseen by a different programmer. It
often makes sense to divide Components in Bugzilla according to the
natural divisions of responsibility within your Product or
company.
</para>
<para>
Each component has a owner and (if you turned it on in the parameters),
a QA Contact. The owner should be the primary person who fixes bugs in
that component. The QA Contact should be the person who will ensure
these bugs are completely fixed. The Owner, QA Contact, and Reporter
will get email when new bugs are created in this Component and when
these bugs change. Default Owner and Default QA Contact fields only
dictate the
<emphasis>
default assignments
</emphasis>
;
these can be changed on bug submission, or at any later point in
a bug's life.
</para>
<para>
To create a new Component:
</para>
<orderedlist>
<listitem>
<para>
Select the "Edit components" link from the "Edit product"
page
</para>
</listitem>
<listitem>
<para>
Select the "Add" link in the bottom right.
</para>
</listitem>
<listitem>
<para>
Fill out the "Component" field, a short "Description",
the "Initial Owner" and "Initial QA Contact" (if enabled.)
The Component and Description fields may contain HTML;
the "Initial Owner" field must be a login name
already existing in the database.
</para>
</listitem>
</orderedlist>
</section>
<para>
Many of Bugzilla's settings are configurable on a per-product
basis. The number of "votes" available to users is set per-product,
as is the number of votes
required to move a bug automatically from the UNCONFIRMED status to the
NEW status.
</para>
<section
id=
"versions"
>
<title>
Versions
</title>
<para>
To create a new product:
</para>
<para>
Versions are the revisions of the product, such as "Flinders
3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select
field; the usual practice is to select the most recent version with
the bug.
</para>
<orderedlist>
<listitem>
<para>
Select "products" from the footer
</para>
<
para>
To create and edit Versions:
</para
>
<
/listitem
>
<orderedlist>
<listitem>
<para>
From the "Edit product" screen, select "Edit Versions"
</para>
</listitem>
<listitem>
<para>
Select the "Add" link in the bottom right
</para>
</listitem>
<listitem>
<para>
You will notice that the product already has the default
version "undefined". Click the "Add" link in the bottom right.
</para>
</listitem>
<listitem>
<para>
Enter the name of the product and a description. The
Description field may contain HTML.
</para>
</listitem>
</orderedlist>
<listitem>
<para>
Enter the name of the Version. This field takes text only.
Then click the "Add" button.
</para>
</listitem>
<para>
Don't worry about the "Closed for bug entry", "Maximum Votes
per person", "Maximum votes a person can put on a single bug",
"Number of votes a bug in this Product needs to automatically get out
of the UNCOMFIRMED state", and "Version" options yet. We'll cover
those in a few moments.
</para>
</section>
</orderedlist>
</section>
<section
id=
"components"
>
<title>
Components
</title>
<para>
Components are subsections of a Product. E.g. the computer game
you are designing may have a "UI"
component, an "API" component, a "Sound System" component, and a
"Plugins" component, each overseen by a different programmer. It
often makes sense to divide Components in Bugzilla according to the
natural divisions of responsibility within your Product or
company.
</para>
<para>
Each component has a owner and (if you turned it on in the parameters),
a QA Contact. The owner should be the primary person who fixes bugs in
that component. The QA Contact should be the person who will ensure
these bugs are completely fixed. The Owner, QA Contact, and Reporter
will get email when new bugs are created in this Component and when
these bugs change. Default Owner and Default QA Contact fields only
dictate the
<emphasis>
default assignments
</emphasis>
;
these can be changed on bug submission, or at any later point in
a bug's life.
</para>
<para>
To create a new Component:
</para>
<section
id=
"milestones"
>
<title>
Milestones
</title>
<orderedlist>
<listitem>
<para>
Select the "Edit components" link from the "Edit product"
page
</para>
</listitem>
<
para>
Milestones are "targets" that you plan to get a bug fixed by. For
example, you have a bug that you plan to fix for your 3.0 release, it
would be assigned the milestone of 3.0.
</para
>
<
listitem>
<para>
Select the "Add" link in the bottom right.
</para>
</listitem
>
<note>
<para>
Milestone options will only appear for a Product if you turned
on the "usetargetmilestone" Param in the "Edit Parameters" screen.
<listitem>
<para>
Fill out the "Component" field, a short "Description",
the "Initial Owner" and "Initial QA Contact" (if enabled.)
The Component and Description fields may contain HTML;
the "Initial Owner" field must be a login name
already existing in the database.
</para>
</note>
<para>
To create new Milestones, set Default Milestones, and set
Milestone URL:
</para>
<orderedlist>
<listitem>
<para>
Select "Edit milestones" from the "Edit product" page.
</para>
</listitem>
<listitem>
<para>
Select "Add" in the bottom right corner.
text
</para>
</listitem>
<listitem>
<para>
Enter the name of the Milestone in the "Milestone" field. You
can optionally set the "sortkey", which is a positive or negative
number (-255 to 255) that defines where in the list this particular
milestone appears. This is because milestones often do not
occur in alphanumeric order For example, "Future" might be
after "Release 1.2". Select "Add".
</para>
</listitem>
<listitem>
<para>
From the Edit product screen, you can enter the URL of a
page which gives information about your milestones and what
they mean.
</para>
</listitem>
</orderedlist>
</section>
<tip>
<para>
If you want your milestone document to be restricted so
that it can only be viewed by people in a particular Bugzilla
group, the best way is to attach the document to a bug in that
group, and make the URL the URL of that attachment.
</para>
</tip>
</listitem>
</orderedlist>
</section>
<section
id=
"versions"
>
<title>
Versions
</title>
<para>
Versions are the revisions of the product, such as "Flinders
3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select
field; the usual practice is to select the earliest version known to have
the bug.
</para>
<para>
To create and edit Versions:
</para>
<orderedlist>
<listitem>
<para>
From the "Edit product" screen, select "Edit Versions"
</para>
</listitem>
<listitem>
<para>
You will notice that the product already has the default
version "undefined". Click the "Add" link in the bottom right.
</para>
</listitem>
<listitem>
<para>
Enter the name of the Version. This field takes text only.
Then click the "Add" button.
</para>
</listitem>
</orderedlist>
</section>
<section
id=
"milestones"
>
<title>
Milestones
</title>
<para>
Milestones are "targets" that you plan to get a bug fixed by. For
example, you have a bug that you plan to fix for your 3.0 release, it
would be assigned the milestone of 3.0.
</para>
<note>
<para>
Milestone options will only appear for a Product if you turned
on the "usetargetmilestone" Param in the "Edit Parameters" screen.
</para>
</note>
<para>
To create new Milestones, set Default Milestones, and set
Milestone URL:
</para>
<orderedlist>
<listitem>
<para>
Select "Edit milestones" from the "Edit product" page.
</para>
</listitem>
<listitem>
<para>
Select "Add" in the bottom right corner.
text
</para>
</listitem>
<listitem>
<para>
Enter the name of the Milestone in the "Milestone" field. You
can optionally set the "sortkey", which is a positive or negative
number (-255 to 255) that defines where in the list this particular
milestone appears. This is because milestones often do not
occur in alphanumeric order For example, "Future" might be
after "Release 1.2". Select "Add".
</para>
</listitem>
<listitem>
<para>
From the Edit product screen, you can enter the URL of a
page which gives information about your milestones and what
they mean.
</para>
</listitem>
</orderedlist>
</section>
<section
id=
"voting"
>
...
...
@@ -723,9 +712,10 @@
place all users who fulfill the Regular Expression into the new group.
When you have finished, click
<quote>
Add
</quote>
.
</para>
<warning>
<para>
The User Regexp is a perl regexp and, if not anchored, will match
any part of an address. So, if you do not want to grant access
into 'mycompany.com' to 'badperson@mycompany.com.hacker.net', use
<para>
If specifying a domain in the regexp, make sure you end
the regexp with a $. Otherwise, when granting access to
"@mycompany\.com", you will allow access to
'badperson@mycompany.com.cracker.net'. You need to use
'@mycompany\.com$' as the regexp.
</para>
</warning>
</listitem>
...
...
@@ -749,676 +739,16 @@
</para>
</section>
<section
id=
"upgrading"
>
<title>
Upgrading to New Releases
</title>
<section
id=
"security"
>
<title>
Bugzilla Security
</title>
<warning>
<para>
Poorly-configured MySQL and Bugzilla installations have
given attackers full access to systems in the past. Please take these
guidelines seriously, even for Bugzilla machines hidden away behind
your firewall. 80% of all computer trespassers are insiders, not
anonymous crackers.
</para>
</warning>
<note>
<para>
These instructions must, of necessity, be somewhat vague since
Bugzilla runs on so many different platforms. If you have refinements
of these directions, please submit a bug to
&bzg-bugs;
.
</para>
</note>
<warning>
<para>
This is not meant to be a comprehensive list of every possible
security issue regarding the tools mentioned in this section. There is
no subsitute for reading the information written by the authors of any
software running on your system.
</para>
</warning>
<section
id=
"security-networking"
>
<title>
TCP/IP Ports
</title>
<!-- TODO: Make this make sense (TCP/IP) -->
<para>
TCP/IP defines 65,000 some ports for trafic. Of those, Bugzilla
only needs 1... 2 if you need to use features that require e-mail such
as bug moving or the e-mail interface from contrib. You should audit
your server and make sure that you aren't listening on any ports you
don't need to be. You may also wish to use some kind of firewall
software to be sure that trafic can only be recieved on ports you
specify.
</para>
</section>
<section
id=
"security-mysql"
>
<title>
MySQL
</title>
<para>
MySQL ships by default with many settings that should be changed.
By defaults it allows anybody to connect from localhost without a
password and have full administrative capabilities. It also defaults to
not have a root password (this is
<emphasis>
not
</emphasis>
the same as
the system root). Also, many installations default to running
<application>
mysqld
</application>
as the system root.
</para>
<orderedlist>
<listitem>
<para>
Consult the documentation that came with your system for
information on making
<application>
mysqld
</application>
run as an
unprivleged user.
</para>
</listitem>
<listitem>
<para>
You should also be sure to disable the anonymous user account
and set a password for the root user. This is accomplished using the
following commands:
</para>
<programlisting>
<prompt>
bash$
</prompt>
mysql mysql
<prompt>
mysql
>
</prompt>
DELETE FROM user WHERE user = '';
<prompt>
mysql
>
</prompt>
UPDATE user SET password = password('
<replaceable>
new_password
</replaceable>
') WHERE user = 'root';
<prompt>
mysql
>
</prompt>
FLUSH PRIVILEGES;
</programlisting>
<para>
From this point forward you will need to use
<command>
mysql -u root -p
</command>
and enter
<replaceable>
new_password
</replaceable>
when prompted when using the
mysql client.
</para>
</listitem>
<listitem>
<para>
If you run MySQL on the same machine as your httpd server, you
should consider disabling networking from within MySQL by adding
the following to your
<filename>
/etc/my.conf
</filename>
:
</para>
<programlisting>
[myslqd]
# Prevent network access to MySQL.
skip-networking
</programlisting>
</listitem>
<listitem>
<para>
You may also consider running MySQL, or even all of Bugzilla
in a chroot jail; however, instructions for doing that are beyond
the scope of this document.
</para>
</listitem>
</orderedlist>
</section>
<section
id=
"security-daemon"
>
<title>
Daemon Accounts
</title>
<para>
Many daemons, such as Apache's httpd and MySQL's mysqld default to
running as either
<quote>
root
</quote>
or
<quote>
nobody
</quote>
. Running
as
<quote>
root
</quote>
introduces obvious security problems, but the
problems introduced by running everything as
<quote>
nobody
</quote>
may
not be so obvious. Basically, if you're running every daemon as
<quote>
nobody
</quote>
and one of them gets comprimised, they all get
comprimised. For this reason it is recommended that you create a user
account for each daemon.
</para>
<note>
<para>
You will need to set the
<varname>
webservergroup
</varname>
to
the group you created for your webserver to run as in
<filename>
localconfig
</filename>
. This will allow
<command>
./checksetup.pl
</command>
to better adjust the file
permissions on your Bugzilla install so as to not require making
anything world-writable.
</para>
</note>
</section>
<section
id=
"security-access"
>
<title>
Web Server Access Controls
</title>
<para>
There are many files that are placed in the Bugzilla directory
area that should not be accessable from the web. Because of the way
Bugzilla is currently layed out, the list of what should and should
not be accessible is rather complicated. A new installation method
is currently in the works which should solve this by allowing files
that shouldn't be accessible from the web to be placed in directory
outside the webroot. See
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=44659"
>
bug 44659
</ulink>
for more information.
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
In the main Bugzilla directory, you should:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block:
<simplelist
type=
"inline"
>
<member><filename>
*.pl
</filename></member>
<member><filename>
*localconfig*
</filename></member>
<member><filename>
runtests.sh
</filename></member>
</simplelist>
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
localconfig.js
</filename></member>
<member><filename>
localconfig.rdf
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
In
<filename
class=
"directory"
>
data
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
duplicates.rdf
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
In
<filename
class=
"directory"
>
data/webdot
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
If you use a remote webdot server:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow
<simplelist
type=
"inline"
>
<member><filename>
*.dot
</filename></member>
</simplelist>
only for the remote webdot server
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Otherwise, if you use a local GraphViz:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
*.png
</filename></member>
<member><filename>
*.gif
</filename></member>
<member><filename>
*.jpg
</filename></member>
<member><filename>
*.map
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
And if you don't use any dot:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
In
<filename
class=
"directory"
>
Bugzilla
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
In
<filename
class=
"directory"
>
template
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<tip>
<para>
Bugzilla ships with the ability to generate
<filename>
.htaccess
</filename>
files instructing
<glossterm
linkend=
"gloss-apache"
>
Apache
</glossterm>
which files
should and should not be accessible. For more information, see
<xref
linkend=
"http-apache"
/>
.
</para>
</tip>
<para>
You should test to make sure that the files mentioned above are
not accessible from the Internet, especially your
<filename>
localconfig
</filename>
file which contains your database
password. To test, simply point your web browser at the file; for
example, to test mozilla.org's installation, we'd try to access
<ulink
url=
"http://bugzilla.mozilla.org/localconfig"
/>
. You should
get a
<errorcode>
403
</errorcode>
<errorname>
Forbidden
</errorname>
error.
</para>
<caution>
<para>
Not following the instructions in this section, including
testing, may result in sensitive information being globally
accessible.
</para>
</caution>
<tip>
<para>
You should check
<xref
linkend=
"http"
/>
to see if instructions
have been included for your web server. You should also compare those
instructions with this list to make sure everything is properly
accounted for.
</para>
</tip>
</section>
</section>
<section
id=
"cust-templates"
>
<title>
Template Customization
</title>
<para>
One of the large changes for 2.16 was the templatization of the
entire user-facing UI, using the
<ulink
url=
"http://www.template-toolkit.org"
>
Template Toolkit
</ulink>
.
Administrators can now configure the look and feel of Bugzilla without
having to edit Perl files or face the nightmare of massive merge
conflicts when they upgrade to a newer version in the future.
</para>
<para>
Templatization also makes localized versions of Bugzilla possible,
for the first time. In the future, a Bugzilla installation may
have templates installed for multiple localizations, and select
which ones to use based on the user's browser language setting.
</para>
<section>
<title>
What to Edit
</title>
<para>
There are two different ways of editing of Bugzilla's templates,
and which you use depends mainly on how you upgrade Bugzilla. The
template directory structure is that there's a top level directory,
<filename>
template
</filename>
, which contains a directory for
each installed localization. The default English templates are
therefore in
<filename>
en
</filename>
. Underneath that, there
is the
<filename>
default
</filename>
directory and optionally the
<filename>
custom
</filename>
directory. The
<filename>
default
</filename>
directory contains all the templates shipped with Bugzilla, whereas
the
<filename>
custom
</filename>
directory does not exist at first and
must be created if you want to use it.
</para>
<para>
The first method of making customizations is to directly edit the
templates in
<filename>
template/en/default
</filename>
. This is
probably the best method for small changes if you are going to use
the CVS method of upgrading, because if you then execute a
<command>
cvs update
</command>
, any template fixes will get
automagically merged into your modified versions.
</para>
<para>
If you use this method, your installation will break if CVS conflicts
occur.
</para>
<para>
The other method is to copy the templates into a mirrored directory
structure under
<filename>
template/en/custom
</filename>
. The templates
in this directory automatically override those in default.
This is the technique you
need to use if you use the overwriting method of upgrade, because
otherwise your changes will be lost. This method is also better if
you are using the CVS method of upgrading and are going to make major
changes, because it is guaranteed that the contents of this directory
will not be touched during an upgrade, and you can then decide whether
to continue using your own templates, or make the effort to merge your
changes into the new versions by hand.
</para>
<para>
If you use this method, your installation may break if incompatible
changes are made to the template interface. If such changes are made
they will be documented in the release notes, provided you are using a
stable release of Bugzilla. If you use using unstable code, you will
need to deal with this one yourself, although if possible the changes
will be mentioned before they occur in the deprecations section of the
previous stable release's release notes.
</para>
<note>
<para>
Don't directly edit the compiled templates in
<filename
class=
"directory"
>
data/template/*
</filename>
- your
changes will be lost when Template Toolkit recompiles them.
</para>
</note>
</section>
<section>
<title>
How To Edit Templates
</title>
<para>
The syntax of the Template Toolkit language is beyond the scope of
this guide. It's reasonably easy to pick up by looking at the current
templates; or, you can read the manual, available on the
<ulink
url=
"http://www.template-toolkit.org"
>
Template Toolkit home
page
</ulink>
. However, you should particularly remember (for security
reasons) to always HTML filter things which come from the database or
user input, to prevent cross-site scripting attacks.
</para>
<para>
However, one thing you should take particular care about is the need
to properly HTML filter data that has been passed into the template.
This means that if the data can possibly contain special HTML characters
such as
<
, and the data was not intended to be HTML, they need to be
converted to entity form, ie
&
lt;. You use the 'html' filter in the
Template Toolkit to do this. If you fail to do this, you may open up
your installation to cross-site scripting attacks.
</para>
<para>
Also note that Bugzilla adds a few filters of its own, that are not
in standard Template Toolkit. In particular, the 'url_quote' filter
can convert characters that are illegal or have special meaning in URLs,
such as
&
, to the encoded form, ie %26. This actually encodes most
characters (but not the common ones such as letters and numbers and so
on), including the HTML-special characters, so there's never a need to
HTML filter afterwards.
</para>
<para>
Editing templates is a good way of doing a "poor man's custom fields".
For example, if you don't use the Status Whiteboard, but want to have
a free-form text entry box for "Build Identifier", then you can just
edit the templates to change the field labels. It's still be called
status_whiteboard internally, but your users don't need to know that.
</para>
<note>
<para>
If you are making template changes that you intend on submitting back
for inclusion in standard Bugzilla, you should read the relevant
sections of the
<ulink
url=
"http://www.bugzilla.org/developerguide.html"
>
Developers'
Guide
</ulink>
.
</para>
</note>
</section>
<section>
<title>
Template Formats
</title>
<para>
Some CGIs have the ability to use more than one template. For
example, buglist.cgi can output bug lists as RDF or two
different forms of HTML (complex and simple). (Try this out
by appending
<filename>
&
format=simple
</filename>
to a buglist.cgi
URL on your Bugzilla installation.) This
mechanism, called template 'formats', is extensible.
</para>
<para>
To see if a CGI supports multiple output formats, grep the
CGI for "ValidateOutputFormat". If it's not present, adding
multiple format support isn't too hard - see how it's done in
other CGIs.
</para>
<para>
To make a new format template for a CGI which supports this,
open a current template for
that CGI and take note of the INTERFACE comment (if present.) This
comment defines what variables are passed into this template. If
there isn't one, I'm afraid you'll have to read the template and
the code to find out what information you get.
</para>
<para>
Write your template in whatever markup or text style is appropriate.
</para>
<para>
You now need to decide what content type you want your template
served as. Open up the
<filename>
localconfig
</filename>
file and find the
<filename>
$contenttypes
</filename>
variable. If your content type is not there, add it. Remember
the three- or four-letter tag assigned to you content type.
This tag will be part of the template filename.
</para>
<para>
Save the template as
<filename>
<
stubname
>
-
<
formatname
>
.
<
contenttypetag
>
.tmpl
</filename>
.
Try out the template by calling the CGI as
<filename>
<
cginame
>
.cgi?format=
<
formatname
>
</filename>
.
</para>
</section>
<section>
<title>
Particular Templates
</title>
<para>
There are a few templates you may be particularly interested in
customizing for your installation.
</para>
<para>
<command>
index.html.tmpl
</command>
:
This is the Bugzilla front page.
</para>
<para>
<command>
global/header.html.tmpl
</command>
:
This defines the header that goes on all Bugzilla pages.
The header includes the banner, which is what appears to users
and is probably what you want to edit instead. However the
header also includes the HTML HEAD section, so you could for
example add a stylesheet or META tag by editing the header.
</para>
<para>
<command>
global/banner.html.tmpl
</command>
:
This contains the "banner", the part of the header that appears
at the top of all Bugzilla pages. The default banner is reasonably
barren, so you'll probably want to customize this to give your
installation a distinctive look and feel. It is recommended you
preserve the Bugzilla version number in some form so the version
you are running can be determined, and users know what docs to read.
</para>
<para>
<command>
global/footer.html.tmpl
</command>
:
This defines the footer that goes on all Bugzilla pages. Editing
this is another way to quickly get a distinctive look and feel for
your Bugzilla installation.
</para>
<para>
<command>
bug/create/user-message.html.tmpl
</command>
:
This is a message that appears near the top of the bug reporting page.
By modifying this, you can tell your users how they should report
bugs.
</para>
<para>
<command>
bug/process/midair.html.tmpl
</command>
:
This is the page used if two people submit simultaneous changes to the
same bug. The second person to submit their changes will get this page
to tell them what the first person did, and ask if they wish to
overwrite those changes or go back and revisit the bug. The default
title and header on this page read "Mid-air collision detected!" If
you work in the aviation industry, or other environment where this
might be found offensive (yes, we have true stories of this happening)
you'll want to change this to something more appropriate for your
environment.
</para>
<para>
<command>
bug/create/create.html.tmpl
</command>
and
<command>
bug/create/comment.txt.tmpl
</command>
:
You may wish to get bug submitters to give certain bits of structured
information, each in a separate input widget, for which there is not a
field in the database. The bug entry system has been designed in an
extensible fashion to enable you to define arbitrary fields and widgets,
and have their values appear formatted in the initial
Description, rather than in database fields. An example of this
is the mozilla.org
<ulink
url=
"http://bugzilla.mozilla.org/enter_bug.cgi?format=guided"
>
guided
bug submission form
</ulink>
.
</para>
<para>
To make this work, create a custom template for
<filename>
enter_bug.cgi
</filename>
(the default template, on which you
could base it, is
<filename>
create.html.tmpl
</filename>
),
and either call it
<filename>
create.html.tmpl
</filename>
or use a format and
call it
<filename>
create-
<
formatname
>
.html.tmpl
</filename>
.
Put it in the
<filename
class=
"directory"
>
custom/bug/create
</filename>
directory. In it, add widgets for each piece of information you'd like
collected - such as a build number, or set of steps to reproduce.
</para>
<para>
Then, create a template like
<filename>
custom/bug/create/comment.txt.tmpl
</filename>
, also named
after your format if you are using one, which
references the form fields you have created. When a bug report is
submitted, the initial comment attached to the bug report will be
formatted according to the layout of this template.
</para>
<para>
For example, if your enter_bug template had a field
<programlisting>
<
input type="text" name="buildid" size="30"
>
</programlisting>
and then your comment.txt.tmpl had
<programlisting>
BuildID: [% form.buildid %]
</programlisting>
then
<programlisting>
BuildID: 20020303
</programlisting>
would appear in the initial checkin comment.
</para>
</section>
</section>
<section
id=
"cust-change-permissions"
>
<title>
Change Permission Customization
</title>
<warning>
<para>
This feature should be considered experimental; the Bugzilla code you
will be changing is not stable, and could change or move between
versions. Be aware that if you make modifications to it, you may have
to re-make them or port them if Bugzilla changes internally between
versions.
<para>
Upgrading is a one-way process. You should backup your database
and current Bugzilla directory before attempting the upgrade. If you wish
to revert to the old Bugzilla version for any reason, you will have to
restore from these backups.
</para>
</warning>
<para>
Companies often have rules about which employees, or classes of employees,
are allowed to change certain things in the bug system. For example,
only the bug's designated QA Contact may be allowed to VERIFY the bug.
Bugzilla has been
designed to make it easy for you to write your own custom rules to define
who is allowed to make what sorts of value transition.
</para>
<para>
For maximum flexibility, customizing this means editing Bugzilla's Perl
code. This gives the administrator complete control over exactly who is
allowed to do what. The relevant function is called
<filename>
CheckCanChangeField()
</filename>
,
and is found in
<filename>
process_bug.cgi
</filename>
in your
Bugzilla directory. If you open that file and grep for
"sub CheckCanChangeField", you'll find it.
</para>
<para>
This function has been carefully commented to allow you to see exactly
how it works, and give you an idea of how to make changes to it. Certain
marked sections should not be changed - these are the "plumbing" which
makes the rest of the function work. In between those sections, you'll
find snippets of code like:
<programlisting>
# Allow the owner to change anything.
if ($ownerid eq $whoid) {
return 1;
}
</programlisting>
It's fairly obvious what this piece of code does.
</para>
<para>
So, how does one go about changing this function? Well, simple changes
can be made just be removing pieces - for example, if you wanted to
prevent any user adding a comment to a bug, just remove the lines marked
"Allow anyone to change comments." And if you want the reporter to have
no special rights on bugs they have filed, just remove the entire section
which refers to him.
</para>
<para>
More complex customizations are not much harder. Basically, you add
a check in the right place in the function, i.e. after all the variables
you are using have been set up. So, don't look at $ownerid before
$ownerid has been obtained from the database. You can either add a
positive check, which returns 1 (allow) if certain conditions are true,
or a negative check, which returns 0 (deny.) E.g.:
<programlisting>
if ($field eq "qacontact") {
if (UserInGroup("quality_assurance")) {
return 1;
}
else {
return 0;
}
}
</programlisting>
This says that only users in the group "quality_assurance" can change
the QA Contact field of a bug. Getting more weird:
<programlisting>
if (($field eq "priority")
&&
($vars->{'user'}{'login'} =~ /.*\@example\.com$/))
{
if ($oldvalue eq "P1") {
return 1;
}
else {
return 0;
}
}
</programlisting>
This says that if the user is trying to change the priority field,
and their email address is @example.com, they can only do so if the
old value of the field was "P1". Not very useful, but illustrative.
</para>
<para>
For a list of possible field names, look in
<filename>
data/versioncache
</filename>
for the list called
<filename>
@::log_columns
</filename>
. If you need help writing custom
rules for your organization, ask in the newsgroup.
</para>
</section>
<section
id=
"upgrading"
>
<title>
Upgrading to New Releases
</title>
<para>
Upgrading Bugzilla is something we all want to do from time to time,
be it to get new features or pick up the latest security fix. How easy
...
...
@@ -1580,8 +910,8 @@ bash$ <command>./checksetup.pl</command>
revisions to go from the most recent revision to the new one. You could
also read the release notes and grab the patches attached to the
mentioned bug, but it is safer to use the released patch file as
sometimes patches get changed before they get checked in
(for minor
spelling fixes and the like). It is also theorec
tically possible to
sometimes patches get changed before they get checked in
.
It is also theore
tically possible to
scour the fixed bug list and pick and choose which patches to apply
from a point release, but this is not recommended either as what you'll
end up with is a hodge podge Bugzilla that isn't really any version.
...
...
@@ -1611,10 +941,6 @@ patching file globals.pl
</example>
</section>
<!-- Integrating Bugzilla with Third-Party Tools -->
&integration;
</chapter>
<!-- Keep this comment at the end of the file
...
...
docs/en/xml/conventions.xml
View file @
3e7d0c08
...
...
@@ -60,7 +60,7 @@
</row>
<row>
<entry>
File
N
ames
</entry>
<entry>
File
and directory n
ames
</entry>
<entry>
<filename>
filename
</filename>
...
...
@@ -68,14 +68,6 @@
</row>
<row>
<entry>
Directory Names
</entry>
<entry>
<filename
class=
"directory"
>
directory
</filename>
</entry>
</row>
<row>
<entry>
Commands to be typed
</entry>
<entry>
...
...
@@ -84,7 +76,7 @@
</row>
<row>
<entry>
Applications
N
ames
</entry>
<entry>
Applications
n
ames
</entry>
<entry>
<application>
application
</application>
...
...
@@ -119,7 +111,7 @@
</row>
<row>
<entry>
Environment
V
ariables
</entry>
<entry>
Environment
v
ariables
</entry>
<entry>
<envar>
VARIABLE
</envar>
...
...
@@ -127,14 +119,6 @@
</row>
<row>
<entry>
Emphasized word
</entry>
<entry>
<emphasis>
word
</emphasis>
</entry>
</row>
<row>
<entry>
Term found in the glossary
</entry>
<entry>
...
...
@@ -143,7 +127,7 @@
</row>
<row>
<entry>
Code
E
xample
</entry>
<entry>
Code
e
xample
</entry>
<entry>
<programlisting><sgmltag
class=
"starttag"
>
para
</sgmltag>
...
...
@@ -154,6 +138,13 @@ Beginning and end of paragraph
</tbody>
</tgroup>
</informaltable>
<para>
This documentation is maintained in DocBook 4.1.2 XML format.
Changes are best submitted as plain text or XML diffs, attached
to a bug filed in the
&bzg-bugs;
component.
</para>
</section>
<!-- Keep this comment at the end of the file
...
...
docs/en/xml/installation.xml
View file @
3e7d0c08
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> -->
<!-- $Id: installation.xml,v 1.5
5 2008/04/04 06:46:45 jocuri%softhome
.net Exp $ -->
<!-- $Id: installation.xml,v 1.5
6 2008/04/04 06:46:46 gerv%gerv
.net Exp $ -->
<chapter
id=
"installation"
>
<title>
Installation
</title>
...
...
@@ -40,6 +40,11 @@
with administrative access to install it for you.
</para>
<para>
You are strongly recommended to make a backup of your system
before installing Bugzilla and at regular intervals thereafter.
</para>
<para>
The listing below is a basic step-by-step list. More information
can be found in the sections below. Minimum versions will be
included in parenthesis where appropriate.
...
...
@@ -47,17 +52,13 @@
<procedure>
<step>
<para><link
linkend=
"install-mysql"
>
Install MySQL
</link>
(
&min-mysql-ver;
)
</para>
</step>
<step>
<para><link
linkend=
"install-perl"
>
Install Perl
</link>
(
&min-perl-ver;
)
</para>
</step>
<step>
<para><link
linkend=
"install-perlmodules"
>
Install Perl Modules
</link>
<para><link
linkend=
"install-mysql"
>
Install MySQL
</link>
(
&min-mysql-ver;
)
</para>
</step>
<step>
...
...
@@ -69,11 +70,28 @@
</para>
</step>
<step>
<para><link
linkend=
"install-perlmodules"
>
Install Perl Modules
</link>
</para>
</step>
<step>
<para><link
linkend=
"install-setupdatabase"
>
Setup the MySQL Database
</link>
</para>
</step>
</procedure>
<section
id=
"install-perl"
>
<title>
Perl
</title>
<para>
Any machine that doesn't have Perl on it is a sad machine indeed.
Perl can be got in source form from
<ulink
url=
"http://www.perl.com"
/>
.
There are also binary versions available for many platforms, most of which
are linked to from perl.com.
Although Bugzilla runs with perl
&min-perl-ver;
,
it's a good idea to be up to the very latest version
if you can when running Bugzilla. As of this writing, that is Perl
version
&newest-perl-ver;
.
</para>
</section>
<section
id=
"install-mysql"
>
<title>
MySQL
</title>
...
...
@@ -121,19 +139,106 @@ set-variable = max_allowed_packet=1M
also wish to utilize the
<option>
skip-networking
</option>
option as
mentioned in
<xref
linkend=
"security-mysql"
/>
for the added security.
</para>
<section
id=
"install-setupdatabase"
>
<title>
Configuring MySQL
</title>
<para>
This first thing you'll want to do is make sure you've given the
<quote>
root
</quote>
user a password as suggested in
<xref
linkend=
"security-mysql"
/>
. For clarity, these instructions will
assume that your MySQL user for Bugzilla will be
<quote>
bugs_user
</quote>
,
the database will be called
<quote>
bugs_db
</quote>
and the password for
the
<quote>
bugs_user
</quote>
user is
<quote>
bugs_password
</quote>
. You
should, of course, substitute the values you intend to use for your site.
</para>
<note>
<para>
Most people use
<quote>
bugs
</quote>
for both the user and
database name.
</para>
</note>
<para>
Next, we use an SQL
<command>
GRANT
</command>
command to create a
<quote>
bugs_user
</quote>
user, and grant sufficient permissions for checksetup.pl, which we'll
use later, to work its magic. This also restricts the
<quote>
bugs_user
</quote>
user to operations within a database called
<quote>
bugs_db
</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>
<screen>
<prompt>
mysql
>
</prompt>
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,
DROP,REFERENCES ON bugs_db.* TO bugs_user@localhost
IDENTIFIED BY 'bugs_password';
<prompt>
mysql
>
</prompt>
FLUSH PRIVILEGES;
</screen>
<note>
<para>
If you are using MySQL 4, the bugs user also needs to be granted
the
<computeroutput>
LOCK TABLES
</computeroutput>
and
<computeroutput>
CREATE TEMPORARY TABLES
</computeroutput>
permissions.
</para>
</note>
</section>
</section>
<section
id=
"install-
perl
"
>
<title>
Perl
</title>
<section
id=
"install-
webserver
"
>
<title>
HTTP Server
</title>
<para>
Any machine that doesn't have Perl on it is a sad machine indeed.
Perl can be got in source form from
<ulink
url=
"http://www.perl.com"
/>
.
There are also binary versions available for many platforms, most of which
are linked to from perl.com.
Although Bugzilla runs with perl
&min-perl-ver;
,
it's a good idea to be up to the very latest version
if you can when running Bugzilla. As of this writing, that is Perl
version
&newest-perl-ver;
.
</para>
<para>
You have freedom of choice here, pretty much any web server that
is capable of running
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts will work.
<xref
linkend=
"http"
/>
has more information about
configuring web servers to work with Bugzilla.
</para>
<note>
<para>
We strongly recommend Apache as the web server to use. The
Bugzilla Guide installation instructions, in general, assume you are
using Apache. If you have got Bugzilla working using another webserver,
please share your experiences with us by filing a bug in
&bzg-bugs;
.
</para>
</note>
</section>
<section
id=
"install-bzfiles"
>
<title>
Bugzilla
</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 in the main web space for your
web server or perhaps in
<filename>
/usr/local
</filename>
with a symbolic link in the web space that points to the Bugzilla
directory.
</para>
<tip>
<para>
If you symlink the bugzilla directory into your Apache's HTML
hierarchy, you may receive
<errorname>
Forbidden
</errorname>
errors unless you add the
<quote>
FollowSymLinks
</quote>
directive to the
<
Directory
>
entry for the HTML root
in httpd.conf.
</para>
</tip>
<para>
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>
<caution>
<para>
The default Bugzilla distribution is not designed to be placed
in a
<filename
class=
"directory"
>
cgi-bin
</filename>
directory (this
includes any directory which is configured using the
<option>
ScriptAlias
</option>
directive of Apache).
</para>
</caution>
</section>
<section
id=
"install-perlmodules"
>
...
...
@@ -177,7 +282,7 @@ set-variable = max_allowed_packet=1M
</para>
</callout>
<callout
arearefs=
"cpan-moduledir"
>
<para>
The process of untaring the module as defined in
<para>
The process of untar
r
ing the module as defined in
<xref
linkend=
"cpan-moduletar"
/>
will create the
<filename
class=
"directory"
>
<
module
>
</filename>
directory.
</para>
...
...
@@ -660,122 +765,14 @@ ReadLine support enabled
</section>
</section>
<section
id=
"install-webserver"
>
<title>
HTTP Server
</title>
<para>
You have freedom of choice here, pretty much any web server that
is capable of running
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts will work.
<xref
linkend=
"http"
/>
has more information about
configuring web servers to work with Bugzilla.
</para>
<note>
<para>
We strongly recommend Apache as the web server to use. The
Bugzilla Guide installation instructions, in general, assume you are
using Apache. If you have got Bugzilla working using another webserver,
please share your experiences with us by filing a bug in
&bzg-bugs;
.
</para>
</note>
</section>
<section
id=
"install-bzfiles"
>
<title>
Bugzilla
</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 in the main web space for your
web server or perhaps in
<filename>
/usr/local
</filename>
with a symbolic link in the web space that points to the Bugzilla
directory.
</para>
<tip>
<para>
If you symlink the bugzilla directory into your Apache's HTML
hierarchy, you may receive
<errorname>
Forbidden
</errorname>
errors unless you add the
<quote>
FollowSymLinks
</quote>
directive to the
<
Directory
>
entry for the HTML root
in httpd.conf.
</para>
</tip>
<para>
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>
<caution>
<para>
The default Bugzilla distribution is not designed to be placed
in a
<filename
class=
"directory"
>
cgi-bin
</filename>
directory (this
includes any directory which is configured using the
<option>
ScriptAlias
</option>
directive of Apache). This will probably
change as part of
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=44659"
>
bug
44659
</ulink>
.
</para>
</caution>
</section>
<section
id=
"install-setupdatabase"
>
<title>
Setting Up the MySQL Database
</title>
<para>
After you've gotten all the software installed and working you're
ready to start preparing the database for its life as the back end to
a high quality bug tracker.
</para>
<para>
This first thing you'll want to do is make sure you've given the
<quote>
root
</quote>
user a password as suggested in
<xref
linkend=
"security-mysql"
/>
. For clarity, these instructions will
assume that your MySQL user for Bugzilla will be
<quote>
bugs_user
</quote>
,
the database will be called
<quote>
bugs_db
</quote>
and the password for
the
<quote>
bugs_user
</quote>
user is
<quote>
bugs_password
</quote>
. You
should, of course, substitute the values you intend to use for your site.
</para>
<note>
<para>
Most people use
<quote>
bugs
</quote>
for both the user and
database name.
</para>
</note>
<para>
Next, we use an SQL
<command>
GRANT
</command>
command to create a
<quote>
bugs_user
</quote>
user, and grant sufficient permissions for checksetup.pl, which we'll
use later, to work its magic. This also restricts the
<quote>
bugs_user
</quote>
user to operations within a database called
<quote>
bugs_db
</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>
<screen>
<prompt>
mysql
>
</prompt>
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,
DROP,REFERENCES ON bugs_db.* TO bugs_user@localhost
IDENTIFIED BY 'bugs_password';
<prompt>
mysql
>
</prompt>
FLUSH PRIVILEGES;
</screen>
<note>
<para>
If you are using MySQL 4, the bugs user also needs to be granted
the
<computeroutput>
LOCK TABLES
</computeroutput>
and
<computeroutput>
CREATE TEMPORARY TABLES
</computeroutput>
permissions.
</para>
</note>
</section>
<section>
<title>
<filename>
checksetup.pl
</filename>
</title>
<para>
Next, run the magic checksetup.pl script. (Many thanks to
<ulink
url=
"mailto:holgerschurig@nikocity.de"
>
Holger Schurig
</ulink>
for writing this script!)
This script is designed to make sure your perl modules are the correct
<para>
Next, run the magic checksetup.pl script.
This is designed to make sure your perl modules are the correct
version and your MySQL database and other
configuration options are consistent with the Bugzilla CGI files.
It will make sure Bugzilla files and directories have reasonable
...
...
@@ -849,6 +846,149 @@ ReadLine support enabled
</section>
</section>
<section
id=
"http"
>
<title>
HTTP Server Configuration
</title>
<para>
The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
that can be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts
should be able to handle Bugzilla. No matter what web server you choose, but
especially if you choose something other than Apache, you should be sure to read
<xref
linkend=
"security-access"
/>
.
</para>
<para>
The plan for this section is to eventually document the specifics of how to lock
down permissions on individual web servers.
</para>
<section
id=
"http-apache"
>
<title>
Apache
<productname>
httpd
</productname></title>
<para>
You will have to make sure that Apache is properly
configured to run the Bugzilla CGI scripts. You also need to make sure
that the
<filename>
.htaccess
</filename>
files created by
<command>
./checksetup.pl
</command>
are allowed to override Apache's normal access
permissions or else important password information may be exposed to the
Internet.
</para>
<para>
You need to configure Apache to run .cgi files outside the
<filename
class=
"directory"
>
cgi-bin
</filename>
directory.
Open your
<filename>
httpd.conf
</filename>
file and make sure the
following line exists and is uncommented:
</para>
<programlisting>
AddHandler cgi-script .cgi
</programlisting>
<para>
To allow
<filename>
.htaccess
</filename>
files to override
permissions and .cgi files to run in the Bugzilla directory, make sure
the following two lines are in a
<computeroutput>
Directory
</computeroutput>
directive that applies to the Bugzilla directory on your system
(either the Bugzilla directory or one of its parents).
</para>
<programlisting>
Options +ExecCGI
AllowOverride Limit
</programlisting>
<para>
You should modify the
<
DirectoryIndex
>
parameter for
the Apache virtual host running your Bugzilla installation to
allow
<filename>
index.cgi
</filename>
as the index page for a
directory, as well as the usual
<filename>
index.html
</filename>
,
<filename>
index.htm
</filename>
, and so forth.
</para>
<note>
<para>
For more information on Apache and its directives, see the
glossary entry on
<xref
linkend=
"gloss-apache"
/>
.
</para>
</note>
</section>
<section
id=
"http-iis"
>
<title>
Microsoft
<productname>
Internet Information Services
</productname></title>
<para>
If you need, or for some reason even want, to use Microsoft's
<productname>
Internet Information Services
</productname>
or
<productname>
Personal Web Server
</productname>
you should be able
to. You will need to configure them to know how to run CGI scripts,
however. This is described in Microsoft Knowledge Base article
<ulink
url=
"http://support.microsoft.com/support/kb/articles/Q245/2/25.asp"
>
Q245225
</ulink>
for
<productname>
Internet Information Services
</productname>
and
<ulink
url=
"http://support.microsoft.com/support/kb/articles/Q231/9/98.asp"
>
Q231998
</ulink>
for
<productname>
Personal Web Server
</productname>
.
</para>
<para>
Also, and this can't be stressed enough, make sure that files such as
<filename>
localconfig
</filename>
and your
<filename
class=
"directory"
>
data
</filename>
directory are secured as described in
<xref
linkend=
"security-access"
/>
.
</para>
</section>
<section
id=
"http-aol"
>
<title>
AOL Server
</title>
<para>
Ben FrantzDale reported success using AOL Server with Bugzilla. He
reported his experience and what appears below is based on that.
</para>
<para>
AOL Server will have to be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts, please consult
the documentation that came with your server for more information on
how to do this.
</para>
<para>
Because AOL Server doesn't support
<filename>
.htaccess
</filename>
files, you'll have to create a
<glossterm
linkend=
"gloss-tcl"
>
TCL
</glossterm>
script. You should create an
<filename>
aolserver/modules/tcl/filter.tcl
</filename>
file (the filename shouldn't matter) with the following contents (change
<computeroutput>
/bugzilla/
</computeroutput>
to the web-based path to
your Bugzilla installation):
</para>
<programlisting>
ns_register_filter preauth GET /bugzilla/localconfig filter_deny
ns_register_filter preauth GET /bugzilla/localconfig~ filter_deny
ns_register_filter preauth GET /bugzilla/\#localconfig\# filter_deny
ns_register_filter preauth GET /bugzilla/*.pl filter_deny
ns_register_filter preauth GET /bugzilla/syncshadowdb filter_deny
ns_register_filter preauth GET /bugzilla/runtests.sh filter_deny
ns_register_filter preauth GET /bugzilla/data/* filter_deny
ns_register_filter preauth GET /bugzilla/template/* filter_deny
proc filter_deny { why } {
ns_log Notice "filter_deny"
return "filter_return"
}
</programlisting>
<warning>
<para>
This probably doesn't account for all possible editor backup
files so you may wish to add some additional variations of
<filename>
localconfig
</filename>
. For more information, see
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=186383"
>
bug 186383
</ulink>
or
<ulink
url=
"http://online.securityfocus.com/bid/6501"
>
Bugtraq ID 6501
</ulink>
.
</para>
</warning>
<note>
<para>
If you are using webdot from research.att.com (the default
configuration for the
<option>
webdotbase
</option>
paramater), you
will need to allow access to
<filename>
data/webdot/*.dot
</filename>
for the reasearch.att.com machine.
</para>
<para>
If you are using a local installation of
<ulink
url=
"http://www.graphviz.org"
>
GraphViz
</ulink>
, you will need to allow
everybody to access
<filename>
*.png
</filename>
,
<filename>
*.gif
</filename>
,
<filename>
*.jpg
</filename>
, and
<filename>
*.map
</filename>
in the
<filename
class=
"directory"
>
data/webdot
</filename>
directory.
</para>
</note>
</section>
</section>
<section
id=
"extraconfig"
>
<title>
Optional Additional Configuration
</title>
...
...
@@ -961,20 +1101,9 @@ man 5 crontab
<section
id=
"bzldap"
>
<title>
LDAP Authentication
</title>
<note>
<para>
LDAP authentication has been rewritten for the 2.18 release of
Bugzilla. It no longer requires the Mozilla::LDAP module and now uses
Net::LDAP instead. This rewrite was part of a larger landing that
allowed for additional authentication schemes to be easily added
(
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=180642"
>
bug
180642
</ulink>
).
</para>
<![%bz-devel;[
<para>
This patch originally landed in 21-Mar-2003 and was included
in the 2.17.4 development release.
</para>
]]>
</note>
<para>
LDAP authentication is a module for Bugzilla's plugin
authentication architecture.
</para>
<para>
The existing authentication
...
...
@@ -1093,56 +1222,31 @@ man 5 crontab
<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
<para>
It is possible for a Bugzilla attachment to contain malicious
Javascript
code, which would be executed in the domain of your Bugzilla, thereby
making it possible for the attacker to e.g. steal your login cookies.
Due to internationalization concerns, we are unable to
incorporate by default the code changes necessary to fulfill the CERT
advisory requirements mentioned in
<ulink
url=
"http://www.cert.org/tech_tips/malicious_code_mitigation.html/#3"
/>
.
Making the change below will fix the problem if your installation is for
an English speaking audience.
If your installation is for an English speaking audience only, making the
change below will prevent this problem.
</para>
<para>
Telling Bugzilla to output a charset as part of the HTTP header is
much easier in version 2.18 and higher
<![%bz-devel;[ (including any cvs
pull after 4-May-2003 and development release after 2.17.5)]]>
than it was
in previous versions. Simply locate the following line in
<para>
Simply locate the following line in
<filename>
Bugzilla/CGI.pm
</filename>
:
<programlisting>
# Make sure that we don't send any charset headers
$self->charset('');
</programlisting>
and change it to:
<programlisting>
# Send all data using the ISO-8859-1 charset
$self->charset('ISO-8859-1');
</programlisting>
</para>
<note>
<para>
Using
<
meta
>
tags to set the charset is not
recommended, as there's a bug in Netscape 4.x which causes pages
marked up in this way to load twice. See
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=126266"
>
bug 126266
</ulink>
for more information including progress toward making
bugzilla charset aware by default.
</para>
</note>
</section>
<section
id=
"directoryindex"
xreflabel=
"Modifying the Apache
DirectoryIndex parameter to use index.cgi"
>
<title>
<filename>
directoryindex
</filename>
for the Bugzilla default page.
</title>
<para>
You should modify the
<
DirectoryIndex
>
parameter for
the Apache virtual host running your Bugzilla installation to
allow
<filename>
index.cgi
</filename>
as the index page for a
directory, as well as the usual
<filename>
index.html
</filename>
,
<filename>
index.htm
</filename>
, and so forth.
</para>
</section>
<section
id=
"mod_perl"
xreflabel=
"Bugzilla and mod_perl"
>
<title>
Bugzilla and
<filename>
mod_perl
</filename>
...
...
@@ -1199,7 +1303,7 @@ man 5 crontab
<section
id=
"os-win32"
>
<title>
Microsoft Windows
</title>
<para>
Making Bugzilla work on windows is still a
very
painful processes.
<para>
Making Bugzilla work on windows is still a painful processes.
The Bugzilla Team is working to make it easier, but that goal is not
considered a top priority. If you wish to run Bugzilla, we still
recommend doing so on a Unix based system such as GNU/Linux. As of this
...
...
@@ -1259,12 +1363,9 @@ C:\perl> <command>ppm <module name></command>
<section
id=
"win32-code-changes"
>
<title>
Code changes required to run on win32
</title>
<para>
Unfortunately, Bugzilla still doesn't run "out of the box" on
Windows. There is work in progress to make this easier, but until that
happens code will have to be modified. This section is an attempt to
list the required changes. It is an attempt to be all inclusive, but
there may be other changes required. If you find something is missing,
please file a bug in
&bzg-bugs;
.
<para>
As Bugzilla still doesn't run "out of the box" on
Windows, code has to be modified. This section is an attempt to
list the required changes.
</para>
<section
id=
"win32-code-checksetup"
>
...
...
@@ -1297,8 +1398,8 @@ my $webservergid = '8'
<para>
To make bug e-mail work on Win32 (until
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=84876"
>
bug
84876
</ulink>
lands), the
simplest way is to have
Net::SMTP installed and change this (in
<filename>
Bugzilla/BugMail.pm
</filename>
)
:
</para>
simplest way is to have
the Net::SMTP Perl module installed and
change this
:
</para>
<programlisting>
open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
...
...
@@ -1452,217 +1553,270 @@ $smtp->quit;
</section>
<section
id=
"http"
>
<title>
HTTP Server Configuration
</title>
<para>
The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
that can be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts
should be able to handle Bugzilla. No matter what web server you choose, but
especially if you choose something other than Apache, you should be sure to read
<xref
linkend=
"security-access"
/>
.
</para>
<para>
The plan for this section is to eventually document the specifics of how to lock
down permissions on individual web servers.
</para>
<section
id=
"http-apache"
>
<title>
Apache
<productname>
httpd
</productname></title>
<section
id=
"security"
>
<title>
Bugzilla Security
</title>
<para>
As mentioned above, the Bugzilla Team recommends Apache for use
with Bugzilla. You will have to make sure that Apache is properly
configured to run the Bugzilla CGI scripts. You also need to make sure
that the
<filename>
.htaccess
</filename>
files created by
<command>
./checksetup.pl
</command>
(shown in
<xref
linkend=
"http-apache-htaccess"
/>
for the curious) are allowed to override Apache's normal access
permissions or else important password information may be exposed to the
Internet.
<warning>
<para>
Poorly-configured MySQL and Bugzilla installations have
given attackers full access to systems in the past. Please take these
guidelines seriously, even for Bugzilla machines hidden away behind
your firewall. 80% of all computer trespassers are insiders, not
anonymous crackers.
</para>
<para>
This is not meant to be a comprehensive list of every possible
security issue pertaining to the software mentioned in this section.
There is
no subsitute for reading the information written by the authors of any
software running on your system.
</para>
</warning>
<section
id=
"security-networking"
>
<title>
TCP/IP Ports
</title>
<!-- TODO: Make this make sense (TCP/IP) -->
<para>
TCP/IP defines 65,000 some ports for trafic. Of those, Bugzilla
only needs 1, or 2 if you need to use features that require e-mail such
as bug moving or the e-mail interface from contrib. You should audit
your server and make sure that you aren't listening on any ports you
don't need to be. You may also wish to use some kind of firewall
software to be sure that trafic can only be recieved on ports you
specify.
</para>
</section>
<para>
Many Apache installations are not configured to run scripts
anywhere but in the
<filename
class=
"directory"
>
cgi-bin
</filename>
directory; however, we recommend that Bugzilla not be installed in the
<filename
class=
"directory"
>
cgi-bin
</filename>
, otherwise the static
files such as images and
<xref
linkend=
"gloss-javascript"
/>
will not work correctly. To allow scripts to run in the normal
web space, the following changes should be made to your
<filename>
httpd.conf
</filename>
file.
</para>
<para>
To allow files with a .cgi extension to be run, make sure the
following line exists and is uncommented:
</para>
<programlisting>
AddHandler cgi-script .cgi
</programlisting>
<para>
To allow
<filename>
.htaccess
</filename>
files to override
permissions and .cgi files to run in the Bugzilla directory, make sure
the following two lines are in a
<computeroutput>
Directory
</computeroutput>
directive that applies to the Bugzilla directory on your system
(either the Bugzilla directory or one of its parents).
</para>
<programlisting>
Options +ExecCGI
AllowOverride Limit
</programlisting>
<note>
<para>
For more information on Apache and its directives, see the
glossary entry on
<xref
linkend=
"gloss-apache"
/>
.
</para>
</note>
<section
id=
"security-mysql"
>
<title>
MySQL
</title>
<example
id=
"http-apache-htaccess"
>
<title><filename>
.htaccess
</filename>
files for Apache
</title>
<para><filename>
$BUGZILLA_HOME/.htaccess
</filename>
<programlisting>
<![CDATA[
# don't allow people to retrieve non-cgi executable files or our private data
<FilesMatch ^(.*\.pl|.*localconfig.*|runtests.sh)$>
deny from all
</FilesMatch>
<FilesMatch
^(localconfig.js|localconfig.rdf)$
>
allow from all
</FilesMatch>
]]>
</programlisting>
</para>
<para>
MySQL ships by default with many settings that should be changed.
By defaults it allows anybody to connect from localhost without a
password and have full administrative capabilities. It also defaults to
not have a root password (this is
<emphasis>
not
</emphasis>
the same as
the system root). Also, many installations default to running
<application>
mysqld
</application>
as the system root.
</para>
<para><filename>
$BUGZILLA_HOME/data/.htaccess
</filename>
<programlisting>
<![CDATA[
# nothing in this directory is retrievable unless overriden by an .htaccess
# in a subdirectory; the only exception is duplicates.rdf, which is used by
# duplicates.xul and must be loadable over the web
deny from all
<Files duplicates.rdf>
allow from all
</Files>
]]>
</programlisting>
<orderedlist>
<listitem>
<para>
Consult the documentation that came with your system for
information on making
<application>
mysqld
</application>
run as an
unprivleged user.
</para>
</listitem>
<para><filename>
$BUGZILLA_HOME/data/webdot
</filename>
<programlisting>
<![CDATA[
# Restrict access to .dot files to the public webdot server at research.att.com
# if research.att.com ever changed their IP, or if you use a different
# webdot server, you'll need to edit this
<FilesMatch ^[0-9]+\.dot$>
Allow from 192.20.225.10
Deny from all
</FilesMatch>
# Allow access by a local copy of 'dot' to .png, .gif, .jpg, and
# .map files
<FilesMatch
^[0-9]+\.(png|gif|jpg|map)$
>
Allow from all
</FilesMatch>
# And no directory listings, either.
Deny from all
]]>
</programlisting>
<listitem>
<para>
You should also be sure to disable the anonymous user account
and set a password for the root user. This is accomplished using the
following commands:
</para>
<para><filename>
$BUGZILLA_HOME/Bugzilla/.htaccess
</filename>
<programlisting>
# nothing in this directory is retrievable unless overriden by an .htaccess
# in a subdirectory
deny from all
<prompt>
bash$
</prompt>
mysql mysql
<prompt>
mysql
>
</prompt>
DELETE FROM user WHERE user = '';
<prompt>
mysql
>
</prompt>
UPDATE user SET password = password('
<replaceable>
new_password
</replaceable>
') WHERE user = 'root';
<prompt>
mysql
>
</prompt>
FLUSH PRIVILEGES;
</programlisting>
<para>
From this point forward you will need to use
<command>
mysql -u root -p
</command>
and enter
<replaceable>
new_password
</replaceable>
when prompted when using the
mysql client.
</para>
</listitem>
<para><filename>
$BUGZILLA_HOME/template/.htaccess
</filename>
<listitem>
<para>
If you run MySQL on the same machine as your httpd server, you
should consider disabling networking from within MySQL by adding
the following to your
<filename>
/etc/my.conf
</filename>
:
</para>
<programlisting>
# nothing in this directory is retrievable unless overriden by an .htaccess
#
in a subdirectory
deny from all
[myslqd]
#
Prevent network access to MySQL.
skip-networking
</programlisting>
</listitem>
<listitem>
<para>
You may also consider running MySQL, or even all of Bugzilla
in a chroot jail; however, instructions for doing that are beyond
the scope of this document.
</para>
</listitem>
</example
>
</orderedlist
>
</section>
<section
id=
"http-iis"
>
<title>
Microsoft
<productname>
Internet Information Services
</productname></title>
<para>
If you need, or for some reason even want, to use Microsoft's
<productname>
Internet Information Services
</productname>
or
<productname>
Personal Web Server
</productname>
you should be able
to. You will need to configure them to know how to run CGI scripts,
however. This is described in Microsoft Knowledge Base article
<ulink
url=
"http://support.microsoft.com/support/kb/articles/Q245/2/25.asp"
>
Q245225
</ulink>
for
<productname>
Internet Information Services
</productname>
and
<ulink
url=
"http://support.microsoft.com/support/kb/articles/Q231/9/98.asp"
>
Q231998
</ulink>
for
<productname>
Personal Web Server
</productname>
.
<section
id=
"security-daemon"
>
<title>
Daemon Accounts
</title>
<para>
Many daemons, such as Apache's httpd and MySQL's mysqld default to
running as either
<quote>
root
</quote>
or
<quote>
nobody
</quote>
. Running
as
<quote>
root
</quote>
introduces obvious security problems, but the
problems introduced by running everything as
<quote>
nobody
</quote>
may
not be so obvious. Basically, if you're running every daemon as
<quote>
nobody
</quote>
and one of them gets compromised, they all get
compromised. For this reason it is recommended that you create a user
account for each daemon.
</para>
<para>
Also, and this can't be stressed enough, make sure that files such as
<filename>
localconfig
</filename>
and your
<filename
class=
"directory"
>
data
</filename>
directory are secured as described in
<xref
linkend=
"security-access"
/>
.
</para>
<note>
<para>
You will need to set the
<varname>
webservergroup
</varname>
to
the group you created for your webserver to run as in
<filename>
localconfig
</filename>
. This will allow
<command>
./checksetup.pl
</command>
to better adjust the file
permissions on your Bugzilla install so as to not require making
anything world-writable.
</para>
</note>
</section>
<section
id=
"
http-aol
"
>
<title>
AOL Server
</title>
<section
id=
"
security-access
"
>
<title>
Web Server Access Controls
</title>
<para>
Ben FrantzDale reported success using AOL Server with Bugzilla. He
reported his experience and what appears below is based on that.
<para>
There are many files that are placed in the Bugzilla directory
area that should not be accessable from the web. Because of the way
Bugzilla is currently laid out, the list of what should and should
not be accessible is rather complicated.
</para>
<para>
AOL Server will have to be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts, please consult
the documentation that came with your server for more information on
how to do this.
<para>
Users of Apache don't need to worry about this, however, because
Bugzilla ships with .htaccess files which restrict access to all the
sensitive files in this section. Users of other webservers, read on.
</para>
<para>
Because AOL Server doesn't support
<filename>
.htaccess
</filename>
files, you'll have to create a
<glossterm
linkend=
"gloss-tcl"
>
TCL
</glossterm>
script. You should create an
<filename>
aolserver/modules/tcl/filter.tcl
</filename>
file (the filename shouldn't matter) with the following contents (change
<computeroutput>
/bugzilla/
</computeroutput>
to the web-based path to
your Bugzilla installation):
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
In the main Bugzilla directory, you should:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block:
<simplelist
type=
"inline"
>
<member><filename>
*.pl
</filename></member>
<member><filename>
*localconfig*
</filename></member>
<member><filename>
runtests.sh
</filename></member>
</simplelist>
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
localconfig.js
</filename></member>
<member><filename>
localconfig.rdf
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem>
<programlisting
>
ns_register_filter preauth GET /bugzilla/localconfig filter_deny
ns_register_filter preauth GET /bugzilla/localconfig~ filter_deny
ns_register_filter preauth GET /bugzilla/\#localconfig\# filter_deny
ns_register_filter preauth GET /bugzilla/*.pl filter_deny
ns_register_filter preauth GET /bugzilla/syncshadowdb filter_deny
ns_register_filter preauth GET /bugzilla/runtests.sh filter_deny
ns_register_filter preauth GET /bugzilla/data/* filter_deny
ns_register_filter preauth GET /bugzilla/template/* filter_deny
proc filter_deny { why } {
ns_log Notice "filter_deny"
return "filter_return"
}
</programlisting
>
<listitem
>
<para>
In
<filename
class=
"directory"
>
data
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
duplicates.rdf
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem
>
<warning>
<para>
This probably doesn't account for all possible editor backup
files so you may wish to add some additional variations of
<filename>
localconfig
</filename>
. For more information, see
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=186383"
>
bug 186383
</ulink>
or
<ulink
url=
"http://online.securityfocus.com/bid/6501"
>
Bugtraq ID 6501
</ulink>
.
</para>
</warning>
<listitem>
<para>
In
<filename
class=
"directory"
>
data/webdot
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
If you use a remote webdot server:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow
<simplelist
type=
"inline"
>
<member><filename>
*.dot
</filename></member>
</simplelist>
only for the remote webdot server
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Otherwise, if you use a local GraphViz:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
*.png
</filename></member>
<member><filename>
*.gif
</filename></member>
<member><filename>
*.jpg
</filename></member>
<member><filename>
*.map
</filename></member>
</simplelist>
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
And if you don't use any dot:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
<note>
<para>
If you are using webdot from research.att.com (the default
configuration for the
<option>
webdotbase
</option>
paramater), you
will need to allow access to
<filename>
data/webdot/*.dot
</filename>
for the reasearch.att.com machine.
<listitem>
<para>
In
<filename
class=
"directory"
>
Bugzilla
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
In
<filename
class=
"directory"
>
template
</filename>
:
</para>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<para>
You should test to make sure that the files mentioned above are
not accessible from the Internet, especially your
<filename>
localconfig
</filename>
file which contains your database
password. To test, simply point your web browser at the file; for
example, to test mozilla.org's installation, we'd try to access
<ulink
url=
"http://bugzilla.mozilla.org/localconfig"
/>
. You should
get a
<errorcode>
403
</errorcode>
<errorname>
Forbidden
</errorname>
error.
</para>
<caution>
<para>
Not following the instructions in this section, including
testing, may result in sensitive information being globally
accessible.
</para>
<para>
If you are using a local installation of
<ulink
url=
"http://www.graphviz.org"
>
GraphViz
</ulink>
, you will need to allow
everybody to access
<filename>
*.png
</filename>
,
<filename>
*.gif
</filename>
,
<filename>
*.jpg
</filename>
, and
<filename>
*.map
</filename>
in the
<filename
class=
"directory"
>
data/webdot
</filename>
directory.
</caution>
<tip>
<para>
You should check
<xref
linkend=
"http"
/>
to see if instructions
have been included for your web server. You should also compare those
instructions with this list to make sure everything is properly
accounted for.
</para>
</note>
</tip>
</section>
</section>
<section
id=
"troubleshooting"
>
...
...
docs/en/xml/integration.xml
View file @
3e7d0c08
...
...
@@ -70,7 +70,12 @@
xreflabel=
"Tinderbox, the Mozilla automated build management system"
>
<title>
Tinderbox/Tinderbox2
</title>
<para>
We need Tinderbox integration information.
</para>
<para>
Tinderbox is a continuous-build system which can integrate with
Bugzilla - see
<ulink
url=
"http://www.mozilla.org/projects/tinderbox"
/>
for details
of Tinderbox, and
<ulink
url=
"http://tinderbox.mozilla.org/showbuilds.cgi"
/>
to see it
in action.
</para>
</section>
</section>
...
...
docs/en/xml/introduction.xml
View file @
3e7d0c08
<chapter
id=
"introduction"
>
<title>
Introduction
</title>
<section
id=
"what
is
"
>
<section
id=
"what
-is-bugzilla
"
>
<title>
What is Bugzilla?
</title>
<para>
Bugzilla is a bug- or issue-tracking system. Bug-tracking
systems allow individual or groups of developers effectively to keep track
of outstanding problems with their product.
Bugzilla was originally
written by Terry Weissman in a programming language called TCL, to
replace a rudimentary bug-tracking database used internally by Netscape
Communications. Terry later ported Bugzilla to Perl from TCL, and in Perl
it remains to this day. Most commercial defect-tracking software vendors
at the time charged enormous licensing fees, and Bugzilla quickly became
a favorite of the open-source crowd (with its genesis in the open-source
browser project, Mozilla). It is now the de-facto standard
defect-tracking system against which all others are measured.
of outstanding problems with their products.
</para>
<para><emphasis>
Do we need more here?
</emphasis></para>
</section>
<section
id=
"why-tracking"
>
<title>
Why use a bug-tracking system?
</title>
<para>
For many years, defect-tracking software was principally
the domain of large software development houses. Most smaller shops
simply relied on
shared lists and email to monitor the status of defects. This procedure
was error-prone and tended to cause those bugs judged least significant by
developers to be dropped or ignored.
</para>
<para>
Integrated
defect-tracking systems reduce downtime, increase productivity, and raise
customer satisfaction with their systems. Along with full disclosure, an
open bug-tracker allows you to keep in touch with your 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 method for accounting for unusual system or software
issues.
</para>
</section>
<section
id=
"why-bugzilla"
>
<title>
Why use Bugzilla?
</title>
<para>
Bugzilla boasts many advanced features. These include:
<itemizedlist>
...
...
@@ -71,34 +92,7 @@
</listitem>
</itemizedlist>
</para>
</section>
<section
id=
"why"
>
<title>
Why Should We Use Bugzilla?
</title>
<para>
For many years, defect-tracking software has remained principally
the domain of large software development houses. Even then, most shops
never bothered with bug-tracking software, and instead simply relied on
shared lists and email to monitor the status of defects. This procedure
is error-prone and tends to cause those bugs judged least significant by
developers to be dropped or ignored.
</para>
<para>
These days, many companies are finding that integrated
defect-tracking systems reduce downtime, increase productivity, and raise
customer satisfaction with their systems. Along with full disclosure, an
open bug-tracker allows manufacturers to keep in touch with their clients
and resellers, to communicate about problems effectively throughout the
data management chain. Many corporations have also discovered that
defect-tracking helps reduce costs by providing IT support
accountability, telephone support knowledge bases, and a common,
well-understood system for accounting for unusual system or software
issues.
</para>
<para>
But why should
<emphasis>
you
</emphasis>
use Bugzilla?
</para>
<para>
Bugzilla is very adaptable to various situations. Known uses
currently include IT support queues, Systems Administration deployment
management, chip design and development problem tracking (both
...
...
@@ -110,20 +104,6 @@
<ulink
url=
"http://www.perforce.com"
>
Perforce SCM
</ulink>
, 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
<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 follow the discussion trail
that led to critical decisions.
</para>
<para>
Ultimately, Bugzilla puts the power in your hands to improve your
value to your employer or business while providing a usable framework for
your natural attention to detail and knowledge store to flourish.
</para>
</section>
</chapter>
...
...
docs/en/xml/patches.xml
View file @
3e7d0c08
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<appendix
id=
"patches"
xreflabel=
"Useful Patches and Utilities for Bugzilla"
>
<title>
Useful Patches and Utilities for Bugzilla
</title>
<title>
Contrib
</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.
Please refer to the mod_rewrite documentation at
<ulink
url=
"http://www.apache.org"
/>
.
</para>
</listitem>
</orderedlist>
</section>
<para>
There are a number of unofficial Bugzilla add-ons in the
<filename
class=
"directory"
>
$BUGZILLA_ROOT/contrib/
</filename>
directory. This section documents them.
</para>
<section
id=
"cmdline"
>
<title>
Command-line
Bugzilla Queries
</title>
<title>
Command-line
Search Interface
</title>
<para>
There are a suite of Unix utilities for
query
ing Bugzilla from the
<para>
There are a suite of Unix utilities for
search
ing Bugzilla from the
command line. They live in the
<filename
class=
"directory"
>
contrib/cmdline
</filename>
directory. However, they
...
...
docs/en/xml/using.xml
View file @
3e7d0c08
...
...
@@ -3,376 +3,461 @@
<chapter
id=
"using"
>
<title>
Using Bugzilla
</title>
<section
id=
"how"
>
<title>
How do I use Bugzilla?
</title>
<para>
This section contains information for end-users of Bugzilla.
There is a Bugzilla test installation, called
<ulink
url=
"http://landfill.bugzilla.org/"
>
Landfill
</ulink>
,
which you are welcome to play with (if it's up.)
However, it does not necessarily
have all Bugzilla features enabled, and often runs cutting-edge versions
of Bugzilla for testing, so some things may work slightly differently
than mentioned here.
</para>
<section
id=
"myaccount"
>
<title>
Create a Bugzilla Account
</title>
<para>
If you want to use Bugzilla, first you need to create an account.
Consult with the administrator responsible for your installation of
Bugzilla for the URL you should use to access it. If you're
test-driving Bugzilla, use this URL:
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/"
/>
.
</para>
<para>
This section contains information for end-users of Bugzilla.
There is a Bugzilla test installation, called
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/"
>
Landfill
</ulink>
,
which you are welcome to play with (if it's up.)
However, it does not necessarily
have all Bugzilla features enabled, and runs an up-to-the-minute version,
so some things may not quite work as this document describes.
</para>
<section
id=
"myaccount"
>
<title>
Create a Bugzilla Account
</title>
<para>
If you want to use Bugzilla, first you need to create an account.
Consult with the administrator responsible for your installation of
Bugzilla for the URL you should use to access it. If you're
test-driving Bugzilla, use this URL:
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/"
/>
.
</para>
<orderedlist>
<listitem>
<para>
Click the
<quote>
Open a new Bugzilla account
</quote>
link, enter your email address and, optionally, your name in the
spaces provided, then click
<quote>
Create Account
</quote>
.
</para>
</listitem>
<listitem>
<para>
Within moments, you should receive an email to the address
you provided, which contains your login name (generally the
same as the email address), and a password.
This password is randomly generated, but can be
changed to something more memorable.
</para>
</listitem>
<listitem>
<para>
Click the
<quote>
Log In
</quote>
link in the footer at the bottom of the page in your browser,
enter your email address and password into the spaces provided, and
click
<quote>
Login
</quote>
.
</para>
</listitem>
</orderedlist>
<para>
You are now logged in. Bugzilla uses cookies to remember you are
logged in so, unless you have cookies disabled or your IP address changes,
you should not have to log in again.
</para>
</section>
<orderedlist>
<listitem>
<para>
Click the
<quote>
Open a new Bugzilla account
</quote>
link, enter your email address and, optionally, your name in the
spaces provided, then click
<quote>
Create Account
</quote>
.
</para>
</listitem>
<listitem>
<para>
Within moments, you should receive an email to the address
you provided above, which contains your login name (generally the
same as the email address), and a password you can use to access
your account. This password is randomly generated, and can be
changed to something more memorable.
</para>
</listitem>
<listitem>
<para>
Click the
<quote>
Log In
</quote>
link in the yellow area at the bottom of the page in your browser,
enter your email address and password into the spaces provided, and
click
<quote>
Login
</quote>
.
</para>
</listitem>
</orderedlist>
<para>
You are now logged in. Bugzilla uses cookies for authentication
so, unless your IP address changes, you should not have to log in
again.
</para>
</section>
<section
id=
"bug_page"
>
<title>
Anatomy of a Bug
</title>
<para>
The core of Bugzilla is the screen which displays a particular
bug. It's a good place to explain some Bugzilla concepts.
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1"
>
Bug 1 on Landfill
</ulink>
is a good example. Note that the labels for most fields are hyperlinks;
clicking them will take you to context-sensitive help on that
particular field. Fields marked * may not be present on every
installation of Bugzilla.
</para>
<orderedlist>
<listitem>
<para>
<emphasis>
Product and Component
</emphasis>
:
Bugs are divided up by Product and Component, with a Product
having one or more Components in it. For example,
bugzilla.mozilla.org's "Bugzilla" Product is composed of several
Components:
<simplelist>
<member>
<emphasis>
Administration:
</emphasis>
Administration of a Bugzilla installation.
</member>
<section
id=
"bug_page"
>
<title>
Anatomy of a Bug
</title>
<para>
The core of Bugzilla is the screen which displays a particular
bug. It's a good place to explain some Bugzilla concepts.
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1"
>
Bug 1 on Landfill
</ulink>
is a good example. Note that the labels for most fields are hyperlinks;
clicking them will take you to context-sensitive help on that
particular field. Fields marked * may not be present on every
installation of Bugzilla.
</para>
<orderedlist>
<listitem>
<para>
<emphasis>
Product and Component
</emphasis>
:
Bugs are divided up by Product and Component, with a Product
having one or more Components in it. For example,
bugzilla.mozilla.org's "Bugzilla" Product is composed of several
Components:
<simplelist>
<member>
<emphasis>
Administration:
</emphasis>
Administration of a Bugzilla installation.
</member>
<member>
<emphasis>
Bugzilla-General:
</emphasis>
Anything that doesn't fit in the other components, or spans
multiple components.
</member>
<member>
<emphasis>
Creating/Changing Bugs:
</emphasis>
Creating, changing, and viewing bugs.
</member>
<member>
<emphasis>
Documentation:
</emphasis>
The Bugzilla documentation, including The Bugzilla Guide.
</member>
<member>
<emphasis>
Email:
</emphasis>
Anything to do with email sent by Bugzilla.
</member>
<member>
<emphasis>
Installation:
</emphasis>
The installation process of Bugzilla.
</member>
<member>
<emphasis>
Query/Buglist:
</emphasis>
Anything to do with searching for bugs and viewing the
buglists.
</member>
<member>
<emphasis>
Reporting/Charting:
</emphasis>
Getting reports from Bugzilla.
</member>
<member>
<emphasis>
User Accounts:
</emphasis>
Anything about managing a user account from the user's perspective.
Saved queries, creating accounts, changing passwords, logging in,
etc.
</member>
<member>
<emphasis>
User Interface:
</emphasis>
General issues having to do with the user interface cosmetics (not
functionality) including cosmetic issues, HTML templates,
etc.
</member>
</simplelist>
</para>
</listitem>
<listitem>
<para>
<emphasis>
Status and Resolution:
</emphasis>
These define exactly what state the bug is in - from not even
being confirmed as a bug, through to being fixed and the fix
confirmed by Quality Assurance. The different possible values for
Status and Resolution on your installation should be documented in the
context-sensitive help for those items.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Assigned To:
</emphasis>
The person responsible for fixing the bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*URL:
</emphasis>
A URL associated with the bug, if any.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Summary:
</emphasis>
A one-sentence summary of the problem.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Status Whiteboard:
</emphasis>
(a.k.a. Whiteboard) A free-form text area for adding short notes
and tags to a bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Keywords:
</emphasis>
The administrator can define keywords which you can use to tag and
categorise bugs - e.g. The Mozilla Project has keywords like crash
and regression.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Platform and OS:
</emphasis>
These indicate the computing environment where the bug was
found.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Version:
</emphasis>
The "Version" field is usually used for versions of a product which
have been released, and is set to indicate which versions of a
Component have the particular problem the bug report is
about.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Priority:
</emphasis>
The bug assignee uses this field to prioritise his or her bugs.
It's a good idea not to change this on other people's bugs.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Severity:
</emphasis>
This indicates how severe the problem is - from blocker
("application unusable") to trivial ("minor cosmetic issue"). You
can also use this field to indicate whether a bug is an enhancement
request.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Target:
</emphasis>
(a.k.a. Target Milestone) A future version by which the bug is to
be fixed. e.g. The Bugzilla Project's milestones for future
Bugzilla versions are 2.18, 2.20, 3.0, etc. Milestones are not
restricted to numbers, thought - you can use any text strings, such
as dates.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Reporter:
</emphasis>
The person who filed the bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
CC list:
</emphasis>
A list of people who get mail when the bug changes.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Attachments:
</emphasis>
You can attach files (e.g. testcases or patches) to bugs. If there
are any attachments, they are listed in this section.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Dependencies:
</emphasis>
If this bug cannot be fixed unless other bugs are fixed (depends
on), or this bug stops other bugs being fixed (blocks), their
numbers are recorded here.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Votes:
</emphasis>
Whether this bug has any votes.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Additional Comments:
</emphasis>
You can add your two cents to the bug discussion here, if you have
something worthwhile to say.
</para>
</listitem>
</orderedlist>
</section>
<member>
<emphasis>
Bugzilla-General:
</emphasis>
Anything that doesn't fit in the other components, or spans
multiple components.
</member>
<section
id=
"query"
>
<title>
Searching for Bugs
</title>
<member>
<emphasis>
Creating/Changing Bugs:
</emphasis>
Creating, changing, and viewing bugs.
</member>
<para>
The Bugzilla Search page is is the interface where you can find
any bug report, comment, or patch currently in the Bugzilla system. You
can play with it here:
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
/>
.
</para>
<member>
<emphasis>
Documentation:
</emphasis>
The Bugzilla documentation, including The Bugzilla Guide.
</member>
<para>
The Search page has controls for selecting different possible
values for all of the fields in a bug, as described above. Once you've
defined a search, you can either run it, or save it as a Remembered
Query, which can optionally appear in the footer of your pages.
</para>
<member>
<emphasis>
Email:
</emphasis>
Anything to do with email sent by Bugzilla.
</member>
<para>
Highly advanced querying is done using Boolean Charts, which have
their own
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/booleanchart.html"
>
context-sensitive help
</ulink>
<member>
<emphasis>
Installation:
</emphasis>
The installation process of Bugzilla.
</member>
.
</para>
</section>
<member>
<emphasis>
Query/Buglist:
</emphasis>
Anything to do with searching for bugs and viewing the
buglists.
</member>
<section
id=
"list"
>
<title>
Bug Lists
</title>
<member>
<emphasis>
Reporting/Charting:
</emphasis>
Getting reports from Bugzilla.
</member>
<para>
If you run a search, a list of matching bugs will be returned.
The default search is to return all open bugs on the system - don't try
running this search on a Bugzilla installation with a lot of
bugs!
</para>
<member>
<emphasis>
User Accounts:
</emphasis>
Anything about managing a user account from the user's perspective.
Saved queries, creating accounts, changing passwords, logging in,
etc.
</member>
<para>
The format of the list is configurable. For example, it can be
sorted by clicking the column headings. Other useful features can be
accessed using the links at the bottom of the list:
<simplelist>
<member>
<emphasis>
Long Format:
</emphasis>
<emphasis>
User Interface:
</emphasis>
General issues having to do with the user interface cosmetics (not
functionality) including cosmetic issues, HTML templates,
etc.
</member>
</simplelist>
</para>
</listitem>
<listitem>
<para>
<emphasis>
Status and Resolution:
</emphasis>
These define exactly what state the bug is in - from not even
being confirmed as a bug, through to being fixed and the fix
confirmed by Quality Assurance. The different possible values for
Status and Resolution on your installation should be documented in the
context-sensitive help for those items.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Assigned To:
</emphasis>
The person responsible for fixing the bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*URL:
</emphasis>
A URL associated with the bug, if any.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Summary:
</emphasis>
A one-sentence summary of the problem.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Status Whiteboard:
</emphasis>
(a.k.a. Whiteboard) A free-form text area for adding short notes
and tags to a bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Keywords:
</emphasis>
The administrator can define keywords which you can use to tag and
categorise bugs - e.g. The Mozilla Project has keywords like crash
and regression.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Platform and OS:
</emphasis>
These indicate the computing environment where the bug was
found.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Version:
</emphasis>
The "Version" field is usually used for versions of a product which
have been released, and is set to indicate which versions of a
Component have the particular problem the bug report is
about.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Priority:
</emphasis>
The bug assignee uses this field to prioritise his or her bugs.
It's a good idea not to change this on other people's bugs.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Severity:
</emphasis>
This indicates how severe the problem is - from blocker
("application unusable") to trivial ("minor cosmetic issue"). You
can also use this field to indicate whether a bug is an enhancement
request.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Target:
</emphasis>
(a.k.a. Target Milestone) A future version by which the bug is to
be fixed. e.g. The Bugzilla Project's milestones for future
Bugzilla versions are 2.18, 2.20, 3.0, etc. Milestones are not
restricted to numbers, thought - you can use any text strings, such
as dates.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Reporter:
</emphasis>
The person who filed the bug.
</para>
</listitem>
<listitem>
<para>
<emphasis>
CC list:
</emphasis>
A list of people who get mail when the bug changes.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Attachments:
</emphasis>
You can attach files (e.g. testcases or patches) to bugs. If there
are any attachments, they are listed in this section.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Dependencies:
</emphasis>
If this bug cannot be fixed unless other bugs are fixed (depends
on), or this bug stops other bugs being fixed (blocks), their
numbers are recorded here.
</para>
</listitem>
<listitem>
<para>
<emphasis>
*Votes:
</emphasis>
Whether this bug has any votes.
</para>
</listitem>
<listitem>
<para>
<emphasis>
Additional Comments:
</emphasis>
You can add your two cents to the bug discussion here, if you have
something worthwhile to say.
</para>
</listitem>
</orderedlist>
</section>
this gives you a large page with a non-editable summary of the fields
of each bug.
</member
>
<section
id=
"query"
>
<title>
Searching for Bugs
</title
>
<member>
<emphasis>
Change Columns:
</emphasis>
<para>
The Bugzilla Search page is is the interface where you can find
any bug report, comment, or patch currently in the Bugzilla system. You
can play with it here:
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
/>
.
</para>
change the bug attributes which appear in the list.
</member>
<para>
The Search page has controls for selecting different possible
values for all of the fields in a bug, as described above. For some
fields, multiple values can be selected. In those cases, Bugzilla
returns bugs where the content of the field matches any one of the selected
values. If none is selected, then the field can take any value.
</para>
<member>
<emphasis>
Change several bugs at once:
</emphasis
>
<para>
Once you've run a search, you can save it as a Saved Search, which
appears in the page footer.
</para
>
If your account is sufficiently empowered, you can make the sam
e
change to all the bugs in the list - for example, changing their
owner.
</member
>
<para>
Highly advanced querying is done using Boolean Charts. See th
e
Boolean Charts help link on the Search page for more information.
</para>
</section
>
<member
>
<emphasis>
Send mail to bug owners:
</emphasis
>
<section
id=
"list"
>
<title>
Bug Lists
</title
>
Sends mail to the owners of all bugs on the list.
</member>
<para>
If you run a search, a list of matching bugs will be returned.
</para>
<member>
<emphasis>
Edit this query:
</emphasis>
<para>
The format of the list is configurable. For example, it can be
sorted by clicking the column headings. Other useful features can be
accessed using the links at the bottom of the list:
<simplelist>
<member>
<emphasis>
Long Format:
</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>
this gives you a large page with a non-editable summary of the fields
of each bug.
</member>
<member>
<emphasis>
Change Columns:
</emphasis>
change the bug attributes which appear in the list.
</member>
<member>
<emphasis>
Change several bugs at once:
</emphasis>
If your account is sufficiently empowered, you can make the same
change to all the bugs in the list - for example, changing their
owner.
</member>
<member>
<emphasis>
Send mail to bug owners:
</emphasis>
Sends mail to the owners of all bugs on the list.
</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>
</section>
<section
id=
"bugreports"
>
<title>
Filing Bugs
</title>
<para>
Years of bug writing experience has been distilled for your
reading pleasure into the
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/bugwritinghelp.html"
>
Bug Writing Guidelines
</ulink>
.
While some of the advice is Mozilla-specific, the basic principles of
reporting Reproducible, Specific bugs, isolating the Product you are
using, the Version of the Product, the Component which failed, the
Hardware Platform, and Operating System you were using at the time of
the failure go a long way toward ensuring accurate, responsible fixes
for the bug that bit you.
</para>
<para>
The procedure for filing a test bug is as follows:
</para>
<orderedlist>
<listitem>
<para>
Go to
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/"
>
Landfill
</ulink>
in your browser and click
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi"
>
Enter a new bug report
</ulink>
.
</para>
</listitem>
<listitem>
<para>
Select a product - any one will do.
</para>
</listitem>
<listitem>
<para>
Fill in the fields. Bugzilla should have made reasonable
guesses, based upon your browser, for the "Platform" and "OS"
drop-down boxes. If they are wrong, change them.
</para>
</listitem>
<listitem>
<para>
Select "Commit" and send in your bug report.
</para>
</listitem>
</orderedlist>
</section>
<section
id=
"patchviewer"
>
<title>
Patch Viewer
</title>
<para>
Viewing and reviewing patches in Bugzilla is often difficult due to
lack of context, improper format and the inherent readability issues that
raw patches present. Patch Viewer is an enhancement to Bugzilla designed
to fix that by offering increased context, linking to sections, and
integrating with Bonsai, LXR and CVS.
</para>
<para>
Patch viewer allows you to:
</para>
<simplelist>
<member>
View patches in color, with side-by-side view rather than trying
to interpret the contents of the patch.
</member>
<member>
See the difference between two patches.
</member>
<member>
Get more context in a patch.
</member>
<member>
Collapse and expand sections of a patch for easy
reading.
</member>
<member>
Link to a particular section of a patch for discussion or
review
</member>
<member>
Go to Bonsai or LXR to see more context, blame, and
cross-references for the part of the patch you are looking at
</member>
<member>
Create a rawtext unified format diff out of any patch, no
matter what format it came from
</member>
</simplelist>
<section
id=
"patchviewer_view"
>
<title>
Viewing Patches in Patch Viewer
</title>
<para>
The main way to view a patch in patch viewer is to click on the
"Diff" link next to a patch in the Attachments list on a bug. You may
also do this within the edit window by clicking the "View Attachment As
Diff" button in the Edit Attachment screen.
</para>
</section>
<section
id=
"bugreports"
>
<title>
Filing Bugs
</title>
<section
id=
"patchviewer_diff"
>
<title>
Seeing the Difference Between Two Patches
</title>
<para>
To see the difference between two patches, you must first view the
newer patch in Patch Viewer. Then select the older patch from the
dropdown at the top of the page ("Differences between [dropdown] and
this patch") and click the "Diff" button. This will show you what
is new or changed in the newer patch.
</para>
</section>
<section
id=
"patchviewer_context"
>
<title>
Getting More Context in a Patch
</title>
<para>
To get more context in a patch, you put a number in the textbox at
the top of Patch Viewer ("Patch / File / [textbox]") and hit enter.
This will give you that many lines of context before and after each
change. Alternatively, you can click on the "File" link there and it
will show each change in the full context of the file. This feature only
works against files that were diffed using "cvs diff".
</para>
</section>
<section
id=
"patchviewer_collapse"
>
<title>
Collapsing and Expanding Sections of a Patch
</title>
<para>
To view only a certain set of files in a patch (for example, if a
patch is absolutely huge and you want to only review part of it at a
time), you can click the "(+)" and "(-)" links next to each file (to
expand it or collapse it). If you want to collapse all files or expand
all files, you can click the "Collapse All" and "Expand All" links at the
top of the page.
</para>
</section>
<para>
Years of bug writing experience has been distilled for your
reading pleasure into the
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/bugwritinghelp.html"
>
Bug Writing Guidelines
</ulink>
.
While some of the advice is Mozilla-specific, the basic principles of
reporting Reproducible, Specific bugs, isolating the Product you are
using, the Version of the Product, the Component which failed, the
Hardware Platform, and Operating System you were using at the time of
the failure go a long way toward ensuring accurate, responsible fixes
for the bug that bit you.
</para>
<para>
The procedure for filing a test bug is as follows:
</para>
<orderedlist>
<listitem>
<para>
Go to
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/"
>
Landfill
</ulink>
in your browser and click
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi"
>
Enter a new bug report
</ulink>
.
</para>
</listitem>
<listitem>
<para>
Select a product - any one will do.
</para>
</listitem>
<listitem>
<para>
Fill in the fields. Bugzilla should have made reasonable
guesses, based upon your browser, for the "Platform" and "OS"
drop-down boxes. If they are wrong, change them.
</para>
</listitem>
<listitem>
<para>
Select "Commit" and send in your bug report.
</para>
</listitem>
</orderedlist>
<section
id=
"patchviewer_link"
>
<title>
Linking to a Section of a Patch
</title>
<para>
To link to a section of a patch (for example, if you want to be
able to give someone a URL to show them which part you are talking
about) you simply click the "Link Here" link on the section header. The
resulting URL can be copied and used in discussion. (Copy Link
Location in Mozilla works as well.)
</para>
</section>
<section
id=
"patchviewer_bonsai_lxr"
>
<title>
Going to Bonsai and LXR
</title>
<para>
To go to Bonsai to get blame for the lines you are interested in,
you can click the "Lines XX-YY" link on the section header you are
interested in. This works even if the patch is against an old
version of the file, since Bonsai stores all versions of the file.
</para>
<para>
To go to LXR, you click on the filename on the file header
(unfortunately, since LXR only does the most recent version, line
numbers are likely to rot).
</para>
</section>
<section
id=
"patchviewer_unified_diff"
>
<title>
Creating a Unified Diff
</title>
<para>
If the patch is not in a format that you like, you can turn it
into a unified diff format by clicking the "Raw Unified" link at the top
of the page.
</para>
</section>
</section>
<section
id=
"hintsandtips"
>
...
...
@@ -383,15 +468,16 @@
<section>
<title>
Autolinkification
</title>
<para>
Bugzilla comments are plain text - so
posting HTML will result
in literal HTML tags rather than being interpreted by a browser
.
<para>
Bugzilla comments are plain text - so
typing
<
U
>
will
produce less-than, U, greater-than rather than underlined text
.
However, Bugzilla will automatically make hyperlinks out of certain
sorts of text in comments. For example, the text
http://www.bugzilla.org will be turned into
"http://www.bugzilla.org" will be turned into a link:
<ulink
url=
"http://www.bugzilla.org"
/>
.
Other strings which get linkified in the obvious manner are:
<simplelist>
<member>
bug 12345
</member>
<member>
comment 7
</member>
<member>
bug 23456, comment 53
</member>
<member>
attachment 4321
</member>
<member>
mailto:george@example.com
</member>
...
...
@@ -440,7 +526,7 @@
<para>
Don't use sigs in comments. Signing your name ("Bill") is acceptable,
particularly
if you do it out of habit, but full mail/news-style
if you do it out of habit, but full mail/news-style
four line ASCII art creations are not.
</para>
</section>
...
...
@@ -494,7 +580,7 @@
<para>
Once you have logged in, you can customise various aspects of
Bugzilla via the "Edit prefs" link in the page footer.
The preferences are split into
four
tabs:
</para>
The preferences are split into
three
tabs:
</para>
<section
id=
"accountsettings"
xreflabel=
"Account Settings"
>
<title>
Account Settings
</title>
...
...
@@ -516,9 +602,16 @@
<para>
On this tab you can reduce or increase the amount of email sent
you from Bugzilla, opting in our out depending on your relationship to
the bug and the change that was made to it. (Note that you can also do
client-side filtering using the X-Bugzilla-Reason header which Bugzilla
adds to all bugmail.)
</para>
the bug and the change that was made to it.
</para>
<para>
You can also do further filtering on the client side by
using the X-Bugzilla-Reason mail header which Bugzilla
adds to all bugmail. This tells you what relationship you have to the
bug in question,
and can be any of Owner, Reporter, QAcontact, CClist, Voter and
WatchingComponent.
</para>
<para>
By entering user email names, delineated by commas, into the
"Users to watch" text entry box you can receive a copy of all the
...
...
@@ -533,15 +626,6 @@
</note>
</section>
<section
id=
"footersettings"
>
<title>
Page Footer
</title>
<para>
On the Search page, you can store queries in Bugzilla, so if you
regularly run a particular query it is just a drop-down menu away.
Once you have a stored query, you can come
here to request that it also be displayed in your page footer.
</para>
</section>
<section
id=
"permissionsettings"
>
<title>
Permissions
</title>
...
...
@@ -551,6 +635,11 @@
functions.
</para>
</section>
</section>
<section
id=
"reporting"
>
<title>
Reports
</title>
<para><emphasis>
To be written
</emphasis></para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment