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
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ivan Ivlev
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
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
785 additions
and
1371 deletions
+785
-1371
Bugzilla-Guide.xml
docs/en/xml/Bugzilla-Guide.xml
+25
-40
about.xml
docs/en/xml/about.xml
+34
-113
administration.xml
docs/en/xml/administration.xml
+16
-690
conventions.xml
docs/en/xml/conventions.xml
+11
-20
installation.xml
docs/en/xml/installation.xml
+523
-369
integration.xml
docs/en/xml/integration.xml
+6
-1
introduction.xml
docs/en/xml/introduction.xml
+32
-52
patches.xml
docs/en/xml/patches.xml
+6
-43
using.xml
docs/en/xml/using.xml
+132
-43
No files found.
docs/en/xml/Bugzilla-Guide.xml
View file @
3e7d0c08
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<!ENTITY integration SYSTEM "integration.xml">
<!ENTITY integration SYSTEM "integration.xml">
<!ENTITY future SYSTEM "future.xml">
<!ENTITY future SYSTEM "future.xml">
<!ENTITY index SYSTEM "index.xml">
<!ENTITY index SYSTEM "index.xml">
<!ENTITY
database SYSTEM "database
.xml">
<!ENTITY
customization SYSTEM "customization
.xml">
<!ENTITY patches SYSTEM "patches.xml">
<!ENTITY patches SYSTEM "patches.xml">
<!ENTITY variants SYSTEM "variants.xml">
<!ENTITY variants SYSTEM "variants.xml">
<!ENTITY introduction SYSTEM "introduction.xml">
<!ENTITY introduction SYSTEM "introduction.xml">
...
@@ -32,13 +32,12 @@
...
@@ -32,13 +32,12 @@
For a devel release, simple bump bz-ver and bz-date
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-nextver "2.18">
<!ENTITY bz-date "200
3-04-23
">
<!ENTITY bz-date "200
4-01-15
">
<!ENTITY % bz-devel "INCLUDE">
<!ENTITY % bz-devel "INCLUDE">
<!ENTITY bz "http://www.bugzilla.org/">
<!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 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 mysql "http://www.mysql.com/">
<!ENTITY newest-perl-ver "5.8">
<!ENTITY newest-perl-ver "5.8">
...
@@ -70,21 +69,23 @@
...
@@ -70,21 +69,23 @@
<!-- Coding standards for this document
<!-- 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.
* Use Entities to include files for new chapters in Bugzilla-Guide.xml.
* Try to use Entities for frequently-used passages of text as well.
* Try to use Entities for frequently-used passages of text as well.
* Ensure all documents compile cleanly to HTML after modification.
* 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.
* Try to index important terms wherever possible.
* Use "glossterm" whenever you introduce a new term.
* Use "glossterm" whenever you introduce a new term.
* Follow coding standards at http://www.tldp.org, and
* Follow coding standards at http://www.tldp.org, and
check out the KDE guidelines (they are nice, too)
check out the KDE guidelines (they are nice, too)
http://i18n.kde.org/doc/markup.html
http://i18n.kde.org/doc/markup.html
* All tags should be lowercase.
* All tags should be lowercase.
* Please use sensible spacing. The comments at the very end of each
* Please use sensible spacing. The comments at the very end of each
file define reasonable defaults for PSGML mode in EMACS.
file define reasonable defaults for PSGML mode in EMACS.
Double-indent tags, use double spacing whenever possible, and
* 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.
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
...
@@ -93,18 +94,10 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<!-- Header -->
<!-- Header -->
<bookinfo>
<bookinfo>
<title>
The Bugzilla Guide -
&bz-ver;
<![%bz-devel;[Development ]]>
Release
</title>
<title>
The Bugzilla Guide -
&bz-ver;
<![%bz-devel;[Development ]]>
Release
</title>
<authorgroup>
<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>
<corpauthor>
The Bugzilla Team
</corpauthor>
</authorgroup>
</authorgroup>
...
@@ -112,24 +105,19 @@ try to avoid clutter and feel free to waste space in the code to make it more re
...
@@ -112,24 +105,19 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<abstract>
<abstract>
<para>
<para>
This is the documentation for Bugzilla,
the mozilla.org
This is the documentation for Bugzilla,
a
bug-tracking system.
bug-tracking system
from mozilla.org
.
Bugzilla is an enterprise-class piece of software
Bugzilla is an enterprise-class piece of software
that
powers issue-tracking
for hundreds of
that
tracks millions of bugs and issues
for hundreds of
organizations around the world
, tracking millions of bugs
.
organizations around the world.
</para>
</para>
<para>
<para>
This documentation is maintained in DocBook 4.1.2 XML format.
The most current version of this document can always be found on the
Changes are best submitted as plain text or XML diffs, attached
<ulink
url=
"http://www.bugzilla.org/documentation.html"
>
Bugzilla
to a bug filed in the
&bzg-bugs;
component
.
Documentation Page
</ulink>
.
</para>
</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>
</abstract>
<keywordset>
<keywordset>
...
@@ -160,18 +148,15 @@ try to avoid clutter and feel free to waste space in the code to make it more re
...
@@ -160,18 +148,15 @@ try to avoid clutter and feel free to waste space in the code to make it more re
<!-- Administering Bugzilla -->
<!-- Administering Bugzilla -->
&administration;
&administration;
<!-- Customizing Bugzilla -->
&customization;
<!-- Appendix: The Frequently Asked Questions -->
<!-- Appendix: The Frequently Asked Questions -->
&faq;
&faq;
<!-- Appendix: The Database Schema -->
&database;
<!-- Appendix: Custom Patches -->
<!-- Appendix: Custom Patches -->
&patches;
&patches;
<!-- Appendix: Major Bugzilla Variants -->
&variants;
<!-- Appendix: GNU Free Documentation License -->
<!-- Appendix: GNU Free Documentation License -->
&gfdl;
&gfdl;
...
...
docs/en/xml/about.xml
View file @
3e7d0c08
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<section
id=
"copyright"
>
<section
id=
"copyright"
>
<title>
Copyright Information
</title>
<title>
Copyright Information
</title>
<blockquote>
<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>
<para>
Permission is granted to copy, distribute and/or modify this
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
document under the terms of the GNU Free Documentation
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<para>
<para>
If you have any questions regarding this document, its
If you have any questions regarding this document, its
copyright, or publishing this document in non-electronic form,
copyright, or publishing this document in non-electronic form,
please contact
&bzg-auth;
.
please contact
the Bugzilla Team
.
</para>
</para>
</section>
</section>
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<title>
Disclaimer
</title>
<title>
Disclaimer
</title>
<para>
<para>
No liability for the contents of this document can be accepted.
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
This document may contain errors
and inaccuracies that may damage your system, cause your partner
and inaccuracies that may damage your system, cause your partner
to leave you, your boss to fire you, your cats to
to leave you, your boss to fire you, your cats to
...
@@ -36,35 +36,20 @@
...
@@ -36,35 +36,20 @@
war. Proceed with caution.
war. Proceed with caution.
</para>
</para>
<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
Naming of particular products or brands should not be seen as
endorsements, with the exception of the term "GNU/Linux". We
endorsements, with the exception of the term "GNU/Linux". We
wholeheartedly endorse the use of GNU/Linux
in every situation
wholeheartedly endorse the use of GNU/Linux
; it is an extremely
where it is appropriate. It is an extremely
versatile, stable,
versatile, stable,
and robust operating system that offers an ideal operating
and robust operating system that offers an ideal operating
environment for Bugzilla.
environment for Bugzilla.
</para>
</para>
<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
Although the Bugzilla development team has taken great care to
ensure that all easily-exploitable bugs or options are
ensure that all exploitable bugs or options have been
documented or fixed in the code, security holes surely exist.
fixed, security holes surely exist. Great care should be taken both in
Great care should be taken both in the installation and usage of
the installation and usage of this software. The Bugzilla development
this software. Carefully consider the implications of installing
team members assume no liability for your use of this software. You have
other network services with Bugzilla. The Bugzilla development
the source code, and are responsible for auditing it yourself to ensure
team members, Netscape Communications, America Online Inc., and
any affiliated developers or sponsors assume no liability for
your use of this product. You have the source code to this
product, and are responsible for auditing it yourself to ensure
your security needs are met.
your security needs are met.
</para>
</para>
</section>
</section>
...
@@ -77,24 +62,14 @@
...
@@ -77,24 +62,14 @@
This is the
&bz-ver;
version of The Bugzilla Guide. It is so named
This is the
&bz-ver;
version of The Bugzilla Guide. It is so named
to match the current version of Bugzilla.
to match the current version of Bugzilla.
<![%bz-devel;[
<![%bz-devel;[
This version of the guide, like its associated Bugzilla version is a
This version of the guide, like its associated Bugzilla version, is a
development version. Information is subject to change between now and
development version.
when &bz-nextver; is released.
]]>
]]>
If you are
reading this from any source other than those below, please
check one of these mirrors to make sure you are reading an
up-to-date version of the Guide.
</para>
</para>
<para>
<para>
The newest version of this guide can always be found at
<ulink
The newest version of this guide can always be found at
<ulink
url=
"http://www.bugzilla.org"
/>
; including
url=
"http://www.bugzilla.org"
/>
; however, you should read the version
documentation for past releases and the current development version.
which came with the Bugzilla release you are using.
</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>
.
</para>
</para>
<para>
<para>
The latest version of this document can always be checked out via CVS.
The latest version of this document can always be checked out via CVS.
...
@@ -118,87 +93,33 @@
...
@@ -118,87 +93,33 @@
contribution to the Bugzilla community:
contribution to the Bugzilla community:
</para>
</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>
<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"
>
<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>
Ben FrantzDale
</member>
<member>
Eric Hanson
</member>
<member>
Eric Hanson
</member>
<member>
Tara Hernandez
</member>
<member>
Dave Lawrence
</member>
<member>
Zach Lipton
</member>
<member>
Gervase Markham
</member>
<member>
Gervase Markham
</member>
<member>
Andrew Pearson
</member>
<member>
Joe Robins
</member>
<member>
Joe Robins
</member>
<member>
Kevin Brannen
</member>
<member>
Martin Wulffeld
</member>
<member>
Ron Teitelbaum
</member>
<member>
Spencer Smith
</member>
<member>
Spencer Smith
</member>
<member>
Zach Liption
</member>
<member>
Jacob Steenhagen
</member>
</simplelist>
<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>
</para>
</section>
</section>
...
...
docs/en/xml/administration.xml
View file @
3e7d0c08
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
standard type, and Bugzilla does not yet take advantage of features
standard type, and Bugzilla does not yet take advantage of features
such as transactions which would justify this speed decrease. The
such as transactions which would justify this speed decrease. The
Bugzilla team are, however, happy to hear about any experiences with
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>
<para>
The
<quote>
shadowdb
</quote>
parameter was designed to get around this limitation. While only a
parameter was designed to get around this limitation. While only a
...
@@ -82,7 +82,7 @@
...
@@ -82,7 +82,7 @@
high-traffic Bugzilla databases.
</para>
high-traffic Bugzilla databases.
</para>
<para>
<para>
As a guide, mozilla.org began needing
As a guide,
on reasonably old hardware,
mozilla.org began needing
<quote>
shadowdb
</quote>
<quote>
shadowdb
</quote>
when they reached around 40,000 Bugzilla users with several hundred
when they reached around 40,000 Bugzilla users with several hundred
Bugzilla bug changes and comments per day.
</para>
Bugzilla bug changes and comments per day.
</para>
...
@@ -321,7 +321,7 @@
...
@@ -321,7 +321,7 @@
they attempt to perform these actions, and should explain
they attempt to perform these actions, and should explain
why the account was disabled.
why the account was disabled.
<warning>
<warning>
<para>
Don't disable
the administrator account
!
</para>
<para>
Don't disable
all the administrator accounts
!
</para>
</warning>
</warning>
<note>
<note>
...
@@ -418,9 +418,6 @@
...
@@ -418,9 +418,6 @@
</section>
</section>
</section>
</section>
<section
id=
"programadmin"
>
<title>
Product, Component, Milestone, and Version Administration
</title>
<section
id=
"products"
>
<section
id=
"products"
>
<title>
Products
</title>
<title>
Products
</title>
...
@@ -517,7 +514,7 @@
...
@@ -517,7 +514,7 @@
<para>
Versions are the revisions of the product, such as "Flinders
<para>
Versions are the revisions of the product, such as "Flinders
3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select
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
field; the usual practice is to select the earliest version known to have
the bug.
the bug.
</para>
</para>
...
@@ -580,17 +577,9 @@
...
@@ -580,17 +577,9 @@
<para>
From the Edit product screen, you can enter the URL of a
<para>
From the Edit product screen, you can enter the URL of a
page which gives information about your milestones and what
page which gives information about your milestones and what
they mean.
</para>
they mean.
</para>
<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>
</listitem>
</orderedlist>
</orderedlist>
</section>
</section>
</section>
<section
id=
"voting"
>
<section
id=
"voting"
>
<title>
Voting
</title>
<title>
Voting
</title>
...
@@ -723,9 +712,10 @@
...
@@ -723,9 +712,10 @@
place all users who fulfill the Regular Expression into the new group.
place all users who fulfill the Regular Expression into the new group.
When you have finished, click
<quote>
Add
</quote>
.
</para>
When you have finished, click
<quote>
Add
</quote>
.
</para>
<warning>
<warning>
<para>
The User Regexp is a perl regexp and, if not anchored, will match
<para>
If specifying a domain in the regexp, make sure you end
any part of an address. So, if you do not want to grant access
the regexp with a $. Otherwise, when granting access to
into 'mycompany.com' to 'badperson@mycompany.com.hacker.net', use
"@mycompany\.com", you will allow access to
'badperson@mycompany.com.cracker.net'. You need to use
'@mycompany\.com$' as the regexp.
</para>
'@mycompany\.com$' as the regexp.
</para>
</warning>
</warning>
</listitem>
</listitem>
...
@@ -749,677 +739,17 @@
...
@@ -749,677 +739,17 @@
</para>
</para>
</section>
</section>
<section
id=
"upgrading"
>
<section
id=
"security"
>
<title>
Upgrading to New Releases
</title>
<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>
<warning>
<para>
<para>
Upgrading is a one-way process. You should backup your database
This feature should be considered experimental; the Bugzilla code you
and current Bugzilla directory before attempting the upgrade. If you wish
will be changing is not stable, and could change or move between
to revert to the old Bugzilla version for any reason, you will have to
versions. Be aware that if you make modifications to it, you may have
restore from these backups.
to re-make them or port them if Bugzilla changes internally between
versions.
</para>
</para>
</warning>
</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,
<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
be it to get new features or pick up the latest security fix. How easy
it is to update depends on a few factors.
it is to update depends on a few factors.
...
@@ -1580,8 +910,8 @@ bash$ <command>./checksetup.pl</command>
...
@@ -1580,8 +910,8 @@ bash$ <command>./checksetup.pl</command>
revisions to go from the most recent revision to the new one. You could
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
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
mentioned bug, but it is safer to use the released patch file as
sometimes patches get changed before they get checked in
(for minor
sometimes patches get changed before they get checked in
.
spelling fixes and the like). It is also theorec
tically possible to
It is also theore
tically possible to
scour the fixed bug list and pick and choose which patches to apply
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
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.
end up with is a hodge podge Bugzilla that isn't really any version.
...
@@ -1611,10 +941,6 @@ patching file globals.pl
...
@@ -1611,10 +941,6 @@ patching file globals.pl
</example>
</example>
</section>
</section>
<!-- Integrating Bugzilla with Third-Party Tools -->
&integration;
</chapter>
</chapter>
<!-- Keep this comment at the end of the file
<!-- Keep this comment at the end of the file
...
...
docs/en/xml/conventions.xml
View file @
3e7d0c08
...
@@ -60,7 +60,7 @@
...
@@ -60,7 +60,7 @@
</row>
</row>
<row>
<row>
<entry>
File
N
ames
</entry>
<entry>
File
and directory n
ames
</entry>
<entry>
<entry>
<filename>
filename
</filename>
<filename>
filename
</filename>
...
@@ -68,14 +68,6 @@
...
@@ -68,14 +68,6 @@
</row>
</row>
<row>
<row>
<entry>
Directory Names
</entry>
<entry>
<filename
class=
"directory"
>
directory
</filename>
</entry>
</row>
<row>
<entry>
Commands to be typed
</entry>
<entry>
Commands to be typed
</entry>
<entry>
<entry>
...
@@ -84,7 +76,7 @@
...
@@ -84,7 +76,7 @@
</row>
</row>
<row>
<row>
<entry>
Applications
N
ames
</entry>
<entry>
Applications
n
ames
</entry>
<entry>
<entry>
<application>
application
</application>
<application>
application
</application>
...
@@ -119,7 +111,7 @@
...
@@ -119,7 +111,7 @@
</row>
</row>
<row>
<row>
<entry>
Environment
V
ariables
</entry>
<entry>
Environment
v
ariables
</entry>
<entry>
<entry>
<envar>
VARIABLE
</envar>
<envar>
VARIABLE
</envar>
...
@@ -127,14 +119,6 @@
...
@@ -127,14 +119,6 @@
</row>
</row>
<row>
<row>
<entry>
Emphasized word
</entry>
<entry>
<emphasis>
word
</emphasis>
</entry>
</row>
<row>
<entry>
Term found in the glossary
</entry>
<entry>
Term found in the glossary
</entry>
<entry>
<entry>
...
@@ -143,7 +127,7 @@
...
@@ -143,7 +127,7 @@
</row>
</row>
<row>
<row>
<entry>
Code
E
xample
</entry>
<entry>
Code
e
xample
</entry>
<entry>
<entry>
<programlisting><sgmltag
class=
"starttag"
>
para
</sgmltag>
<programlisting><sgmltag
class=
"starttag"
>
para
</sgmltag>
...
@@ -154,6 +138,13 @@ Beginning and end of paragraph
...
@@ -154,6 +138,13 @@ Beginning and end of paragraph
</tbody>
</tbody>
</tgroup>
</tgroup>
</informaltable>
</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>
</section>
<!-- Keep this comment at the end of the file
<!-- 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"> -->
<!-- <!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"
>
<chapter
id=
"installation"
>
<title>
Installation
</title>
<title>
Installation
</title>
...
@@ -40,6 +40,11 @@
...
@@ -40,6 +40,11 @@
with administrative access to install it for you.
with administrative access to install it for you.
</para>
</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
<para>
The listing below is a basic step-by-step list. More information
can be found in the sections below. Minimum versions will be
can be found in the sections below. Minimum versions will be
included in parenthesis where appropriate.
included in parenthesis where appropriate.
...
@@ -47,17 +52,13 @@
...
@@ -47,17 +52,13 @@
<procedure>
<procedure>
<step>
<step>
<para><link
linkend=
"install-mysql"
>
Install MySQL
</link>
(
&min-mysql-ver;
)
</para>
</step>
<step>
<para><link
linkend=
"install-perl"
>
Install Perl
</link>
<para><link
linkend=
"install-perl"
>
Install Perl
</link>
(
&min-perl-ver;
)
(
&min-perl-ver;
)
</para>
</para>
</step>
</step>
<step>
<step>
<para><link
linkend=
"install-perlmodules"
>
Install Perl Modules
</link>
<para><link
linkend=
"install-mysql"
>
Install MySQL
</link>
(
&min-mysql-ver;
)
</para>
</para>
</step>
</step>
<step>
<step>
...
@@ -69,11 +70,28 @@
...
@@ -69,11 +70,28 @@
</para>
</para>
</step>
</step>
<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><link
linkend=
"install-setupdatabase"
>
Setup the MySQL Database
</link>
</para>
</para>
</step>
</step>
</procedure>
</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"
>
<section
id=
"install-mysql"
>
<title>
MySQL
</title>
<title>
MySQL
</title>
...
@@ -121,19 +139,106 @@ set-variable = max_allowed_packet=1M
...
@@ -121,19 +139,106 @@ set-variable = max_allowed_packet=1M
also wish to utilize the
<option>
skip-networking
</option>
option as
also wish to utilize the
<option>
skip-networking
</option>
option as
mentioned in
<xref
linkend=
"security-mysql"
/>
for the added security.
mentioned in
<xref
linkend=
"security-mysql"
/>
for the added security.
</para>
</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>
<section
id=
"install-
perl
"
>
<section
id=
"install-
webserver
"
>
<title>
Perl
</title>
<title>
HTTP Server
</title>
<para>
Any machine that doesn't have Perl on it is a sad machine indeed.
<para>
You have freedom of choice here, pretty much any web server that
Perl can be got in source form from
<ulink
url=
"http://www.perl.com"
/>
.
is capable of running
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
There are also binary versions available for many platforms, most of which
scripts will work.
<xref
linkend=
"http"
/>
has more information about
are linked to from perl.com.
configuring web servers to work with Bugzilla.
Although Bugzilla runs with perl
&min-perl-ver;
,
</para>
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
<note>
version
&newest-perl-ver;
.
</para>
<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>
<section
id=
"install-perlmodules"
>
<section
id=
"install-perlmodules"
>
...
@@ -177,7 +282,7 @@ set-variable = max_allowed_packet=1M
...
@@ -177,7 +282,7 @@ set-variable = max_allowed_packet=1M
</para>
</para>
</callout>
</callout>
<callout
arearefs=
"cpan-moduledir"
>
<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
<xref
linkend=
"cpan-moduletar"
/>
will create the
<filename
class=
"directory"
>
<
module
>
</filename>
directory.
<filename
class=
"directory"
>
<
module
>
</filename>
directory.
</para>
</para>
...
@@ -660,122 +765,14 @@ ReadLine support enabled
...
@@ -660,122 +765,14 @@ ReadLine support enabled
</section>
</section>
</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>
<section>
<title>
<title>
<filename>
checksetup.pl
</filename>
<filename>
checksetup.pl
</filename>
</title>
</title>
<para>
Next, run the magic checksetup.pl script. (Many thanks to
<para>
Next, run the magic checksetup.pl script.
<ulink
url=
"mailto:holgerschurig@nikocity.de"
>
Holger Schurig
</ulink>
This is designed to make sure your perl modules are the correct
for writing this script!)
This script is designed to make sure your perl modules are the correct
version and your MySQL database and other
version and your MySQL database and other
configuration options are consistent with the Bugzilla CGI files.
configuration options are consistent with the Bugzilla CGI files.
It will make sure Bugzilla files and directories have reasonable
It will make sure Bugzilla files and directories have reasonable
...
@@ -849,29 +846,172 @@ ReadLine support enabled
...
@@ -849,29 +846,172 @@ ReadLine support enabled
</section>
</section>
</section>
</section>
<section
id=
"extraconfig"
>
<section
id=
"http"
>
<title>
Optional Additional Configuration
</title>
<title>
HTTP Server Configuration
</title>
<section>
<title>
Dependency Charts
</title>
<para>
As well as the text-based dependency graphs, Bugzilla also
<para>
The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
supports dependency graphing, using a package called 'dot'.
that can be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts
Exactly how this works is controlled by the 'webdotbase' parameter,
should be able to handle Bugzilla. No matter what web server you choose, but
which can have one of three values:
especially if you choose something other than Apache, you should be sure to read
<xref
linkend=
"security-access"
/>
.
</para>
</para>
<para>
<para>
The plan for this section is to eventually document the specifics of how to lock
<orderedlist>
down permissions on individual web servers.
<listitem>
<para>
A complete file path to the command 'dot' (part of
<ulink
url=
"http://www.graphviz.org/"
>
GraphViz
</ulink>
)
will generate the graphs locally
</para>
</para>
</listitem>
<listitem>
<section
id=
"http-apache"
>
<para>
<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>
<section>
<title>
Dependency Charts
</title>
<para>
As well as the text-based dependency graphs, Bugzilla also
supports dependency graphing, using a package called 'dot'.
Exactly how this works is controlled by the 'webdotbase' parameter,
which can have one of three values:
</para>
<para>
<orderedlist>
<listitem>
<para>
A complete file path to the command 'dot' (part of
<ulink
url=
"http://www.graphviz.org/"
>
GraphViz
</ulink>
)
will generate the graphs locally
</para>
</listitem>
<listitem>
<para>
A URL prefix pointing to an installation of the webdot package will
A URL prefix pointing to an installation of the webdot package will
generate the graphs remotely
generate the graphs remotely
</para>
</para>
...
@@ -961,20 +1101,9 @@ man 5 crontab
...
@@ -961,20 +1101,9 @@ man 5 crontab
<section
id=
"bzldap"
>
<section
id=
"bzldap"
>
<title>
LDAP Authentication
</title>
<title>
LDAP Authentication
</title>
<note>
<para>
LDAP authentication is a module for Bugzilla's plugin
<para>
LDAP authentication has been rewritten for the 2.18 release of
authentication architecture.
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>
</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>
<para>
The existing authentication
The existing authentication
...
@@ -1093,54 +1222,29 @@ man 5 crontab
...
@@ -1093,54 +1222,29 @@ man 5 crontab
<title>
Preventing untrusted Bugzilla content from executing malicious
<title>
Preventing untrusted Bugzilla content from executing malicious
Javascript code
</title>
Javascript code
</title>
<para>
It is possible for a Bugzilla to execute malicious Javascript
<para>
It is possible for a Bugzilla attachment to contain malicious
code. Due to internationalization concerns, we are unable to
Javascript
incorporate the code changes necessary to fulfill the CERT advisory
code, which would be executed in the domain of your Bugzilla, thereby
requirements mentioned in
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
<ulink
url=
"http://www.cert.org/tech_tips/malicious_code_mitigation.html/#3"
/>
.
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
If your installation is for an English speaking audience only, making the
an English speaking audience.
change below will prevent this problem.
</para>
</para>
<para>
Telling Bugzilla to output a charset as part of the HTTP header is
<para>
Simply locate the following line in
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
<filename>
Bugzilla/CGI.pm
</filename>
:
<filename>
Bugzilla/CGI.pm
</filename>
:
<programlisting>
<programlisting>
# Make sure that we don't send any charset headers
$self->charset('');
$self->charset('');
</programlisting>
</programlisting>
and change it to:
and change it to:
<programlisting>
<programlisting>
# Send all data using the ISO-8859-1 charset
$self->charset('ISO-8859-1');
$self->charset('ISO-8859-1');
</programlisting>
</programlisting>
</para>
</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>
<section
id=
"mod_perl"
xreflabel=
"Bugzilla and mod_perl"
>
<section
id=
"mod_perl"
xreflabel=
"Bugzilla and mod_perl"
>
...
@@ -1199,7 +1303,7 @@ man 5 crontab
...
@@ -1199,7 +1303,7 @@ man 5 crontab
<section
id=
"os-win32"
>
<section
id=
"os-win32"
>
<title>
Microsoft Windows
</title>
<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
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
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
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>
...
@@ -1259,12 +1363,9 @@ C:\perl> <command>ppm <module name></command>
<section
id=
"win32-code-changes"
>
<section
id=
"win32-code-changes"
>
<title>
Code changes required to run on win32
</title>
<title>
Code changes required to run on win32
</title>
<para>
Unfortunately, Bugzilla still doesn't run "out of the box" on
<para>
As Bugzilla still doesn't run "out of the box" on
Windows. There is work in progress to make this easier, but until that
Windows, code has to be modified. This section is an attempt to
happens code will have to be modified. This section is an attempt to
list the required changes.
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>
</para>
<section
id=
"win32-code-checksetup"
>
<section
id=
"win32-code-checksetup"
>
...
@@ -1297,8 +1398,8 @@ my $webservergid = '8'
...
@@ -1297,8 +1398,8 @@ my $webservergid = '8'
<para>
To make bug e-mail work on Win32 (until
<para>
To make bug e-mail work on Win32 (until
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=84876"
>
bug
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=84876"
>
bug
84876
</ulink>
lands), the
84876
</ulink>
lands), the
simplest way is to have
Net::SMTP installed and change this (in
simplest way is to have
the Net::SMTP Perl module installed and
<filename>
Bugzilla/BugMail.pm
</filename>
)
:
</para>
change this
:
</para>
<programlisting>
<programlisting>
open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
...
@@ -1452,217 +1553,270 @@ $smtp->quit;
...
@@ -1452,217 +1553,270 @@ $smtp->quit;
</section>
</section>
<section
id=
"
http
"
>
<section
id=
"
security
"
>
<title>
HTTP Server Configuration
</title>
<title>
Bugzilla Security
</title>
<para>
The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
<warning>
that can be configured to run
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts
<para>
Poorly-configured MySQL and Bugzilla installations have
should be able to handle Bugzilla. No matter what web server you choose, but
given attackers full access to systems in the past. Please take these
especially if you choose something other than Apache, you should be sure to read
guidelines seriously, even for Bugzilla machines hidden away behind
<xref
linkend=
"security-access"
/>
.
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>
</para>
</warning>
<para>
The plan for this section is to eventually document the specifics of how to lock
<section
id=
"security-networking"
>
down permissions on individual web servers.
<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>
</para>
</section>
<section
id=
"
http-apache
"
>
<section
id=
"
security-mysql
"
>
<title>
Apache
<productname>
httpd
</productname>
</title>
<title>
MySQL
</title>
<para>
As mentioned above, the Bugzilla Team recommends Apache for use
<para>
MySQL ships by default with many settings that should be changed.
with Bugzilla. You will have to make sure that Apache is properly
By defaults it allows anybody to connect from localhost without a
configured to run the Bugzilla CGI scripts. You also need to make sure
password and have full administrative capabilities. It also defaults to
that the
<filename>
.htaccess
</filename>
files created by
not have a root password (this is
<emphasis>
not
</emphasis>
the same as
<command>
./checksetup.pl
</command>
(shown in
<xref
linkend=
"http-apache-htaccess"
/>
the system root). Also, many installations default to running
for the curious) are allowed to override Apache's normal access
<application>
mysqld
</application>
as the system root.
permissions or else important password information may be exposed to the
Internet.
</para>
</para>
<para>
Many Apache installations are not configured to run scripts
<orderedlist>
anywhere but in the
<filename
class=
"directory"
>
cgi-bin
</filename>
<listitem>
directory; however, we recommend that Bugzilla not be installed in the
<para>
Consult the documentation that came with your system for
<filename
class=
"directory"
>
cgi-bin
</filename>
, otherwise the static
information on making
<application>
mysqld
</application>
run as an
files such as images and
<xref
linkend=
"gloss-javascript"
/>
unprivleged user.
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>
</listitem>
<para>
To allow files with a .cgi extension to be run, make sure the
<listitem>
following line exists and is uncommented:
</para>
<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>
<programlisting>
AddHandler cgi-script .cgi
<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>
</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>
To allow
<filename>
.htaccess
</filename>
files to override
<listitem>
permissions and .cgi files to run in the Bugzilla directory, make sure
<para>
If you run MySQL on the same machine as your httpd server, you
the following two lines are in a
<computeroutput>
Directory
</computeroutput>
should consider disabling networking from within MySQL by adding
directive that applies to the Bugzilla directory on your system
the following to your
<filename>
/etc/my.conf
</filename>
:
(either the Bugzilla directory or one of its parents).
</para>
</para>
<programlisting>
<programlisting>
Options +ExecCGI
[myslqd]
AllowOverride Limit
# Prevent network access to MySQL.
skip-networking
</programlisting>
</programlisting>
</listitem>
<note>
<listitem>
<para>
For more information on Apache and its directives, see the
<para>
You may also consider running MySQL, or even all of Bugzilla
glossary entry on
<xref
linkend=
"gloss-apache"
/>
.
in a chroot jail; however, instructions for doing that are beyond
the scope of this document.
</para>
</para>
</note>
</listitem>
<example
id=
"http-apache-htaccess"
>
<title><filename>
.htaccess
</filename>
files for Apache
</title>
<para><filename>
$BUGZILLA_HOME/.htaccess
</filename>
</orderedlist>
<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><filename>
$BUGZILLA_HOME/data/.htaccess
</filename>
</section>
<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>
</para>
<para><filename>
$BUGZILLA_HOME/data/webdot
</filename>
<section
id=
"security-daemon"
>
<programlisting>
<![CDATA[
<title>
Daemon Accounts
</title>
# 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>
</para>
<para><filename>
$BUGZILLA_HOME/Bugzilla/.htaccess
</filename>
<para>
Many daemons, such as Apache's httpd and MySQL's mysqld default to
<programlisting>
running as either
<quote>
root
</quote>
or
<quote>
nobody
</quote>
. Running
# nothing in this directory is retrievable unless overriden by an .htaccess
as
<quote>
root
</quote>
introduces obvious security problems, but the
# in a subdirectory
problems introduced by running everything as
<quote>
nobody
</quote>
may
deny from all
not be so obvious. Basically, if you're running every daemon as
</programlisting>
<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>
<para><filename>
$BUGZILLA_HOME/template/.htaccess
</filename>
<note>
<programlisting>
<para>
You will need to set the
<varname>
webservergroup
</varname>
to
# nothing in this directory is retrievable unless overriden by an .htaccess
the group you created for your webserver to run as in
# in a subdirectory
<filename>
localconfig
</filename>
. This will allow
deny from all
<command>
./checksetup.pl
</command>
to better adjust the file
</programlisting>
permissions on your Bugzilla install so as to not require making
anything world-writable.
</para>
</para>
</note>
</example>
</section>
</section>
<section
id=
"
http-ii
s"
>
<section
id=
"
security-acces
s"
>
<title>
Microsoft
<productname>
Internet Information Services
</productname>
</title>
<title>
Web Server Access Controls
</title>
<para>
If you need, or for some reason even want, to use Microsoft's
<para>
There are many files that are placed in the Bugzilla directory
<productname>
Internet Information Services
</productname>
or
area that should not be accessable from the web. Because of the way
<productname>
Personal Web Server
</productname>
you should be able
Bugzilla is currently laid out, the list of what should and should
to. You will need to configure them to know how to run CGI scripts,
not be accessible is rather complicated.
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>
<para>
Also, and this can't be stressed enough, make sure that files such as
<para>
Users of Apache don't need to worry about this, however, because
<filename>
localconfig
</filename>
and your
<filename
class=
"directory"
>
data
</filename>
Bugzilla ships with .htaccess files which restrict access to all the
directory are secured as described in
<xref
linkend=
"security-access"
/>
.
sensitive files in this section. Users of other webservers, read on
.
</para>
</para>
</section>
<itemizedlist
spacing=
"compact"
>
<listitem>
<section
id=
"http-aol"
>
<para>
In the main Bugzilla directory, you should:
</para>
<title>
AOL Server
</title>
<itemizedlist
spacing=
"compact"
>
<listitem>
<para>
Ben FrantzDale reported success using AOL Server with Bugzilla. He
<para>
Block:
reported his experience and what appears below is based on that.
<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>
</para>
</listitem>
</itemizedlist>
</listitem>
<para>
AOL Server will have to be configured to run
<listitem>
<glossterm
linkend=
"gloss-cgi"
>
CGI
</glossterm>
scripts, please consult
<para>
In
<filename
class=
"directory"
>
data
</filename>
:
</para>
the documentation that came with your server for more information on
<itemizedlist
spacing=
"compact"
>
how to do this.
<listitem>
<para>
Block everything
</para>
</listitem>
<listitem>
<para>
But allow:
<simplelist
type=
"inline"
>
<member><filename>
duplicates.rdf
</filename></member>
</simplelist>
</para>
</para>
</listitem>
</itemizedlist>
</listitem>
<para>
Because AOL Server doesn't support
<filename>
.htaccess
</filename>
<listitem>
files, you'll have to create a
<glossterm
linkend=
"gloss-tcl"
>
TCL
</glossterm>
<para>
In
<filename
class=
"directory"
>
data/webdot
</filename>
:
</para>
script. You should create an
<filename>
aolserver/modules/tcl/filter.tcl
</filename>
<itemizedlist
spacing=
"compact"
>
file (the filename shouldn't matter) with the following contents (change
<listitem>
<computeroutput>
/bugzilla/
</computeroutput>
to the web-based path to
<para>
If you use a remote webdot server:
</para>
your Bugzilla installation):
<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>
</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>
<programlisting>
<listitem>
ns_register_filter preauth GET /bugzilla/localconfig filter_deny
<para>
In
<filename
class=
"directory"
>
Bugzilla
</filename>
:
</para>
ns_register_filter preauth GET /bugzilla/localconfig~ filter_deny
<itemizedlist
spacing=
"compact"
>
ns_register_filter preauth GET /bugzilla/\#localconfig\# filter_deny
<listitem>
ns_register_filter preauth GET /bugzilla/*.pl filter_deny
<para>
Block everything
</para>
ns_register_filter preauth GET /bugzilla/syncshadowdb filter_deny
</listitem>
ns_register_filter preauth GET /bugzilla/runtests.sh filter_deny
</itemizedlist>
ns_register_filter preauth GET /bugzilla/data/* filter_deny
</listitem>
ns_register_filter preauth GET /bugzilla/template/* filter_deny
proc filter_deny { why } {
<listitem>
ns_log Notice "filter_deny"
<para>
In
<filename
class=
"directory"
>
template
</filename>
:
</para>
return "filter_return"
<itemizedlist
spacing=
"compact"
>
}
<listitem>
</programlisting>
<para>
Block everything
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<warning>
<para>
You should test to make sure that the files mentioned above are
<para>
This probably doesn't account for all possible editor backup
not accessible from the Internet, especially your
files so you may wish to add some additional variations of
<filename>
localconfig
</filename>
file which contains your database
<filename>
localconfig
</filename>
. For more information, see
password. To test, simply point your web browser at the file; for
<ulink
url=
"http://bugzilla.mozilla.org/show_bug.cgi?id=186383"
>
example, to test mozilla.org's installation, we'd try to access
bug 186383
</ulink>
or
<ulink
<ulink
url=
"http://bugzilla.mozilla.org/localconfig"
/>
. You should
url=
"http://online.securityfocus.com/bid/6501"
>
Bugtraq ID 6501
</ulink>
.
get a
<errorcode>
403
</errorcode>
<errorname>
Forbidden
</errorname>
error.
</para>
</para>
</warning>
<note>
<caution>
<para>
If you are using webdot from research.att.com (the default
<para>
Not following the instructions in this section, including
configuration for the
<option>
webdotbase
</option>
paramater), you
testing, may result in sensitive information being globally
will need to allow access to
<filename>
data/webdot/*.dot
</filename>
accessible.
for the reasearch.att.com machine.
</para>
</para>
<para>
If you are using a local installation of
<ulink
</caution>
url=
"http://www.graphviz.org"
>
GraphViz
</ulink>
, you will need to allow
everybody to access
<filename>
*.png
</filename>
,
<tip>
<filename>
*.gif
</filename>
,
<filename>
*.jpg
</filename>
, and
<para>
You should check
<xref
linkend=
"http"
/>
to see if instructions
<filename>
*.map
</filename>
in the
have been included for your web server. You should also compare those
<filename
class=
"directory"
>
data/webdot
</filename>
directory.
instructions with this list to make sure everything is properly
accounted for.
</para>
</para>
</note>
</tip>
</section>
</section>
</section>
</section>
<section
id=
"troubleshooting"
>
<section
id=
"troubleshooting"
>
...
...
docs/en/xml/integration.xml
View file @
3e7d0c08
...
@@ -70,7 +70,12 @@
...
@@ -70,7 +70,12 @@
xreflabel=
"Tinderbox, the Mozilla automated build management system"
>
xreflabel=
"Tinderbox, the Mozilla automated build management system"
>
<title>
Tinderbox/Tinderbox2
</title>
<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>
</section>
</section>
...
...
docs/en/xml/introduction.xml
View file @
3e7d0c08
<chapter
id=
"introduction"
>
<chapter
id=
"introduction"
>
<title>
Introduction
</title>
<title>
Introduction
</title>
<section
id=
"what
is
"
>
<section
id=
"what
-is-bugzilla
"
>
<title>
What is Bugzilla?
</title>
<title>
What is Bugzilla?
</title>
<para>
<para>
Bugzilla is a bug- or issue-tracking system. Bug-tracking
Bugzilla is a bug- or issue-tracking system. Bug-tracking
systems allow individual or groups of developers effectively to keep track
systems allow individual or groups of developers effectively to keep track
of outstanding problems with their product.
of outstanding problems with their products.
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.
</para>
</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:
<para>
Bugzilla boasts many advanced features. These include:
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
...
@@ -71,33 +92,6 @@
...
@@ -71,33 +92,6 @@
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
</para>
</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
<para>
Bugzilla is very adaptable to various situations. Known uses
currently include IT support queues, Systems Administration deployment
currently include IT support queues, Systems Administration deployment
...
@@ -110,20 +104,6 @@
...
@@ -110,20 +104,6 @@
<ulink
url=
"http://www.perforce.com"
>
Perforce SCM
</ulink>
, Bugzilla
<ulink
url=
"http://www.perforce.com"
>
Perforce SCM
</ulink>
, Bugzilla
provides a powerful, easy-to-use solution to configuration management and
provides a powerful, easy-to-use solution to configuration management and
replication problems.
</para>
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>
</section>
</chapter>
</chapter>
...
...
docs/en/xml/patches.xml
View file @
3e7d0c08
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<appendix
id=
"patches"
xreflabel=
"Useful Patches and Utilities for Bugzilla"
>
<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
<para>
There are a number of unofficial Bugzilla add-ons in the
some of the niftiest tricks here in this section.
</para>
<filename
class=
"directory"
>
$BUGZILLA_ROOT/contrib/
</filename>
directory. This section documents them.
</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>
<section
id=
"cmdline"
>
<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
command line. They live in the
<filename
class=
"directory"
>
contrib/cmdline
</filename>
<filename
class=
"directory"
>
contrib/cmdline
</filename>
directory. However, they
directory. However, they
...
...
docs/en/xml/using.xml
View file @
3e7d0c08
...
@@ -3,17 +3,13 @@
...
@@ -3,17 +3,13 @@
<chapter
id=
"using"
>
<chapter
id=
"using"
>
<title>
Using Bugzilla
</title>
<title>
Using Bugzilla
</title>
<section
id=
"how"
>
<title>
How do I use Bugzilla?
</title>
<para>
This section contains information for end-users of Bugzilla.
<para>
This section contains information for end-users of Bugzilla.
There is a Bugzilla test installation, called
There is a Bugzilla test installation, called
<ulink
url=
"http://landfill.bugzilla.org
/"
>
Landfill
</ulink>
,
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip
/"
>
Landfill
</ulink>
,
which you are welcome to play with (if it's up.)
which you are welcome to play with (if it's up.)
However, it does not necessarily
However, it does not necessarily
have all Bugzilla features enabled, and often runs cutting-edge versions
have all Bugzilla features enabled, and runs an up-to-the-minute version,
of Bugzilla for testing, so some things may work slightly differently
so some things may not quite work as this document describes.
</para>
than mentioned here.
</para>
<section
id=
"myaccount"
>
<section
id=
"myaccount"
>
<title>
Create a Bugzilla Account
</title>
<title>
Create a Bugzilla Account
</title>
...
@@ -39,16 +35,16 @@
...
@@ -39,16 +35,16 @@
<listitem>
<listitem>
<para>
Within moments, you should receive an email to the address
<para>
Within moments, you should receive an email to the address
you provided above
, which contains your login name (generally the
you provided
, which contains your login name (generally the
same as the email address), and a password you can use to access
same as the email address), and a password.
your account. This password is randomly generated, and
can be
This password is randomly generated, but
can be
changed to something more memorable.
</para>
changed to something more memorable.
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
Click the
<para>
Click the
<quote>
Log In
</quote>
<quote>
Log In
</quote>
link in the yellow area
at the bottom of the page in your browser,
link in the footer
at the bottom of the page in your browser,
enter your email address and password into the spaces provided, and
enter your email address and password into the spaces provided, and
click
click
<quote>
Login
</quote>
.
<quote>
Login
</quote>
.
...
@@ -57,9 +53,9 @@
...
@@ -57,9 +53,9 @@
</listitem>
</listitem>
</orderedlist>
</orderedlist>
<para>
You are now logged in. Bugzilla uses cookies for authentication
<para>
You are now logged in. Bugzilla uses cookies to remember you are
so, unless your IP address changes, you should not have to log in
logged in so, unless you have cookies disabled or your IP address changes,
again.
</para>
you should not have to log in
again.
</para>
</section>
</section>
<section
id=
"bug_page"
>
<section
id=
"bug_page"
>
...
@@ -271,26 +267,23 @@
...
@@ -271,26 +267,23 @@
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
/>
.
</para>
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
/>
.
</para>
<para>
The Search page has controls for selecting different possible
<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
values for all of the fields in a bug, as described above. For some
defined a search, you can either run it, or save it as a Remembered
fields, multiple values can be selected. In those cases, Bugzilla
Query, which can optionally appear in the footer of your pages.
</para>
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>
<para>
Highly advanced querying is done using Boolean Charts, which have
<para>
Once you've run a search, you can save it as a Saved Search, which
their own
appears in the page footer.
</para>
<ulink
url=
"http://landfill.bugzilla.org/bugzilla-tip/booleanchart.html"
>
context-sensitive help
</ulink>
.
</para>
<para>
Highly advanced querying is done using Boolean Charts. See the
Boolean Charts help link on the Search page for more information.
</para>
</section>
</section>
<section
id=
"list"
>
<section
id=
"list"
>
<title>
Bug Lists
</title>
<title>
Bug Lists
</title>
<para>
If you run a search, a list of matching bugs will be returned.
<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
</para>
running this search on a Bugzilla installation with a lot of
bugs!
</para>
<para>
The format of the list is configurable. For example, it can be
<para>
The format of the list is configurable. For example, it can be
sorted by clicking the column headings. Other useful features can be
sorted by clicking the column headings. Other useful features can be
...
@@ -373,6 +366,98 @@
...
@@ -373,6 +366,98 @@
</listitem>
</listitem>
</orderedlist>
</orderedlist>
</section>
</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=
"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>
<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>
<section
id=
"hintsandtips"
>
<section
id=
"hintsandtips"
>
...
@@ -383,15 +468,16 @@
...
@@ -383,15 +468,16 @@
<section>
<section>
<title>
Autolinkification
</title>
<title>
Autolinkification
</title>
<para>
Bugzilla comments are plain text - so
posting HTML will result
<para>
Bugzilla comments are plain text - so
typing
<
U
>
will
in literal HTML tags rather than being interpreted by a browser
.
produce less-than, U, greater-than rather than underlined text
.
However, Bugzilla will automatically make hyperlinks out of certain
However, Bugzilla will automatically make hyperlinks out of certain
sorts of text in comments. For example, the text
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"
/>
.
<ulink
url=
"http://www.bugzilla.org"
/>
.
Other strings which get linkified in the obvious manner are:
Other strings which get linkified in the obvious manner are:
<simplelist>
<simplelist>
<member>
bug 12345
</member>
<member>
bug 12345
</member>
<member>
comment 7
</member>
<member>
bug 23456, comment 53
</member>
<member>
bug 23456, comment 53
</member>
<member>
attachment 4321
</member>
<member>
attachment 4321
</member>
<member>
mailto:george@example.com
</member>
<member>
mailto:george@example.com
</member>
...
@@ -440,7 +526,7 @@
...
@@ -440,7 +526,7 @@
<para>
<para>
Don't use sigs in comments. Signing your name ("Bill") is acceptable,
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.
four line ASCII art creations are not.
</para>
</para>
</section>
</section>
...
@@ -494,7 +580,7 @@
...
@@ -494,7 +580,7 @@
<para>
Once you have logged in, you can customise various aspects of
<para>
Once you have logged in, you can customise various aspects of
Bugzilla via the "Edit prefs" link in the page footer.
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"
>
<section
id=
"accountsettings"
xreflabel=
"Account Settings"
>
<title>
Account Settings
</title>
<title>
Account Settings
</title>
...
@@ -516,9 +602,16 @@
...
@@ -516,9 +602,16 @@
<para>
On this tab you can reduce or increase the amount of email sent
<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
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
the bug and the change that was made to it.
client-side filtering using the X-Bugzilla-Reason header which Bugzilla
</para>
adds to all bugmail.)
</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
<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
"Users to watch" text entry box you can receive a copy of all the
...
@@ -533,15 +626,6 @@
...
@@ -533,15 +626,6 @@
</note>
</note>
</section>
</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"
>
<section
id=
"permissionsettings"
>
<title>
Permissions
</title>
<title>
Permissions
</title>
...
@@ -551,6 +635,11 @@
...
@@ -551,6 +635,11 @@
functions.
</para>
functions.
</para>
</section>
</section>
</section>
</section>
<section
id=
"reporting"
>
<title>
Reports
</title>
<para><emphasis>
To be written
</emphasis></para>
</section>
</chapter>
</chapter>
<!-- Keep this comment at the end of the file
<!-- 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