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