summaryrefslogtreecommitdiffstats
path: root/docs/sgml
diff options
context:
space:
mode:
authorjake%bugzilla.org <>2003-04-23 11:04:01 +0200
committerjake%bugzilla.org <>2003-04-23 11:04:01 +0200
commit78e29c8900fa96d67163a34a0c02c7cecb31b55f (patch)
treef4e97e5b99809faa9f3bc1c48f7a6adaefb6bbb7 /docs/sgml
parent58ab63119c6de5dbdfa74d268196da734e5c5fc2 (diff)
downloadbugzilla-78e29c8900fa96d67163a34a0c02c7cecb31b55f.tar.gz
bugzilla-78e29c8900fa96d67163a34a0c02c7cecb31b55f.tar.xz
The source files for the Bugzilla Guide have long been using the XML version of DocBook but still residing in the sgml/ directory with an extension of .sgml.
In an effort to maintain CVS history, the raw files were copied on the CVS server to the xml/ directory and renamed to have .xml for the extension; any checkins before this one did have the .sgml extension.
Diffstat (limited to 'docs/sgml')
-rw-r--r--docs/sgml/Bugzilla-Guide.sgml205
-rw-r--r--docs/sgml/about.sgml227
-rw-r--r--docs/sgml/administration.sgml1640
-rw-r--r--docs/sgml/conventions.sgml179
-rw-r--r--docs/sgml/database.sgml394
-rw-r--r--docs/sgml/dbschema.mysql1
-rw-r--r--docs/sgml/faq.sgml1321
-rw-r--r--docs/sgml/filetemp.patch18
-rw-r--r--docs/sgml/gd-makefile.patch22
-rw-r--r--docs/sgml/gfdl.sgml448
-rw-r--r--docs/sgml/glossary.sgml482
-rw-r--r--docs/sgml/index.sgml21
-rw-r--r--docs/sgml/installation.sgml1615
-rw-r--r--docs/sgml/integration.sgml101
-rw-r--r--docs/sgml/introduction.sgml149
-rw-r--r--docs/sgml/patches.sgml113
-rw-r--r--docs/sgml/requiredsoftware.sgml88
-rw-r--r--docs/sgml/using.sgml580
-rw-r--r--docs/sgml/variants.sgml123
19 files changed, 0 insertions, 7727 deletions
diff --git a/docs/sgml/Bugzilla-Guide.sgml b/docs/sgml/Bugzilla-Guide.sgml
deleted file mode 100644
index a9fcf097a..000000000
--- a/docs/sgml/Bugzilla-Guide.sgml
+++ /dev/null
@@ -1,205 +0,0 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" [
-
-<!-- Include macros -->
-<!ENTITY about SYSTEM "about.sgml">
-<!ENTITY conventions SYSTEM "conventions.sgml">
-<!ENTITY doc-index SYSTEM "index.sgml">
-<!ENTITY faq SYSTEM "faq.sgml">
-<!ENTITY gfdl SYSTEM "gfdl.sgml">
-<!ENTITY glossary SYSTEM "glossary.sgml">
-<!ENTITY installation SYSTEM "installation.sgml">
-<!ENTITY administration SYSTEM "administration.sgml">
-<!ENTITY using SYSTEM "using.sgml">
-<!ENTITY integration SYSTEM "integration.sgml">
-<!ENTITY future SYSTEM "future.sgml">
-<!ENTITY index SYSTEM "index.sgml">
-<!ENTITY database SYSTEM "database.sgml">
-<!ENTITY patches SYSTEM "patches.sgml">
-<!ENTITY variants SYSTEM "variants.sgml">
-<!ENTITY introduction SYSTEM "introduction.sgml">
-<!ENTITY revhistory SYSTEM "revhistory.sgml">
-
-<!-- Things to change for a stable release:
- * bz-ver to current stable
- * bz-nexver to next stable
- * bz-date to the release date
- * bz-devel to "IGNORE"
- - COMPILE DOCS AND CHECKIN -
- Also, tag and tarball before completing
- * bz-ver to devel version
- * bz-devel to "INCLUDE"
-
- For a devel release, simple bump bz-ver and bz-date
--->
-
-<!ENTITY bz-ver "2.17.4">
-<!ENTITY bz-nextver "2.18">
-<!ENTITY bz-date "2003-02-16">
-<!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&amp;component=Documentation'>Bugzilla Documentation</ulink>">
-<!ENTITY mysql "http://www.mysql.com/">
-<!ENTITY newest-perl-ver "5.8">
-
-<!-- For minimum versions -->
-<!ENTITY min-mysql-ver "3.23.41">
-<!ENTITY min-perl-ver "5.6">
-<!ENTITY min-template-ver "2.08">
-<!ENTITY min-file-temp-ver "1.804">
-<!ENTITY min-appconfig-ver "1.52">
-<!ENTITY min-text-wrap-ver "2001.0131">
-<!ENTITY min-file-spec-ver "0.82">
-<!ENTITY min-data-dumper-ver "any">
-<!ENTITY min-dbd-mysql-ver "2.1010">
-<!ENTITY min-dbi-ver "1.32">
-<!ENTITY min-date-format-ver "2.21">
-<!ENTITY min-cgi-ver "2.88">
-<!-- Optional modules -->
-<!ENTITY min-gd-ver "1.20">
-<!ENTITY min-gd-graph-ver "any">
-<!ENTITY min-gd-text-align-ver "any">
-<!ENTITY min-chart-base-ver "0.99c">
-<!ENTITY min-xml-parser-ver "any">
-<!ENTITY min-mime-parser-ver "any">
-
-]>
-
-
-<!-- Coding standards for this document
-
-* 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.sgml.
-* 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.
-* 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
-* All tags should be lowercase (needsfix)
-* 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.
-
--->
-
-<book id="index">
-
-<!-- Header -->
-
- <bookinfo>
- <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>
-
- <pubdate>&bz-date;</pubdate>
-
- <abstract>
- <para>
- This is the documentation for Bugzilla, the mozilla.org
- bug-tracking system.
- Bugzilla is an enterprise-class piece of software
- that powers issue-tracking for hundreds of
- organizations around the world, tracking millions of bugs.
- </para>
-
- <para>
- This documentation is maintained in DocBook 4.1.2 XML format.
- Changes are best submitted as plain text or SGML diffs, attached
- to a bug filed in the &bzg-bugs; compontent.
- </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>
- <keyword>Bugzilla</keyword>
- <keyword>Guide</keyword>
- <keyword>installation</keyword>
- <keyword>FAQ</keyword>
- <keyword>administration</keyword>
- <keyword>integration</keyword>
- <keyword>MySQL</keyword>
- <keyword>Mozilla</keyword>
- <keyword>webtools</keyword>
- </keywordset>
- </bookinfo>
-
-<!-- About This Guide -->
-&about;
-
-<!-- Introduction -->
-&introduction;
-
-<!-- Using Bugzilla -->
-&using;
-
-<!-- Installing Bugzilla -->
-&installation;
-
-<!-- Administering Bugzilla -->
-&administration;
-
-<!-- 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;
-
-<!-- Glossary -->
-&glossary;
-
-<!-- Index -->
-&index;
-
-
-</book>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
diff --git a/docs/sgml/about.sgml b/docs/sgml/about.sgml
deleted file mode 100644
index ccfcdd23e..000000000
--- a/docs/sgml/about.sgml
+++ /dev/null
@@ -1,227 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
-<!ENTITY conventions SYSTEM "conventions.sgml"> ] > -->
-
-<chapter id="about">
-<title>About This Guide</title>
-
- <section id="copyright">
- <title>Copyright Information</title>
- <blockquote>
- <attribution>Copyright (c) 2000-2003 Matthew P. Barnson and &bzg-auth;</attribution>
- <para>
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation
- License, Version 1.1 or any later version published by the
- Free Software Foundation; with no Invariant Sections, no
- Front-Cover Texts, and with no Back-Cover Texts. A copy of
- the license is included in <xref linkend="gfdl"/>.
- </para>
- </blockquote>
- <para>
- If you have any questions regarding this document, its
- copyright, or publishing this document in non-electronic form,
- please contact &bzg-auth;.
- </para>
- </section>
-
- <section id="disclaimer">
- <title>Disclaimer</title>
- <para>
- No liability for the contents of this document can be accepted.
- Use the concepts, examples, and other content at your own risk.
- 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
- pee on your furniture and clothing, and global thermonuclear
- war. Proceed with caution.
- </para>
- <para>
- All copyrights are held by their respective owners, unless
- specifically noted otherwise. Use of a term in this document
- should not be regarded as affecting the validity of any
- trademark or service mark.
- </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,
- 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
- your security needs are met.
- </para>
- </section>
-
-<!-- Section 2: New Versions -->
-
- <section id="newversions">
- <title>New Versions</title>
- <para>
- 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.
- ]]>
- 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">bugzilla.org</ulink>; 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>.
- </para>
- <para>
- The latest version of this document can always be checked out via CVS.
- Please follow the instructions available at
- <ulink url="http://www.mozilla.org/cvs.html">the Mozilla CVS page</ulink>,
- and check out the <filename>mozilla/webtools/bugzilla/docs/</filename>
- subtree.
- </para>
- <para>
- The Bugzilla Guide is currently only available in English.
- If you would like to volunteer to translate it, please contact
- <ulink url="mailto:justdave@syndicomm.com">Dave Miller</ulink>.
- </para>
- </section>
-
- <section id="credits">
- <title>Credits</title>
- <para>
- The people listed below have made enormous contributions to the
- creation of this Guide, through their writing, dedicated hacking efforts,
- numerous e-mail and IRC support sessions, and overall excellent
- 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>Ben FrantzDale</member>
- <member>Eric Hanson</member>
- <member>Gervase Markham</member>
- <member>Joe Robins</member>
- <member>Kevin Brannen</member>
- <member>Ron Teitelbaum</member>
- <member>Spencer Smith</member>
- <member>Zach Liption</member>
- </simplelist>
- .
- </para>
- </section>
-
- <!-- conventions used here (didn't want to give it a chapter of its own) -->
-&conventions;
- </chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End: -->
diff --git a/docs/sgml/administration.sgml b/docs/sgml/administration.sgml
deleted file mode 100644
index f04e2b5ce..000000000
--- a/docs/sgml/administration.sgml
+++ /dev/null
@@ -1,1640 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<chapter id="administration">
- <title>Administering Bugzilla</title>
-
- <section id="parameters">
- <title>Bugzilla Configuration</title>
-
- <para>Bugzilla is configured by changing various parameters, accessed
- from the "Edit parameters" link in the page footer. Here are
- some of the key parameters on that page. You should run down this
- list and set them appropriately after installing Bugzilla.</para>
-
- <indexterm>
- <primary>checklist</primary>
- </indexterm>
-
- <procedure>
- <step>
- <para>
- <command>maintainer</command>:
- The maintainer parameter is the email address of the person
- responsible for maintaining this
- Bugzilla installation. The address need not be that of a valid Bugzilla
- account.</para>
- </step>
-
- <step>
- <para>
- <command>urlbase</command>:
- This parameter defines the fully qualified domain name and web
- server path to your Bugzilla installation.</para>
-
- <para>For example, if your Bugzilla query page is
- <filename>http://www.foo.com/bugzilla/query.cgi</filename>,
- set your <quote>urlbase</quote>
- to <filename>http://www.foo.com/bugzilla/</filename>.</para>
- </step>
-
- <step>
- <para>
- <command>makeproductgroups</command>:
- This dictates whether or not to automatically create groups
- when new products are created.
- </para>
- </step>
-
- <step>
- <para>
- <command>useentrygroupdefault</command>:
- Bugzilla products can have a group associated with them, so that
- certain users can only see bugs in certain products. When this
- parameter is set to <quote>on</quote>, this
- causes the initial group controls on newly created products
- to place all newly-created bugs in the group
- having the same name as the product immediately.
- After a product is initially created, the group controls
- can be further adjusted without interference by
- this mechanism.</para>
- </step>
-
- <step>
- <para>
- <command>shadowdb</command>:
- You run into an interesting problem when Bugzilla reaches a
- high level of continuous activity. MySQL supports only table-level
- write locking. What this means is that if someone needs to make a
- change to a bug, they will lock the entire table until the operation
- is complete. Locking for write also blocks reads until the write is
- complete. Note that more recent versions of mysql support row level
- locking using different table types. These types are slower than the
- 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>
-
- <para>The <quote>shadowdb</quote>
- parameter was designed to get around this limitation. While only a
- single user is allowed to write to a table at a time, reads can
- continue unimpeded on a read-only shadow copy of the database.
- Although your database size will double, a shadow database can cause
- an enormous performance improvement when implemented on extremely
- high-traffic Bugzilla databases.</para>
-
- <para>
- As a guide, mozilla.org began needing
- <quote>shadowdb</quote>
- when they reached around 40,000 Bugzilla users with several hundred
- Bugzilla bug changes and comments per day.</para>
-
- <para>The value of the parameter defines the name of the
- shadow bug database. You will need to set the host and port settings
- from the params page, and set up replication in your database server
- so that updates reach this readonly mirror. Consult your database
- documentation for more detail.</para>
- </step>
-
- <step>
- <para>
- <command>shutdownhtml</command>:
-
- If you need to shut down Bugzilla to perform administration, enter
- some descriptive HTML here and anyone who tries to use Bugzilla will
- receive a page to that effect. Obviously, editparams.cgi will
- still be accessible so you can remove the HTML and re-enable Bugzilla.
- :-)
- </para>
- </step>
-
- <step>
- <para>
- <command>passwordmail</command>:
-
- Every time a user creates an account, the text of
- this parameter (with substitutions) is sent to the new user along with
- their password message.</para>
-
- <para>Add any text you wish to the "passwordmail" parameter box. For
- instance, many people choose to use this box to give a quick training
- blurb about how to use Bugzilla at your site.</para>
- </step>
-
-
- <step>
- <para>
- <command>movebugs</command>:
-
- This option is an undocumented feature to allow moving bugs
- between separate Bugzilla installations. You will need to understand
- the source code in order to use this feature. Please consult
- <filename>movebugs.pl</filename> in your Bugzilla source tree for
- further documentation, such as it is.
- </para>
- </step>
-
- <step>
- <para>
- <command>useqacontact</command>:
-
- This allows you to define an email address for each component, in
- addition
- to that of the default owner, who will be sent carbon copies of
- incoming bugs.</para>
- </step>
- <step>
- <para>
- <command>usestatuswhiteboard</command>:
- This defines whether you wish to have a free-form, overwritable field
- associated with each bug. The advantage of the Status Whiteboard is
- that it can be deleted or modified with ease, and provides an
- easily-searchable field for indexing some bugs that have some trait
- in common.
- </para>
- </step>
-
- <step>
- <para>
- <command>whinedays</command>:
- Set this to the number of days you want to let bugs go
- in the NEW or REOPENED state before notifying people they have
- untouched new bugs. If you do not plan to use this feature, simply do
- not set up the whining cron job described in the installation
- instructions, or set this value to "0" (never whine).</para>
- </step>
-
- <step>
- <para>
- <command>commenton*</command>:
- All these
- fields allow you to dictate what changes can pass without comment,
- and which must have a comment from the person who changed them.
- Often, administrators will allow users to add themselves to the CC
- list, accept bugs, or change the Status Whiteboard without adding a
- comment as to their reasons for the change, yet require that most
- other changes come with an explanation.</para>
-
- <para>Set the "commenton" options according to your site policy. It
- is a wise idea to require comments when users resolve, reassign, or
- reopen bugs at the very least.
- <note>
- <para>It is generally far better to require a developer comment
- when resolving bugs than not. Few things are more annoying to bug
- database users than having a developer mark a bug "fixed" without
- any comment as to what the fix was (or even that it was truly
- fixed!)</para>
- </note>
- </para>
- </step>
-
- <step>
- <para>
- <command>supportwatchers</command>:
-
- Turning on this option allows users to ask to receive copies of
- all a particular other user's bug email. This is, of
- course, subject to the groupset restrictions on the bug; if the
- <quote>watcher</quote>
- would not normally be allowed to view a bug, the watcher cannot get
- around the system by setting herself up to watch the bugs of someone
- with bugs outside her privileges. They would still only receive email
- updates for those bugs she could normally view.</para>
- </step>
- </procedure>
- </section>
-
- <section id="useradmin">
- <title>User Administration</title>
-
- <section id="defaultuser">
- <title>Creating the Default User</title>
-
- <para>When you first run checksetup.pl after installing Bugzilla, it
- will prompt you for the administrative username (email address) and
- password for this "super user". If for some reason you delete
- the "super user" account, re-running checksetup.pl will again prompt
- you for this username and password.</para>
-
- <tip>
- <para>If you wish to add more administrative users, add them to
- the "admin" group and, optionally, add edit the tweakparams, editusers,
- creategroups, editcomponents, and editkeywords groups to add the
- entire admin group to those groups.
- </para>
- </tip>
- </section>
-
- <section id="manageusers">
- <title>Managing Other Users</title>
-
- <section id="createnewusers">
- <title>Creating new users</title>
-
- <para>Your users can create their own user accounts by clicking the
- "New Account" link at the bottom of each page (assuming they
- aren't logged in as someone else already.) However, should you
- desire to create user accounts ahead of time, here is how you do
- it.</para>
-
- <orderedlist>
- <listitem>
- <para>After logging in, click the "Users" link at the footer of
- the query page, and then click "Add a new user".</para>
- </listitem>
-
- <listitem>
- <para>Fill out the form presented. This page is self-explanatory.
- When done, click "Submit".</para>
-
- <note>
- <para>Adding a user this way will
- <emphasis>not</emphasis>
-
- send an email informing them of their username and password.
- While useful for creating dummy accounts (watchers which
- shuttle mail to another system, for instance, or email
- addresses which are a mailing list), in general it is
- preferable to log out and use the
- <quote>New Account</quote>
-
- button to create users, as it will pre-populate all the
- required fields and also notify the user of her account name
- and password.</para>
- </note>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="modifyusers">
- <title>Modifying Users</title>
-
- <para>To see a specific user, search for their login name
- in the box provided on the "Edit Users" page. To see all users,
- leave the box blank.</para>
-
- <para>You can search in different ways the listbox to the right
- of the text entry box. You can match by
- case-insensitive substring (the default),
- regular expression, or a
- <emphasis>reverse</emphasis>
- regular expression match, which finds every user name which does NOT
- match the regular expression. (Please see
- the <command>man regexp</command>
- manual page for details on regular expression syntax.)
- </para>
-
- <para>Once you have found your user, you can change the following
- fields:</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Login Name</emphasis>:
- This is generally the user's full email address. However, if you
- have are using the emailsuffix Param, this may just be the user's
- login name. Note that users can now change their login names
- themselves (to any valid email address.)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Real Name</emphasis>: The user's real name. Note that
- Bugzilla does not require this to create an account.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Password</emphasis>:
- You can change the user's password here. Users can automatically
- request a new password, so you shouldn't need to do this often.
- If you want to disable an account, see Disable Text below.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Disable Text</emphasis>:
- If you type anything in this box, including just a space, the
- user is prevented from logging in, or making any changes to
- bugs via the web interface.
- The HTML you type in this box is presented to the user when
- they attempt to perform these actions, and should explain
- why the account was disabled.
- <warning>
- <para>Don't disable the administrator account!</para>
- </warning>
-
- <note>
- <para>The user can still submit bugs via
- the e-mail gateway, if you set it up, even if the disabled text
- field is filled in. The e-mail gateway should
- <emphasis>not</emphasis>
- be enabled for secure installations of Bugzilla.</para>
- </note>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>&lt;groupname&gt;</emphasis>:
- If you have created some groups, e.g. "securitysensitive", then
- checkboxes will appear here to allow you to add users to, or
- remove them from, these groups.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>canconfirm</emphasis>:
- This field is only used if you have enabled the "unconfirmed"
- status. If you enable this for a user,
- that user can then move bugs from "Unconfirmed" to a "Confirmed"
- status (e.g.: "New" status).</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>creategroups</emphasis>:
- This option will allow a user to create and destroy groups in
- Bugzilla.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>editbugs</emphasis>:
- Unless a user has this bit set, they can only edit those bugs
- for which they are the assignee or the reporter. Even if this
- option is unchecked, users can still add comments to bugs.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>editcomponents</emphasis>:
- This flag allows a user to create new products and components,
- as well as modify and destroy those that have no bugs associated
- with them. If a product or component has bugs associated with it,
- those bugs must be moved to a different product or component
- before Bugzilla will allow them to be destroyed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>editkeywords</emphasis>:
- If you use Bugzilla's keyword functionality, enabling this
- feature allows a user to create and destroy keywords. As always,
- the keywords for existing bugs containing the keyword the user
- wishes to destroy must be changed before Bugzilla will allow it
- to die.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>editusers</emphasis>:
- This flag allows a user to do what you're doing right now: edit
- other users. This will allow those with the right to do so to
- remove administrator privileges from other users or grant them to
- themselves. Enable with care.</para>
- </listitem>
-
-
- <listitem>
- <para>
- <emphasis>tweakparams</emphasis>:
- This flag allows a user to change Bugzilla's Params
- (using <filename>editparams.cgi</filename>.)</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>&lt;productname&gt;</emphasis>:
- This allows an administrator to specify the products in which
- a user can see bugs. The user must still have the
- "editbugs" privilege to edit bugs in these products.</para>
- </listitem>
- </itemizedlist>
- </section>
- </section>
- </section>
-
- <section id="programadmin">
- <title>Product, Component, Milestone, and Version Administration</title>
-
- <section id="products">
- <title>Products</title>
-
- <para>
- <glossterm linkend="gloss-product" baseform="product">
- Products</glossterm>
-
- are the broadest category in Bugzilla, and tend to represent real-world
- shipping products. E.g. if your company makes computer games,
- you should have one product per game, perhaps a "Common" product for
- units of technology used in multiple games, and maybe a few special
- products (Website, Administration...)</para>
-
- <para>Many of Bugzilla's settings are configurable on a per-product
- basis. The number of "votes" available to users is set per-product,
- as is the number of votes
- required to move a bug automatically from the UNCONFIRMED status to the
- NEW status.</para>
-
- <para>To create a new product:</para>
-
- <orderedlist>
- <listitem>
- <para>Select "products" from the footer</para>
-
- </listitem>
-
- <listitem>
- <para>Select the "Add" link in the bottom right</para>
- </listitem>
-
- <listitem>
- <para>Enter the name of the product and a description. The
- Description field may contain HTML.</para>
- </listitem>
- </orderedlist>
-
- <para>Don't worry about the "Closed for bug entry", "Maximum Votes
- per person", "Maximum votes a person can put on a single bug",
- "Number of votes a bug in this Product needs to automatically get out
- of the UNCOMFIRMED state", and "Version" options yet. We'll cover
- those in a few moments.
- </para>
- </section>
-
- <section id="components">
- <title>Components</title>
-
- <para>Components are subsections of a Product. E.g. the computer game
- you are designing may have a "UI"
- component, an "API" component, a "Sound System" component, and a
- "Plugins" component, each overseen by a different programmer. It
- often makes sense to divide Components in Bugzilla according to the
- natural divisions of responsibility within your Product or
- company.</para>
-
- <para>
- Each component has a owner and (if you turned it on in the parameters),
- a QA Contact. The owner should be the primary person who fixes bugs in
- that component. The QA Contact should be the person who will ensure
- these bugs are completely fixed. The Owner, QA Contact, and Reporter
- will get email when new bugs are created in this Component and when
- these bugs change. Default Owner and Default QA Contact fields only
- dictate the
- <emphasis>default assignments</emphasis>;
- these can be changed on bug submission, or at any later point in
- a bug's life.</para>
-
- <para>To create a new Component:</para>
-
- <orderedlist>
- <listitem>
- <para>Select the "Edit components" link from the "Edit product"
- page</para>
- </listitem>
-
- <listitem>
- <para>Select the "Add" link in the bottom right.</para>
- </listitem>
-
- <listitem>
- <para>Fill out the "Component" field, a short "Description",
- the "Initial Owner" and "Initial QA Contact" (if enabled.)
- The Component and Description fields may contain HTML;
- the "Initial Owner" field must be a login name
- already existing in the database.
- </para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="versions">
- <title>Versions</title>
-
- <para>Versions are the revisions of the product, such as "Flinders
- 3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select
- field; the usual practice is to select the most recent version with
- the bug.
- </para>
-
- <para>To create and edit Versions:</para>
-
- <orderedlist>
- <listitem>
- <para>From the "Edit product" screen, select "Edit Versions"</para>
- </listitem>
-
- <listitem>
- <para>You will notice that the product already has the default
- version "undefined". Click the "Add" link in the bottom right.</para>
- </listitem>
-
- <listitem>
- <para>Enter the name of the Version. This field takes text only.
- Then click the "Add" button.</para>
- </listitem>
-
- </orderedlist>
- </section>
-
- <section id="milestones">
- <title>Milestones</title>
-
- <para>Milestones are "targets" that you plan to get a bug fixed by. For
- example, you have a bug that you plan to fix for your 3.0 release, it
- would be assigned the milestone of 3.0.</para>
-
- <note>
- <para>Milestone options will only appear for a Product if you turned
- on the "usetargetmilestone" Param in the "Edit Parameters" screen.
- </para>
- </note>
-
- <para>To create new Milestones, set Default Milestones, and set
- Milestone URL:</para>
-
- <orderedlist>
- <listitem>
- <para>Select "Edit milestones" from the "Edit product" page.</para>
- </listitem>
-
- <listitem>
- <para>Select "Add" in the bottom right corner.
- text</para>
- </listitem>
-
- <listitem>
- <para>Enter the name of the Milestone in the "Milestone" field. You
- can optionally set the "sortkey", which is a positive or negative
- number (-255 to 255) that defines where in the list this particular
- milestone appears. This is because milestones often do not
- occur in alphanumeric order For example, "Future" might be
- after "Release 1.2". Select "Add".</para>
- </listitem>
-
- <listitem>
- <para>From the Edit product screen, you can enter the URL of a
- page which gives information about your milestones and what
- they mean. </para>
-
- <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>
-
- <para>Voting allows users to be given a pot of votes which they can allocate
- to bugs, to indicate that they'd like them fixed.
- This allows developers to gauge
- user need for a particular enhancement or bugfix. By allowing bugs with
- a certain number of votes to automatically move from "UNCONFIRMED" to
- "NEW", users of the bug system can help high-priority bugs garner
- attention so they don't sit for a long time awaiting triage.</para>
-
- <para>To modify Voting settings:</para>
-
- <orderedlist>
- <listitem>
- <para>Navigate to the "Edit product" screen for the Product you
- wish to modify</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Maximum Votes per person</emphasis>:
- Setting this field to "0" disables voting.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Maximum Votes a person can put on a single
- bug"</emphasis>:
- It should probably be some number lower than the
- "Maximum votes per person". Don't set this field to "0" if
- "Maximum votes per person" is non-zero; that doesn't make
- any sense.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Number of votes a bug in this product needs to
- automatically get out of the UNCONFIRMED state</emphasis>:
- Setting this field to "0" disables the automatic move of
- bugs from UNCONFIRMED to NEW.
- </para>
- </listitem>
-
- <listitem>
- <para>Once you have adjusted the values to your preference, click
- "Update".</para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="groups">
- <title>Groups and Group Security</title>
-
- <para>Groups allow the administrator
- to isolate bugs or products that should only be seen by certain people.
- The association between products and groups is controlled from
- the product edit page under <quote>Edit Group Controls.</quote>
- </para>
-
- <para>
- If the makeproductgroups param is on, a new group will be automatically
- created for every new product.
- </para>
-
- <para>
- On the product edit page, there is a page to edit the
- <quote>Group Controls</quote>
- for a product and determine which groups are applicable, default,
- and mandatory for each product as well as controlling entry
- for each product and being able to set bugs in a product to be
- totally read-only unless some group restrictions are met.
- </para>
-
- <para>
- For each group, it is possible to specify if membership in that
- group is...
- </para>
- <orderedlist>
- <listitem>
- <para>
- required for bug entry,
- </para>
- </listitem>
- <listitem>
- <para>
- Not applicable to this product(NA),
- a possible restriction for a member of the
- group to place on a bug in this product(Shown),
- a default restriction for a member of the
- group to place on a bug in this product(Default),
- or a mandatory restriction to be placed on bugs
- in this product(Mandatory).
- </para>
- </listitem>
- <listitem>
- <para>
- Not applicable by non-members to this product(NA),
- a possible restriction for a non-member of the
- group to place on a bug in this product(Shown),
- a default restriction for a non-member of the
- group to place on a bug in this product(Default),
- or a mandatory restriction to be placed on bugs
- in this product when entered by a non-member(Mandatory).
- </para>
- </listitem>
- <listitem>
- <para>
- required in order to make <emphasis>any</emphasis> change
- to bugs in this product <emphasis>including comments.</emphasis>
- </para>
- </listitem>
- </orderedlist>
-
- <para>To create Groups:</para>
-
- <orderedlist>
- <listitem>
- <para>Select the <quote>groups</quote>
- link in the footer.</para>
- </listitem>
-
- <listitem>
- <para>Take a moment to understand the instructions on the <quote>Edit
- Groups</quote> screen, then select the <quote>Add Group</quote> link.</para>
- </listitem>
-
- <listitem>
- <para>Fill out the <quote>Group</quote>, <quote>Description</quote>,
- and <quote>User RegExp</quote> fields.
- <quote>User RegExp</quote> allows you to automatically
- 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
- '@mycompany\.com$' as the regexp.</para>
- </warning>
- </listitem>
- <listitem>
- <para>After you add your new group, edit the new group. On the
- edit page, you can specify other groups that should be included
- in this group and which groups should be permitted to add and delete
- users from this group.</para>
- </listitem>
- </orderedlist>
-
- <para>
- Note that group permissions are such that you need to be a member
- of <emphasis>all</emphasis> the groups a bug is in, for whatever
- reason, to see that bug. Similarly, you must be a member
- of <emphasis>all</emphasis> of the entry groups for a product
- to add bugs to a product and you must be a member
- of <emphasis>all</emphasis> of the canedit groups for a product
- in order to make <emphasis>any</emphasis> change to bugs in that
- product.
- </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&gt;</prompt> DELETE FROM user WHERE user = '';
-<prompt>mysql&gt;</prompt> UPDATE user SET password = password('<replaceable>new_password</replaceable>') WHERE user = 'root';
-<prompt>mysql&gt;</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 &lt;, and the data was not intended to be HTML, they need to be
- converted to entity form, ie &amp;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 &amp;, 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>&amp;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>&lt;stubname&gt;-&lt;formatname&gt;.&lt;contenttypetag&gt;.tmpl</filename>.
- Try out the template by calling the CGI as
- <filename>&lt;cginame&gt;.cgi?format=&lt;formatname&gt;</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-&lt;formatname&gt;.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>&lt;input type="text" name="buildid" size="30"&gt;</programlisting>
- and then your comment.txt.tmpl had
- <programlisting>BuildID: [% form.buildid %]</programlisting>
- then
- <programlisting>BuildID: 20020303</programlisting>
- would appear in the initial checkin comment.
- </para>
- </section>
-
- </section>
-
- <section id="cust-change-permissions">
- <title>Change Permission Customization</title>
-
- <warning>
- <para>
- This feature should be considered experimental; the Bugzilla code you
- will be changing is not stable, and could change or move between
- versions. Be aware that if you make modifications to it, you may have
- to re-make them or port them if Bugzilla changes internally between
- versions.
- </para>
- </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.
- </para>
-
- <itemizedlist>
- <listitem>
- <para>If the new version is a revision or a new point release</para>
- </listitem>
- <listitem>
- <para>How many, if any, local changes have been made</para>
- </listitem>
- </itemizedlist>
-
- <para>There are also three different methods to upgrade your installation.
- </para>
-
- <orderedlist>
- <listitem>
- <para>Using CVS (<xref linkend="upgrade-cvs"/>)</para>
- </listitem>
- <listitem>
- <para>Downloading a new tarball (<xref linkend="upgrade-tarball"/>)</para>
- </listitem>
- <listitem>
- <para>Applying the relevant patches (<xref linkend="upgrade-patches"/>)</para>
- </listitem>
- </orderedlist>
-
- <para>Which options are available to you may depend on how large a jump
- you are making and/or your network configuration.
- </para>
-
- <para>Revisions are normally released to fix security vulnerabilities
- and are distinguished by an increase in the third number. For example,
- when 2.16.2 was released, it was a revision to 2.16.1.
- </para>
-
- <para>Point releases are normally released when the Bugzilla team feels
- that there has been a significant amount of progress made between the
- last point release and the current time. These are often proceeded by a
- stabilization period and release candidates, however the use of
- development versions or release candidates is beyond the scope of this
- document. Point releases can be distinguished by an increase in the
- second number, or minor version. For example, 2.16.2 is a newer point
- release than 2.14.5.
- </para>
-
- <para>The examples in this section are written as if you were updating
- to version 2.16.2. The procedures are the same regardless if you are
- updating to a new point release or a new revision. However, the chance
- of running into trouble increases when upgrading to a new point release,
- escpecially if you've made local changes.
- </para>
-
- <para>These examples also assume that your Bugzilla installation is at
- <filename>/var/www/html/bugzilla</filename>. If that is not the case,
- simply substitute the proper paths where appropriate.
- </para>
-
- <example id="upgrade-cvs">
- <title>Upgrading using CVS</title>
-
- <para>Every release of Bugzilla, whether it is a revision or a point
- release, is tagged in CVS. Also, every tarball we have distributed
- since version 2.12 has been primed for using CVS. This does, however,
- require that you are able to access cvs-mirror.mozilla.org on port
- 2401.
-
- <tip>
- <para>If you can do this, updating using CVS is probably the most
- painless method, especially if you have a lot of local changes.
- </para>
- </tip>
- </para>
-
- <programlisting>
-bash$ <command>cd /var/www/html/bugzilla</command>
-bash$ <command>cvs login</command>
-Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot
-CVS password: <command>anonymous</command>
-bash$ <command>cvs -q update -r BUGZILLA-2_16_2 -dP</command>
-P checksetup.pl
-P collectstats.pl
-P globals.pl
-P docs/rel_notes.txt
-P template/en/default/list/quips.html.tmpl
- </programlisting>
-
- <para>
- <caution>
- <para>If a line in the output from <command>cvs update</command>
- begins with a <computeroutput>C</computeroutput> that represents a
- file with local changes that CVS was unable to properly merge. You
- need to resolve these conflicts manually before Bugzilla (or at
- least the portion using that file) will be usable.
- </para>
- </caution>
-
- <note>
- <para>You also need to run <command>./checksetup.pl</command>
- before your Bugzilla upgrade will be complete.
- </para>
- </note>
- </para>
- </example>
-
- <example id="upgrade-tarball">
- <title>Upgrading using the tarball</title>
-
- <para>If you are unable or unwilling to use CVS, another option that's
- always available is to download the latest tarball. This is the most
- difficult option to use, especially if you have local changes.
- </para>
-
- <programlisting>
-bash$ <command>cd /var/www/html</command>
-bash$ <command>wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.2.tar.gz</command>
-<emphasis>Output omitted</emphasis>
-bash$ <command>tar xzvf bugzilla-2.16.2.tar.gz</command>
-bugzilla-2.16.2/
-bugzilla-2.16.2/.cvsignore
-bugzilla-2.16.2/1x1.gif
-<emphasis>Output truncated</emphasis>
-bash$ <command>cd bugzilla-2.16.2</command>
-bash$ <command>cp ../bugzilla/localconfig* .</command>
-bash$ <command>cp -r ../bugzilla/data .</command>
-bash$ <command>cd ..</command>
-bash$ <command>mv bugzilla bugzilla.old</command>
-bash$ <command>mv bugzilla-2.16.2 bugzilla</command>
-bash$ <command>cd bugzilla</command>
-bash$ <command>./checksetup.pl</command>
-<emphasis>Output omitted</emphasis>
- </programlisting>
-
- <para>
- <warning>
- <para>The <command>cp</command> commands both end with periods which
- is a very important detail, it tells the shell that the destination
- directory is the current working directory. Also, the period at the
- beginning of the <command>./checksetup.pl</command> is important and
- can not be omitted.
- </para>
- </warning>
-
- <note>
- <para>You will now have to reapply any changes you have made to your
- local installation manually.
- </para>
- </note>
- </para>
- </example>
-
- <example id="upgrade-patches">
- <title>Upgrading using patches</title>
-
- <para>The Bugzilla team will normally make a patch file available for
- 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 theorectically 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.
- This would also make it more difficult to upgrade in the future.
- </para>
-
- <programlisting>
-bash$ <command>cd /var/www/html/bugzilla</command>
-bash$ <command>wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.1-to-2.16.2.diff.gz</command>
-<emphasis>Output omitted</emphasis>
-bash$ <command>gunzip bugzilla-2.16.1-to-2.16.2.diff.gz</command>
-bash$ <command>patch -p1 &lt; bugzilla-2.16.1-to-2.16.2.diff</command>
-patching file checksetup.pl
-patching file collectstats.pl
-patching file globals.pl
- </programlisting>
-
- <para>
- <caution>
- <para>If you do this, beware that this doesn't change the entires in
- your <filename id="dir">CVS</filename> directory so it may make
- updates using CVS (<xref linkend="upgrade-cvs"/>) more difficult in the
- future.
- </para>
- </caution>
- </para>
- </example>
-
- </section>
-
- <!-- Integrating Bugzilla with Third-Party Tools -->
- &integration;
-
-</chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/conventions.sgml b/docs/sgml/conventions.sgml
deleted file mode 100644
index 5e761d9f4..000000000
--- a/docs/sgml/conventions.sgml
+++ /dev/null
@@ -1,179 +0,0 @@
-<!-- <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<section id="conventions">
- <title>Document Conventions</title>
-
- <indexterm zone="conventions">
- <primary>conventions</primary>
- </indexterm>
-
- <para>This document uses the following conventions:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Descriptions</entry>
-
- <entry>Appearance</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Warnings</entry>
-
- <entry>
- <caution>
- <para>Don't run with scissors!</para>
- </caution>
- </entry>
- </row>
-
- <row>
- <entry>Hint</entry>
-
- <entry>
- <tip>
- <para>Would you like a breath mint?</para>
- </tip>
- </entry>
- </row>
-
- <row>
- <entry>Notes</entry>
-
- <entry>
- <note>
- <para>Dear John...</para>
- </note>
- </entry>
- </row>
-
- <row>
- <entry>Information requiring special attention</entry>
-
- <entry>
- <warning>
- <para>Read this or the cat gets it.</para>
- </warning>
- </entry>
- </row>
-
- <row>
- <entry>File Names</entry>
-
- <entry>
- <filename>filename</filename>
- </entry>
- </row>
-
- <row>
- <entry>Directory Names</entry>
-
- <entry>
- <filename class="directory">directory</filename>
- </entry>
- </row>
-
- <row>
- <entry>Commands to be typed</entry>
-
- <entry>
- <command>command</command>
- </entry>
- </row>
-
- <row>
- <entry>Applications Names</entry>
-
- <entry>
- <application>application</application>
- </entry>
- </row>
-
- <row>
- <entry>
- <foreignphrase>Prompt</foreignphrase>
-
- of users command under bash shell</entry>
-
- <entry>bash$</entry>
- </row>
-
- <row>
- <entry>
- <foreignphrase>Prompt</foreignphrase>
-
- of root users command under bash shell</entry>
-
- <entry>bash#</entry>
- </row>
-
- <row>
- <entry>
- <foreignphrase>Prompt</foreignphrase>
-
- of user command under tcsh shell</entry>
-
- <entry>tcsh$</entry>
- </row>
-
- <row>
- <entry>Environment Variables</entry>
-
- <entry>
- <envar>VARIABLE</envar>
- </entry>
- </row>
-
- <row>
- <entry>Emphasized word</entry>
-
- <entry>
- <emphasis>word</emphasis>
- </entry>
- </row>
-
- <row>
- <entry>Term found in the glossary</entry>
-
- <entry>
- <glossterm linkend="gloss-bugzilla">Bugzilla</glossterm>
- </entry>
- </row>
-
- <row>
- <entry>Code Example</entry>
-
- <entry>
- <programlisting><sgmltag class="starttag">para</sgmltag>
-Beginning and end of paragraph
-<sgmltag class="endtag">para</sgmltag></programlisting>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-</section>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/database.sgml b/docs/sgml/database.sgml
deleted file mode 100644
index d32bb57cc..000000000
--- a/docs/sgml/database.sgml
+++ /dev/null
@@ -1,394 +0,0 @@
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="database">
- <title>The Bugzilla Database</title>
-
- <note>
- <para>This document really needs to be updated with more fleshed out
- information about primary keys, interrelationships, and maybe some nifty
- tables to document dependencies. Any takers?</para>
- </note>
-
- <section id="dbmodify">
- <title>Modifying Your Running System</title>
-
- <para>Bugzilla optimizes database lookups by storing all relatively
- static information in the
- <filename>versioncache</filename> file, located in the
- <filename class="directory">data/</filename>
- subdirectory under your installation directory.</para>
-
- <para>If you make a change to the structural data in your database (the
- versions table for example), or to the
- <quote>constants</quote>
-
- encoded in <filename>defparams.pl</filename>, you will need to remove
- the cached content from the data directory (by doing a
- <quote>rm data/versioncache</quote>
-
- ), or your changes won't show up.</para>
-
- <para> <filename>versioncache</filename>
- gets automatically regenerated whenever it's more than
- an hour old, so Bugzilla will eventually notice your changes by itself,
- but generally you want it to notice right away, so that you can test
- things.</para>
- </section>
-
- <section id="dbdoc">
- <title>MySQL Bugzilla Database Introduction</title>
-
- <para>This information comes straight from my life. I was forced to learn
- how Bugzilla organizes database because of nitpicky requests from users
- for tiny changes in wording, rather than having people re-educate
- themselves or figure out how to work our procedures around the tool. It
- sucks, but it can and will happen to you, so learn how the schema works
- and deal with it when it comes.</para>
-
- <para>So, here you are with your brand-new installation of Bugzilla.
- You've got MySQL set up, Apache working right, Perl DBI and DBD talking
- to the database flawlessly. Maybe you've even entered a few test bugs to
- make sure email's working; people seem to be notified of new bugs and
- changes, and you can enter and edit bugs to your heart's content. Perhaps
- you've gone through the trouble of setting up a gateway for people to
- submit bugs to your database via email, have had a few people test it,
- and received rave reviews from your beta testers.</para>
-
- <para>What's the next thing you do? Outline a training strategy for your
- development team, of course, and bring them up to speed on the new tool
- you've labored over for hours.</para>
-
- <para>Your first training session starts off very well! You have a
- captive audience which seems enraptured by the efficiency embodied in
- this thing called "Bugzilla". You are caught up describing the nifty
- features, how people can save favorite queries in the database, set them
- up as headers and footers on their pages, customize their layouts,
- generate reports, track status with greater efficiency than ever before,
- leap tall buildings with a single bound and rescue Jane from the clutches
- of Certain Death!</para>
-
- <para>But Certain Death speaks up -- a tiny voice, from the dark corners
- of the conference room. "I have a concern," the voice hisses from the
- darkness, "about the use of the word 'verified'.</para>
-
- <para>The room, previously filled with happy chatter, lapses into
- reverential silence as Certain Death (better known as the Vice President
- of Software Engineering) continues. "You see, for two years we've used
- the word 'verified' to indicate that a developer or quality assurance
- engineer has confirmed that, in fact, a bug is valid. I don't want to
- lose two years of training to a new software product. You need to change
- the bug status of 'verified' to 'approved' as soon as possible. To avoid
- confusion, of course."</para>
-
- <para>Oh no! Terror strikes your heart, as you find yourself mumbling
- "yes, yes, I don't think that would be a problem," You review the changes
- with Certain Death, and continue to jabber on, "no, it's not too big a
- change. I mean, we have the source code, right? You know, 'Use the
- Source, Luke' and all that... no problem," All the while you quiver
- inside like a beached jellyfish bubbling, burbling, and boiling on a hot
- Jamaican sand dune...</para>
-
- <para>Thus begins your adventure into the heart of Bugzilla. You've been
- forced to learn about non-portable enum() fields, varchar columns, and
- tinyint definitions. The Adventure Awaits You!</para>
-
- <section>
- <title>Bugzilla Database Basics</title>
-
- <para>If you were like me, at this point you're totally clueless about
- the internals of MySQL, and if it weren't for this executive order from
- the Vice President you couldn't care less about the difference between
- a
- <quote>bigint</quote>
-
- and a
- <quote>tinyint</quote>
-
- entry in MySQL. I recommend you refer to the MySQL documentation,
- available at
- <ulink url="http://www.mysql.com/doc.html">MySQL.com</ulink>
-
- . Below are the basics you need to know about the Bugzilla database.
- Check the chart above for more details.</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>To connect to your database:</para>
-
- <para>
- <prompt>bash#</prompt>
-
- <command>mysql</command>
-
- <parameter>-u root</parameter>
- </para>
-
- <para>If this works without asking you for a password,
- <emphasis>shame on you</emphasis>
-
- ! You should have locked your security down like the installation
- instructions told you to. You can find details on locking down
- your database in the Bugzilla FAQ in this directory (under
- "Security"), or more robust security generalities in the
- <ulink url="http://www.mysql.com/php/manual.php3?section=Privilege_system">MySQL
- searchable documentation</ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>You should now be at a prompt that looks like this:</para>
-
- <para>
- <prompt>mysql&gt;</prompt>
- </para>
-
- <para>At the prompt, if
- <quote>bugs</quote>
-
- is the name you chose in the
- <filename>localconfig</filename>
-
- file for your Bugzilla database, type:</para>
-
- <para>
- <prompt>mysql</prompt>
-
- <command>use bugs;</command>
- </para>
-
- </listitem>
- </orderedlist>
- </para>
-
- <section>
- <title>Bugzilla Database Tables</title>
-
- <para>Imagine your MySQL database as a series of spreadsheets, and
- you won't be too far off. If you use this command:</para>
-
- <para>
- <prompt>mysql&gt;</prompt>
- <command>show tables from bugs;</command>
- </para>
-
- <para>you'll be able to see the names of all the
- <quote>spreadsheets</quote>
- (tables) in your database.</para>
-
- <para>From the command issued above, ou should have some
- output that looks like this:
-<programlisting>
-+-------------------+
-| Tables in bugs |
-+-------------------+
-| attachments |
-| bugs |
-| bugs_activity |
-| cc |
-| components |
-| dependencies |
-| fielddefs |
-| groups |
-| keyworddefs |
-| keywords |
-| logincookies |
-| longdescs |
-| milestones |
-| namedqueries |
-| products |
-| profiles |
-| profiles_activity |
-| tokens |
-| versions |
-| votes |
-| watch |
-+-------------------+
-</programlisting>
-</para>
-
-<literallayout>
- Here's an overview of what each table does. Most columns in each table have
-descriptive names that make it fairly trivial to figure out their jobs.
-
-attachments: This table stores all attachments to bugs. It tends to be your
-largest table, yet also generally has the fewest entries because file
-attachments are so (relatively) large.
-
-bugs: This is the core of your system. The bugs table stores most of the
-current information about a bug, with the exception of the info stored in the
-other tables.
-
-bugs_activity: This stores information regarding what changes are made to bugs
-when -- a history file.
-
-cc: This tiny table simply stores all the CC information for any bug which has
-any entries in the CC field of the bug. Note that, like most other tables in
-Bugzilla, it does not refer to users by their user names, but by their unique
-userid, stored as a primary key in the profiles table.
-
-components: This stores the programs and components (or products and
-components, in newer Bugzilla parlance) for Bugzilla. Curiously, the "program"
-(product) field is the full name of the product, rather than some other unique
-identifier, like bug_id and user_id are elsewhere in the database.
-
-dependencies: Stores data about those cool dependency trees.
-
-fielddefs: A nifty table that defines other tables. For instance, when you
-submit a form that changes the value of "AssignedTo" this table allows
-translation to the actual field name "assigned_to" for entry into MySQL.
-
-groups: defines bitmasks for groups. A bitmask is a number that can uniquely
-identify group memberships. For instance, say the group that is allowed to
-tweak parameters is assigned a value of "1", the group that is allowed to edit
-users is assigned a "2", and the group that is allowed to create new groups is
-assigned the bitmask of "4". By uniquely combining the group bitmasks (much
-like the chmod command in UNIX,) you can identify a user is allowed to tweak
-parameters and create groups, but not edit users, by giving him a bitmask of
-"5", or a user allowed to edit users and create groups, but not tweak
-parameters, by giving him a bitmask of "6" Simple, huh?
- If this makes no sense to you, try this at the mysql prompt:
-mysql> select * from groups;
- You'll see the list, it makes much more sense that way.
-
-keyworddefs: Definitions of keywords to be used
-
-keywords: Unlike what you'd think, this table holds which keywords are
-associated with which bug id's.
-
-logincookies: This stores every login cookie ever assigned to you for every
-machine you've ever logged into Bugzilla from. Curiously, it never does any
-housecleaning -- I see cookies in this file I've not used for months. However,
-since Bugzilla never expires your cookie (for convenience' sake), it makes
-sense.
-
-longdescs: The meat of bugzilla -- here is where all user comments are stored!
-You've only got 2^24 bytes per comment (it's a mediumtext field), so speak
-sparingly -- that's only the amount of space the Old Testament from the Bible
-would take (uncompressed, 16 megabytes). Each comment is keyed to the
-bug_id to which it's attached, so the order is necessarily chronological, for
-comments are played back in the order in which they are received.
-
-milestones: Interesting that milestones are associated with a specific product
-in this table, but Bugzilla does not yet support differing milestones by
-product through the standard configuration interfaces.
-
-namedqueries: This is where everybody stores their "custom queries". Very
-cool feature; it beats the tar out of having to bookmark each cool query you
-construct.
-
-products: What products you have, whether new bug entries are allowed for the
-product, what milestone you're working toward on that product, votes, etc. It
-will be nice when the components table supports these same features, so you
-could close a particular component for bug entry without having to close an
-entire product...
-
-profiles: Ahh, so you were wondering where your precious user information was
-stored? Here it is! With the passwords in plain text for all to see! (but
-sshh... don't tell your users!)
-
-profiles_activity: Need to know who did what when to who's profile? This'll
-tell you, it's a pretty complete history.
-
-versions: Version information for every product
-
-votes: Who voted for what when
-
-watch: Who (according to userid) is watching who's bugs (according to their
-userid).
-
-
-===
-THE DETAILS
-===
-
- Ahh, so you're wondering just what to do with the information above? At the
-mysql prompt, you can view any information about the columns in a table with
-this command (where "table" is the name of the table you wish to view):
-
-mysql> show columns from table;
-
- You can also view all the data in a table with this command:
-
-mysql> select * from table;
-
- -- note: this is a very bad idea to do on, for instance, the "bugs" table if
-you have 50,000 bugs. You'll be sitting there a while until you ctrl-c or
-50,000 bugs play across your screen.
-
- You can limit the display from above a little with the command, where
-"column" is the name of the column for which you wish to restrict information:
-
-mysql> select * from table where (column = "some info");
-
- -- or the reverse of this
-
-mysql> select * from table where (column != "some info");
-
- Let's take our example from the introduction, and assume you need to change
-the word "verified" to "approved" in the resolution field. We know from the
-above information that the resolution is likely to be stored in the "bugs"
-table. Note we'll need to change a little perl code as well as this database
-change, but I won't plunge into that in this document. Let's verify the
-information is stored in the "bugs" table:
-
-mysql> show columns from bugs
-
- (exceedingly long output truncated here)
-| bug_status| enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL | UNCONFIRMED||
-
- Sorry about that long line. We see from this that the "bug status" column is
-an "enum field", which is a MySQL peculiarity where a string type field can
-only have certain types of entries. While I think this is very cool, it's not
-standard SQL. Anyway, we need to add the possible enum field entry
-'APPROVED' by altering the "bugs" table.
-
-mysql> ALTER table bugs CHANGE bug_status bug_status
- -> enum("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED",
- -> "VERIFIED", "APPROVED", "CLOSED") not null;
-
- (note we can take three lines or more -- whatever you put in before the
-semicolon is evaluated as a single expression)
-
-Now if you do this:
-
-mysql> show columns from bugs;
-
- you'll see that the bug_status field has an extra "APPROVED" enum that's
-available! Cool thing, too, is that this is reflected on your query page as
-well -- you can query by the new status. But how's it fit into the existing
-scheme of things?
- Looks like you need to go back and look for instances of the word "verified"
-in the perl code for Bugzilla -- wherever you find "verified", change it to
-"approved" and you're in business (make sure that's a case-insensitive search).
-Although you can query by the enum field, you can't give something a status
-of "APPROVED" until you make the perl changes. Note that this change I
-mentioned can also be done by editing checksetup.pl, which automates a lot of
-this. But you need to know this stuff anyway, right?
- </literallayout>
- </section>
- </section>
- </section>
-
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/dbschema.mysql b/docs/sgml/dbschema.mysql
deleted file mode 100644
index 8b1378917..000000000
--- a/docs/sgml/dbschema.mysql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docs/sgml/faq.sgml b/docs/sgml/faq.sgml
deleted file mode 100644
index ef5f23123..000000000
--- a/docs/sgml/faq.sgml
+++ /dev/null
@@ -1,1321 +0,0 @@
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-
-<appendix id="faq">
- <title>The Bugzilla FAQ</title>
-
- <para>
- This FAQ includes questions not covered elsewhere in the Guide.
- </para>
-
- <qandaset>
-
-
- <qandadiv id="faq-general">
- <title>General Questions</title>
-
- <qandaentry>
- <question id="faq-general-information">
- <para>
- Where can I find information about Bugzilla?</para>
- </question>
- <answer>
- <para>
- You can stay up-to-date with the latest Bugzilla
- information at <ulink url="http://www.bugzilla.org/">
- http://www.bugzilla.org/</ulink>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-license">
- <para>
- What license is Bugzilla distributed under?
- </para>
- </question>
- <answer>
- <para>
- Bugzilla is covered by the Mozilla Public License.
- See details at <ulink url="http://www.mozilla.org/MPL/">
- http://www.mozilla.org/MPL/</ulink>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-support">
- <para>
- How do I get commercial support for Bugzilla?
- </para>
- </question>
- <answer>
- <para>
- <ulink url="http://bugzilla.org/consulting.html">http://bugzilla.org/consulting.html</ulink>
- is a list of people and companies who have asked us to list them
- as consultants for Bugzilla.
- </para>
- <para>
- <ulink url="http://www.collab.net/">www.collab.net</ulink> offers
- Bugzilla as part of their standard offering to large projects.
- They do have some minimum fees that are pretty hefty, and generally
- aren't interested in small projects.
- </para>
- <para>
- There are several experienced
- Bugzilla hackers on the mailing list/newsgroup who are willing
- to make themselves available for generous compensation.
- Try sending a message to the mailing list asking for a volunteer.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-companies">
- <para>
- What major companies or projects are currently using Bugzilla
- for bug-tracking?
- </para>
- </question>
- <answer>
- <para>
- There are <emphasis>dozens</emphasis> of major companies with public
- Bugzilla sites to track bugs in their products. A few include:
- <simplelist>
- <member>Netscape/AOL</member>
- <member>Mozilla.org</member>
- <member>NASA</member>
- <member>Red Hat Software</member>
- <member>SuSe Corp</member>
- <member>The Horde Project</member>
- <member>AbiSource</member>
- <member>Real Time Enterprises, Inc</member>
- <member>Eggheads.org</member>
- <member>Strata Software</member>
- <member>RockLinux</member>
- <member>Creative Labs (makers of SoundBlaster)</member>
- <member>The Apache Foundation</member>
- <member>The Gnome Foundation</member>
- <member>Ximian</member>
- <member>Linux-Mandrake</member>
- </simplelist>
- </para>
- <para>
- Suffice to say, there are more than enough huge projects using Bugzilla
- that we can safely say it's extremely popular.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-maintainers">
- <para>
- Who maintains Bugzilla?
- </para>
- </question>
- <answer>
- <para>
- A
- <ulink url="http://www.bugzilla.org/who_we_are.html">core team</ulink>,
- led by Dave Miller (justdave@netscape.com).
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-compare">
- <para>
- How does Bugzilla stack up against other bug-tracking databases?
- </para>
- </question>
- <answer>
- <para>
- We can't find any head-to-head comparisons of Bugzilla against
- other defect-tracking software. If you know of one, please
- get in touch. However, from the author's personal
- experience with other bug-trackers, Bugzilla offers
- superior performance on commodity hardware, better price
- (free!), more developer- friendly features (such as stored
- queries, email integration, and platform independence),
- improved scalability, open source code, greater
- flexibility, and superior ease-of-use.
- </para>
- <para>
- If you happen to be a commercial bug-tracker vendor, please
- step forward with a list of advantages your product has over
- Bugzilla. We'd be happy to include it in the "Competitors"
- section.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-bzmissing">
- <para>
- Why doesn't Bugzilla offer this or that feature or compatibility
- with this other tracking software?
- </para>
- </question>
- <answer>
- <para>
- It may be that the support has not been built yet, or that you
- have not yet found it. Bugzilla is making tremendous strides in
- usability, customizability, scalability, and user interface. It
- is widely considered the most complete and popular open-source
- bug-tracking software in existence.
- </para>
- <para>
- That doesn't mean it can't use improvement!
- You can help the project along by either hacking a patch yourself
- that supports the functionality you require, or else submitting a
- "Request for Enhancement" (RFE) using the bug submission interface
- at <ulink url="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla">bugzilla.mozilla.org</ulink>.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-mysql">
- <para>
- Why MySQL? I'm interested in seeing Bugzilla run on
- Oracle/Sybase/Msql/PostgreSQL/MSSQL.
- </para>
- </question>
- <answer>
- <para>
- MySQL was originally chosen because it is free, easy to install,
- and was available for the hardware Netscape intended to run it on.
- </para>
- <para>
- There is currently work in progress to make Bugzilla work on
- PostgreSQL and Sybase in the default distribution. You can track
- the progress of these initiatives in bugs <ulink
- url="http://bugzilla.mozilla.org/show_bug.cgi?id=98304">98304</ulink>
- and <ulink
- url="http://bugzilla.mozilla.org/show_bug.cgi?id=173130">173130</ulink>
- respectively.
- </para>
- <para>
- Once both of these are done, adding support for additional
- database servers should be trivial.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-bonsaitools">
- <para>
- What is <filename>/usr/bonsaitools/bin/perl</filename>?
- </para>
- </question>
- <answer>
- <para>
- Bugzilla used to have the path to perl on the shebang line set to
- <filename>/usr/bonsaitools/bin/perl</filename> because when
- Terry first started writing the code for mozilla.org he needed a
- version of Perl and other tools that were completely under his
- control. This location was abandoned for the 2.18 release in favor
- of the more sensible <filename>/usr/bin/perl</filename>. If you
- installed an older verion of Bugzilla and created the symlink we
- suggested, you can remove it now (provided that you don't have
- anything else, such as Bonsai, using it and you don't intend to
- reinstall an older version of Bugzilla).
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-perlpath">
- <para>
- My perl is not located at <filename>/usr/bin/perl</filename>, is
- there an easy way to change it everywhere it needs to be changed?
- </para>
- </question>
- <answer>
- <para>
- Yes, the following bit of perl magic will change all the shebang
- lines. Be sure to change <filename>/usr/local/bin/perl</filename>
- to your path to the perl binary.
- </para>
- <programlisting>
-perl -pi -e 's@#\!/usr/bin/perl@#\!/usr/local/bin/perl@' *cgi *pl
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-general-cookie">
- <para>
- Is there an easy way to change the Bugzilla cookie name?
- </para>
- </question>
- <answer>
- <para>
- At present, no.
- </para>
- </answer>
- </qandaentry>
-
- </qandadiv>
-
- <qandadiv id="faq-phb">
- <title>Managerial Questions</title>
- <para>
- <note>
- <para>
- Questions likely to be asked by managers. :-)
- </para>
- </note>
- </para>
-
- <qandaentry>
- <question id="faq-phb-client">
- <para>
- Is Bugzilla web-based, or do you have to have specific software or
- a specific operating system on your machine?
- </para>
- </question>
- <answer>
- <para>
- It is web and e-mail based. You can edit bugs by sending specially
- formatted email to a properly configured Bugzilla, or control via the web.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-integration">
- <para>
- Can Bugzilla integrate with
- Perforce (SCM software)?
- </para>
- </question>
- <answer>
- <para>
- Yes! You can find more information elsewhere in "The Bugzilla
- Guide" in the "Integration with Third-Party Products" section.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-projects">
- <para>
- Does Bugzilla allow the user to track multiple projects?
- </para>
- </question>
- <answer>
- <para>
- Absolutely! You can track any number of Products that can each be
- composed of any number of Components.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-sorting">
- <para>
- If I am on many projects, and search for all bugs assigned to me, will
- Bugzilla list them for me and allow me to sort by project, severity etc?
- </para>
- </question>
- <answer>
- <para>
- Yes.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-attachments">
- <para>
- Does Bugzilla allow attachments (text, screenshots, URLs etc)? If yes,
- are there any that are NOT allowed?
- </para>
- </question>
- <answer>
- <para>
- Yes - any sort of attachment is allowed, although administrators can
- configure a maximum size.
- Bugzilla gives the user the option of either using the MIME-type
- supplied by the browser, choosing from a pre-defined list or
- manually typing any arbitrary MIME-type.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-priorities">
- <para>
- Does Bugzilla allow us to define our own priorities and levels? Do we
- have complete freedom to change the labels of fields and format of them, and
- the choice of acceptable values?
- </para>
- </question>
- <answer>
- <para>
- Yes. However, modifying some fields, notably those related to bug
- progression states, also require adjusting the program logic to
- compensate for the change.
- </para>
- <para>
- There is no GUI for adding fields to Bugzilla at this
- time. You can follow development of this feature at
- <ulink
- url="http://bugzilla.mozilla.org/show_bug.cgi?id=91037">http://bugzilla.mozilla.org/show_bug.cgi?id=91037</ulink>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-reporting">
- <para>
- Does Bugzilla provide any reporting features, metrics, graphs, etc? You
- know, the type of stuff that management likes to see. :)
- </para>
- </question>
- <answer>
- <para>
- Yes. Look at <ulink url="http://bugzilla.mozilla.org/report.cgi">
- http://bugzilla.mozilla.org/report.cgi</ulink> for samples of what
- Bugzilla can do in reporting and graphing.
- </para>
- <para>
- If you can not get the reports you want from the included reporting
- scripts, it is possible to hook up a professional reporting package
- such as Crystal Reports using ODBC. If you choose to do this,
- beware that giving direct access to the database does contain some
- security implications. Even if you give read-only access to the
- bugs database it will bypass the secure bugs features of Bugzilla.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-email">
- <para>
- Is there email notification and if so, what do you see when you get an
- email?
- </para>
- </question>
- <answer>
- <para>
- Email notification is user-configurable. By default, the bug id and
- Summary of the bug report accompany each email notification, along with
- a list of the changes made.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-cclist">
- <para>
- Can email notification be set up to send to multiple
- people, some on the To List, CC List, BCC List etc?
- </para>
- </question>
- <answer>
- <para>
- Yes.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-emailapp">
- <para>
- Do users have to have any particular
- type of email application?
- </para>
- </question>
- <answer>
- <para>
- Bugzilla email is sent in plain text, the most compatible mail format
- on the planet.
- <note>
- <para>
- If you decide to use the bugzilla_email integration features
- to allow Bugzilla to record responses to mail with the associated bug,
- you may need to caution your users to set their mailer to "respond
- to messages in the format in which they were sent". For security reasons
- Bugzilla ignores HTML tags in comments, and if a user sends HTML-based
- email into Bugzilla the resulting comment looks downright awful.
- </para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-data">
- <para>
- Does Bugzilla allow data to be imported and exported? If I had outsiders
- write up a bug report using a MS Word bug template, could that template be
- imported into "matching" fields? If I wanted to take the results of a query
- and export that data to MS Excel, could I do that?
- </para>
- </question>
- <answer>
- <para>
- Bugzilla can output buglists as HTML (the default), CSV or RDF.
- The link for CSV can be found at the bottom of the buglist in HTML
- format. This CSV format can easily be imported into MS Excel or
- other spread-sheet applications.
- </para>
- <para>
- To use the RDF format of the buglist it is necessary to append a
- <computeroutput>&amp;ctype=rdf</computeroutput> to the URL. RDF
- is meant to be machine readable and thus it is assumed that the
- URL would be generated progmatically so there is no user visible
- link to this format.
- </para>
- <para>
- Currently the only script included with Bugzilla that can import
- data is <filename>importxml.pl</filename> which is intended to be
- used for importing the data generated by the XML ctype of
- <filename>show_bug.cgi</filename> in association with bug moving.
- Any other use is left as an exercise for the user.
- </para>
- <para>
- There are also scripts included in the <filename>contrib/</filename>
- directory for using e-mail to import information into Bugzilla,
- but these scripts are not currently supported and included for
- educational purposes.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-l10n">
- <para>
- Has anyone converted Bugzilla to another language to be used in other
- countries? Is it localizable?
- </para>
- </question>
- <answer>
- <para>
- Yes. For more information including available translated templates,
- see <ulink
- url="http://www.bugzilla.org/download.html#localizations"/>.
- The admin interfaces are still not included in these translated
- templates and is therefore still English only. Also, there may be
- issues with the charset not being declared. See <ulink
- url="http://bugzilla.mozilla.org/show_bug.cgi?id=126266">bug 126226</ulink>
- for more information.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-reports">
- <para>
- Can a user create and save reports? Can they do this in Word format?
- Excel format?
- </para>
- </question>
- <answer>
- <para>
- Yes. No. Yes (using the CSV format).
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-searching">
- <para>
- Does Bugzilla have the ability to search by word, phrase, compound
- search?
- </para>
- </question>
- <answer>
- <para>
- You have no idea. Bugzilla's query interface, particularly with the
- advanced Boolean operators, is incredibly versatile.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-midair">
- <para>
- Does Bugzilla provide record locking when there is simultaneous access
- to the same bug? Does the second person get a notice that the bug is in use
- or how are they notified?
- </para>
- </question>
- <answer>
- <para>
- Bugzilla does not lock records. It provides mid-air collision detection,
- and offers the offending user a choice of options to deal with the conflict.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-backup">
- <para>
- Are there any backup features provided?
- </para>
- </question>
- <answer>
- <para>
- MySQL, the database back-end for Bugzilla, allows hot-backup of data.
- You can find strategies for dealing with backup considerations
- at <ulink url="http://www.mysql.com/doc/B/a/Backup.html">
- http://www.mysql.com/doc/B/a/Backup.html</ulink>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-livebackup">
- <para>
- Can users be on the system while a backup is in progress?
- </para>
- </question>
- <answer>
- <para>
- Yes. However, commits to the database must wait
- until the tables are unlocked. Bugzilla databases are typically
- very small, and backups routinely take less than a minute.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-maintenance">
- <para>
- What type of human resources are needed to be on staff to install and
- maintain Bugzilla? Specifically, what type of skills does the person need to
- have? I need to find out if we were to go with Bugzilla, what types of
- individuals would we need to hire and how much would that cost vs buying an
- "Out-of-the-Box" solution.
- </para>
- </question>
- <answer>
- <para>
- If Bugzilla is set up correctly from the start, continuing maintenance
- needs are minimal and can be done easily using the web interface.
- </para>
- <para>
- Commercial Bug-tracking software typically costs somewhere upwards
- of $20,000 or more for 5-10 floating licenses. Bugzilla consultation
- is available from skilled members of the newsgroup. Simple questions
- are answered there and then.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-installtime">
- <para>
- What time frame are we looking at if we decide to hire people to install
- and maintain the Bugzilla? Is this something that takes hours or weeks to
- install and a couple of hours per week to maintain and customize or is this
- a multi-week install process, plus a full time job for 1 person, 2 people,
- etc?
- </para>
- </question>
- <answer>
- <para>
- It all depends on your level of commitment. Someone with much Bugzilla
- experience can get you up and running in less than a day, and
- your Bugzilla install can run untended for years. If your
- Bugzilla strategy is critical to your business workflow, hire somebody
- with reasonable UNIX or Perl skills to handle your process management and
- bug-tracking maintenance &amp; customization.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-phb-cost">
- <para>
- Is there any licensing fee or other fees for using Bugzilla? Any
- out-of-pocket cost other than the bodies needed as identified above?
- </para>
- </question>
- <answer>
- <para>
- No. MySQL asks, if you find their product valuable, that you purchase
- a support contract from them that suits your needs.
- </para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv id="faq-security">
- <title>Bugzilla Security</title>
-
- <qandaentry>
- <question id="faq-security-mysql">
- <para>
- How do I completely disable MySQL security if it's giving me problems
- (I've followed the instructions in the installation section of this guide)?
- </para>
- </question>
- <answer>
- <para>
- Run MySQL like this: "mysqld --skip-grant-tables". Please remember <emphasis>this
- makes MySQL as secure as taping a $100 to the floor of a football stadium
- bathroom for safekeeping.</emphasis>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-security-knownproblems">
- <para>
- Are there any security problems with Bugzilla?
- </para>
- </question>
- <answer>
- <para>
- The Bugzilla code has undergone a reasonably complete security audit,
- and user-facing CGIs run under Perl's taint mode. However,
- it is recommended that you closely examine permissions on your Bugzilla
- installation, and follow the recommended security guidelines found
- in The Bugzilla Guide.
- </para>
- </answer>
- </qandaentry>
-
-
- <qandaentry>
- <question id="faq-security-mysqluser">
- <para>
- I've implemented the security fixes mentioned in Chris Yeh's security
- advisory of 5/10/2000 advising not to run MySQL as root, and am running into
- problems with MySQL no longer working correctly.
- </para>
- </question>
- <answer>
- <para>
- This is a common problem, related to running out of file descriptors.
- Simply add "ulimit -n unlimited" to the script which starts
- mysqld.
- </para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv id="faq-email">
- <title>Bugzilla Email</title>
-
- <qandaentry>
- <question id="faq-email-nomail">
- <para>
- I have a user who doesn't want to receive any more email from Bugzilla.
- How do I stop it entirely for this user?
- </para>
- </question>
- <answer>
- <para>
- The user should be able to set
- this in user email preferences (uncheck all boxes) or you can add
- their email address to the <filename>data/nomail</filename> file.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-testing">
- <para>
- I'm evaluating/testing Bugzilla, and don't want it to send email to
- anyone but me. How do I do it?
- </para>
- </question>
- <answer>
- <para>
- Edit the "newchangedmail" Param. Replace "To:" with "X-Real-To:",
- replace "Cc:" with "X-Real-CC:", and add a "To: &lt;youremailaddress&gt;".
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-whine">
- <para>
- I want whineatnews.pl to whine at something more, or other than, only new
- bugs. How do I do it?
- </para>
- </question>
- <answer>
- <para>
- Try Klaas Freitag's excellent patch for "whineatassigned" functionality.
- You can find it at <ulink
- url="http://bugzilla.mozilla.org/show_bug.cgi?id=6679"/>. This
- patch is against an older version of Bugzilla, so you must apply
- the diffs manually.
- <!-- TODO: Mention Joel's "Fine Whine" patch" -->
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-procmail">
- <para>
- I don't like/want to use Procmail to hand mail off to bug_email.pl.
- What alternatives do I have?
- </para>
- </question>
- <answer>
- <para>
- You can call bug_email.pl directly from your aliases file, with
- an entry like this:
- <blockquote>
- <para>
- bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
- </para>
- </blockquote>
- However, this is fairly nasty and subject to problems; you also
- need to set up your smrsh (sendmail restricted shell) to allow
- it. In a pinch, though, it can work.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-mailif">
- <para>
- How do I set up the email interface to submit/change bugs via email?
- </para>
- </question>
- <answer>
- <para>
- You can find an updated README.mailif file in the contrib/ directory
- of your Bugzilla distribution that walks you through the setup.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-sendmailnow">
- <para>
- Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
- What gives?
- </para>
- </question>
- <answer>
- <para>
- If you are using an alternate <glossterm linkend="gloss-mta">MTA</glossterm>,
- make sure the options given in <filename>Bugzilla/BugMail.pm</filename>
- and any other place where <application>sendmail</application> is called from
- are correct for your MTA. You should also ensure that the
- <option>sendmailnow</option> param is set to <literal>on</literal>.
- </para>
- <para>
- If you are using <application>sendmail</application>, try enabling
- <option>sendmailnow</option> in <filename>editparams.cgi</filename>.
- <!-- TODO provide more info about this, possibly a link to admin -->
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-email-nonreceived">
- <para>
- How come email from Bugzilla changes never reaches me?
- </para>
- </question>
- <answer>
- <para>
- Double-check that you have not turned off email in your user preferences.
- Confirm that Bugzilla is able to send email by visiting the "Log In"
- link of your Bugzilla installation and clicking the "Email me a password"
- button after entering your email address.
- </para>
- <para>
- If you never receive mail from Bugzilla, chances you do not have
- sendmail in "/usr/lib/sendmail". Ensure sendmail lives in, or is symlinked
- to, "/usr/lib/sendmail".
- </para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv id="faq-db">
- <title>Bugzilla Database</title>
-
- <qandaentry>
- <question id="faq-db-oracle">
- <para>
- I've heard Bugzilla can be used with Oracle?
- </para>
- </question>
- <answer>
- <para>
- Red Hat's old version of Bugzilla (based on 2.8) worked on Oracle.
- Red Hat's newer version (based on 2.17.1 and soon to be merged into
- the main distribution) runs on PostgreSQL. At this time we know of
- no recent ports of Bugzilla to Oracle but do intend to support it
- in the future (possibly the 2.20 time-frame).
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-db-corrupted">
- <para>
- I think my database might be corrupted, or contain invalid entries. What
- do I do?
- </para>
- </question>
- <answer>
- <para>
- Run the <quote>sanity check</quote> utility
- (<filename>./sanitycheck.cgi</filename> in the
- Bugzilla_home directory) from your web browser to see! If
- it finishes without errors, you're
- <emphasis>probably</emphasis> OK. If it doesn't come back
- OK (i.e. any red letters), there are certain things
- Bugzilla can recover from and certain things it can't. If
- it can't auto-recover, I hope you're familiar with
- mysqladmin commands or have installed another way to
- manage your database. Sanity Check, although it is a good
- basic check on your database integrity, by no means is a
- substitute for competent database administration and
- avoiding deletion of data. It is not exhaustive, and was
- created to do a basic check for the most common problems
- in Bugzilla databases.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-db-manualedit">
- <para>
- I want to manually edit some entries in my database. How?
- </para>
- </question>
- <answer>
- <para>
- There is no facility in Bugzilla itself to do this. It's also generally
- not a smart thing to do if you don't know exactly what you're doing.
- However, if you understand SQL you can use the <command>mysql</command>
- command line utility to manually insert, delete and modify table
- information. There are also more intuitive GUI clients available.
- Personal favorites of the Bugzilla team are <ulink
- url="http://www.phpmyadmin.net/">phpMyAdmin</ulink> and <ulink
- url="http://www.mysql.com/downloads/gui-mycc.html">MySQL Control
- Center</ulink>.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-db-permissions">
- <para>
- I think I've set up MySQL permissions correctly, but Bugzilla still can't
- connect.
- </para>
- </question>
- <answer>
- <para>
- Try running MySQL from its binary: "mysqld --skip-grant-tables". This
- will allow you to completely rule out grant tables as the cause of your
- frustration. If this Bugzilla is able to connect at this point then
- you need to check that you have granted proper permission to the user
- password combo defined in <filename>localconfig</filename>.
- </para>
- <warning>
- <para>
- Running MySQL with this command line option is very insecure and
- should only be done when not connected to the external network
- as a troubleshooting step.
- </para>
- </warning>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-db-synchronize">
- <para>
- How do I synchronize bug information among multiple different Bugzilla
- databases?
- </para>
- </question>
- <answer>
- <para>
- Well, you can synchronize or you can move bugs. Synchronization will
- only work one way -- you can create a read-only copy of the database
- at one site, and have it regularly updated at intervals from the main
- database.
- </para>
- <para>
- MySQL has some synchronization features builtin to the latest releases.
- It would be great if someone looked into the possibilities there
- and provided a report to the newsgroup on how to effectively
- synchronize two Bugzilla installations.
- </para>
- <para>
- If you simply need to transfer bugs from one Bugzilla to another,
- checkout the "move.pl" script in the Bugzilla distribution.
- </para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv id="faq-nt">
- <title>Bugzilla and Win32</title>
-
- <qandaentry>
- <question id="faq-nt-easiest">
- <para>
- What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
- </para>
- </question>
- <answer>
- <para>
- Remove Windows. Install Linux. Install Bugzilla.
- The boss will never know the difference.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-nt-bundle">
- <para>
- Is there a "Bundle::Bugzilla" equivalent for Win32?
- </para>
- </question>
- <answer>
- <para>
- Not currently. Bundle::Bugzilla enormously simplifies Bugzilla
- installation on UNIX systems. If someone can volunteer to
- create a suitable PPM bundle for Win32, it would be appreciated.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-nt-mappings">
- <para>
- CGI's are failing with a "something.cgi is not a valid Windows NT
- application" error. Why?
- </para>
- </question>
- <answer>
- <para>
- Depending on what Web server you are using, you will have to configure
- the Web server to treat *.cgi files as CGI scripts. In IIS, you do this by
- adding *.cgi to the App Mappings with the &lt;path&gt;\perl.exe %s %s as the
- executable.
- </para>
- <para>
- Microsoft has some advice on this matter, as well:
- <blockquote>
- <para>
- "Set application mappings. In the ISM, map the extension for the script
- file(s) to the executable for the script interpreter. For example, you might
- map the extension .py to Python.exe, the executable for the Python script
- interpreter. Note For the ActiveState Perl script interpreter, the extension
- .pl is associated with PerlIS.dll by default. If you want to change the
- association of .pl to perl.exe, you need to change the application mapping.
- In the mapping, you must add two percent (%) characters to the end of the
- pathname for perl.exe, as shown in this example: c:\perl\bin\perl.exe %s %s"
- </para>
- </blockquote>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-nt-dbi">
- <para>
- I'm having trouble with the perl modules for NT not being able to talk to
- to the database.
- </para>
- </question>
- <answer>
- <para>
- Your modules may be outdated or inaccurate. Try:
- <orderedlist>
- <listitem>
- <para>
- Hitting http://www.activestate.com/ActivePerl
- </para>
- </listitem>
- <listitem>
- <para>
- Download ActivePerl
- </para>
- </listitem>
- <listitem>
- <para>
- Go to your prompt
- </para>
- </listitem>
- <listitem>
- <para>
- Type 'ppm'
- </para>
- </listitem>
- <listitem>
- <para>
- <prompt>PPM></prompt> <command>install DBI DBD-mysql GD</command>
- </para>
- </listitem>
- </orderedlist>
- I reckon TimeDate and Data::Dumper come with the activeperl. You can check
- the ActiveState site for packages for installation through PPM.
- <ulink url=" http://www.activestate.com/Packages/">
- http://www.activestate.com/Packages/</ulink>
- </para>
- </answer>
- </qandaentry>
-
- </qandadiv>
-
- <qandadiv id="faq-use">
- <title>Bugzilla Usage</title>
-
- <qandaentry>
- <question id="faq-use-changeaddress">
- <para>
- How do I change my user name (email address) in Bugzilla?
- </para>
- </question>
- <answer>
- <para>
- New in 2.16 - go to the Account section of the Preferences. You will
- be emailed at both addresses for confirmation.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-use-query">
- <para>
- The query page is very confusing. Isn't there a simpler way to query?
- </para>
- </question>
- <answer>
- <para>
- The interface was simplified by a UI designer for 2.16. Further
- suggestions for improvement are welcome, but we won't sacrifice power for
- simplicity.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-use-accept">
- <para>
- I'm confused by the behavior of the "accept" button in the Show Bug form.
- Why doesn't it assign the bug to me when I accept it?
- </para>
- </question>
- <answer>
- <para>
- The current behavior is acceptable to bugzilla.mozilla.org and most
- users. You have your choice of patches
- to change this behavior, however.
- <simplelist>
- <member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8029">
- Add a "and accept bug" radio button</ulink></member>
- <member><ulink url="http://bugzilla.mozilla.org/showattachment.cgi?attach_id=8153">
- "Accept" button automatically assigns to you</ulink></member>
- </simplelist>
- Note that these patches are somewhat dated. You will need to apply
- them manually.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-use-attachment">
- <para>
- I can't upload anything into the database via the "Create Attachment"
- link. What am I doing wrong?
- </para>
- </question>
- <answer>
- <para>
- The most likely cause is a very old browser or a browser that is
- incompatible with file upload via POST. Download the latest Netscape,
- Microsoft, or Mozilla browser to handle uploads correctly.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-use-keyword">
- <para>
- How do I change a keyword in Bugzilla, once some bugs are using it?
- </para>
- </question>
- <answer>
- <para>
- In the Bugzilla administrator UI, edit the keyword and it will let you
- replace the old keyword name with a new one. This will cause a problem
- with the keyword cache. Run sanitycheck.cgi to fix it.
- </para>
- </answer>
- </qandaentry>
-
- </qandadiv>
-
- <qandadiv id="faq-hacking">
- <title>Bugzilla Hacking</title>
-
- <qandaentry>
- <question id="faq-hacking-templatestyle">
- <para>
- What kind of style should I use for templatization?
- </para>
- </question>
- <answer>
- <para>
- Gerv and Myk suggest a 2-space indent, with embedded code sections on
- their own line, in line with outer tags. Like this:</para>
- <programlisting><![CDATA[
-<fred>
-[% IF foo %]
- <bar>
- [% FOREACH x = barney %]
- <tr>
- <td>
- [% x %]
- </td>
- <tr>
- [% END %]
-[% END %]
-</fred>
-]]></programlisting>
-
- <para> Myk also recommends you turn on PRE_CHOMP in the template
- initialization to prevent bloating of HTML with unnecessary whitespace.
- </para>
-
- <para>Please note that many have differing opinions on this subject,
- and the existing templates in Bugzilla espouse both this and a 4-space
- style. Either is acceptable; the above is preferred.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-hacking-bugzillabugs">
- <para>
- What bugs are in Bugzilla right now?
- </para>
- </question>
- <answer>
- <para>
- Try <ulink url="http://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;product=Bugzilla">
- this link</ulink> to view current bugs or requests for
- enhancement for Bugzilla.
- </para>
- <para>
- You can view bugs marked for &bz-nextver; release
- <ulink url="http://bugzilla.mozilla.org/buglist.cgi?product=Bugzilla&amp;target_milestone=Bugzilla+&bz-nextver;">here</ulink>.
- This list includes bugs for the &bz-nextver; release that have already
- been fixed and checked into CVS. Please consult the
- <ulink url="http://www.bugzilla.org/">
- Bugzilla Project Page</ulink> for details on how to
- check current sources out of CVS so you can have these
- bug fixes early!
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-hacking-priority">
- <para>
- How can I change the default priority to a null value? For instance, have the default
- priority be "---" instead of "P2"?
- </para>
- </question>
- <answer>
- <para>
- This is well-documented here: <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=49862">
- http://bugzilla.mozilla.org/show_bug.cgi?id=49862</ulink>. Ultimately, it's as easy
- as adding the "---" priority field to your localconfig file in the appropriate area,
- re-running checksetup.pl, and then changing the default priority in your browser using
- "editparams.cgi".
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="faq-hacking-patches">
- <para>
- What's the best way to submit patches? What guidelines should I follow?
- </para>
- </question>
- <answer>
- <blockquote>
- <orderedlist>
- <listitem>
- <para>
- Enter a bug into bugzilla.mozilla.org for the <quote><ulink
- url="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla">Bugzilla</ulink></quote>
- product.
- </para>
- </listitem>
- <listitem>
- <para>
- Upload your patch as a unified diff (having used "diff -u" against
- the <emphasis>current sources</emphasis> checked out of CVS),
- or new source file by clicking
- "Create a new attachment" link on the bug page you've just created, and
- include any descriptions of database changes you may make, into the bug
- ID you submitted in step #1. Be sure and click the "Patch" checkbox
- to indicate the text you are sending is a patch!
- </para>
- </listitem>
- <listitem>
- <para>
- Announce your patch and the associated URL
- (http://bugzilla.mozilla.org/show_bug.cgi?id=XXXXXX) for discussion in
- the newsgroup (netscape.public.mozilla.webtools). You'll get a really
- good, fairly immediate reaction to the implications of your patch,
- which will also give us an idea how well-received the change would
- be.
- </para>
- </listitem>
- <listitem>
- <para>
- If it passes muster with minimal modification, the person to whom
- the bug is assigned in Bugzilla is responsible for seeing the patch
- is checked into CVS.
- </para>
- </listitem>
- <listitem>
- <para>
- Bask in the glory of the fact that you helped write the most successful
- open-source bug-tracking software on the planet :)
- </para>
- </listitem>
- </orderedlist>
- </blockquote>
- </answer>
- </qandaentry>
-
-
- </qandadiv>
-
- </qandaset>
-
-</appendix>
-
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
diff --git a/docs/sgml/filetemp.patch b/docs/sgml/filetemp.patch
deleted file mode 100644
index 9fb70adce..000000000
--- a/docs/sgml/filetemp.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- File/Temp.pm.orig Thu Feb 6 16:26:00 2003
-+++ File/Temp.pm Thu Feb 6 16:26:23 2003
-@@ -205,6 +205,7 @@
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
-+ local *CORE::GLOBAL::die = sub {};
- $bit = &$func();
- 1;
- };
-@@ -226,6 +227,7 @@
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
-+ local *CORE::GLOBAL::die = sub {};
- $bit = &$func();
- 1;
- };
diff --git a/docs/sgml/gd-makefile.patch b/docs/sgml/gd-makefile.patch
deleted file mode 100644
index 8ec35a23a..000000000
--- a/docs/sgml/gd-makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- GD-1.33/Makefile.PL Fri Aug 4 16:59:22 2000
-+++ GD-1.33-darwin/Makefile.PL Tue Jun 26 01:29:32 2001
-@@ -3,8 +3,8 @@
- warn "NOTICE: This module requires libgd 1.8.3 or higher (shared library version 4.X).\n";
-
- # =====> PATHS: CHECK AND ADJUST <=====
--my @INC = qw(-I/usr/local/include -I/usr/local/include/gd);
--my @LIBPATH = qw(-L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/local/lib );
-+my @INC = qw(-I/sw/include -I/sw/include/gd -I/usr/local/include -I/usr/local/include/gd);
-+my @LIBPATH = qw(-L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/X11/lib -L/sw/lib -L/usr/local/lib);
- my @LIBS = qw(-lgd -lpng -lz);
-
- # FEATURE FLAGS
-@@ -23,7 +23,7 @@
-
- push @LIBS,'-lttf' if $TTF;
- push @LIBS,'-ljpeg' if $JPEG;
--push @LIBS, '-lm' unless $^O eq 'MSWin32';
-+push @LIBS, '-lm' unless ($^O =~ /^MSWin32|darwin$/);
-
- # FreeBSD 3.3 with libgd built from ports croaks if -lXpm is specified
- if ($^O ne 'freebsd' && $^O ne 'MSWin32') {
diff --git a/docs/sgml/gfdl.sgml b/docs/sgml/gfdl.sgml
deleted file mode 100644
index fdfdb4bc5..000000000
--- a/docs/sgml/gfdl.sgml
+++ /dev/null
@@ -1,448 +0,0 @@
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="gfdl">
- <title>GNU Free Documentation License</title>
-
-<!-- - GNU Project - Free Software Foundation (FSF) -->
-<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
-<!-- section>
- <title>GNU Free Documentation License</title -->
- <para>Version 1.1, March 2000</para>
-
- <blockquote>
- <para>Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place,
- Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and
- distribute verbatim copies of this license document, but changing it is
- not allowed.</para>
- </blockquote>
-
- <section label="0" id="gfdl-0">
- <title>PREAMBLE</title>
-
- <para>The purpose of this License is to make a manual, textbook, or other
- written document "free" in the sense of freedom: to assure everyone the
- effective freedom to copy and redistribute it, with or without modifying
- it, either commercially or noncommercially. Secondarily, this License
- preserves for the author and publisher a way to get credit for their
- work, while not being considered responsible for modifications made by
- others.</para>
-
- <para>This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense. It
- complements the GNU General Public License, which is a copyleft license
- designed for free software.</para>
-
- <para>We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a free
- program should come with manuals providing the same freedoms that the
- software does. But this License is not limited to software manuals; it
- can be used for any textual work, regardless of subject matter or whether
- it is published as a printed book. We recommend this License principally
- for works whose purpose is instruction or reference.</para>
- </section>
-
- <section label="1" id="gfdl-1">
- <title>APPLICABILITY AND DEFINITIONS</title>
-
- <para>This License applies to any manual or other work that contains a
- notice placed by the copyright holder saying it can be distributed under
- the terms of this License. The "Document", below, refers to any such
- manual or work. Any member of the public is a licensee, and is addressed
- as "you".</para>
-
- <para>A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.</para>
-
- <para>A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall subject
- (or to related matters) and contains nothing that could fall directly
- within that overall subject. (For example, if the Document is in part a
- textbook of mathematics, a Secondary Section may not explain any
- mathematics.) The relationship could be a matter of historical connection
- with the subject or with related matters, or of legal, commercial,
- philosophical, ethical or political position regarding them.</para>
-
- <para>The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in the
- notice that says that the Document is released under this License.</para>
-
- <para>The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says
- that the Document is released under this License.</para>
-
- <para>A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the general
- public, whose contents can be viewed and edited directly and
- straightforwardly with generic text editors or (for images composed of
- pixels) generic paint programs or (for drawings) some widely available
- drawing editor, and that is suitable for input to text formatters or for
- automatic translation to a variety of formats suitable for input to text
- formatters. A copy made in an otherwise Transparent file format whose
- markup has been designed to thwart or discourage subsequent modification
- by readers is not Transparent. A copy that is not "Transparent" is called
- "Opaque".</para>
-
- <para>Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format, SGML or
- XML using a publicly available DTD, and standard-conforming simple HTML
- designed for human modification. Opaque formats include PostScript, PDF,
- proprietary formats that can be read and edited only by proprietary word
- processors, SGML or XML for which the DTD and/or processing tools are not
- generally available, and the machine-generated HTML produced by some word
- processors for output purposes only.</para>
-
- <para>The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the material
- this License requires to appear in the title page. For works in formats
- which do not have any title page as such, "Title Page" means the text
- near the most prominent appearance of the work's title, preceding the
- beginning of the body of the text.</para>
- </section>
-
- <section label="2" id="gfdl-2">
- <title>VERBATIM COPYING</title>
-
- <para>You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License applies to
- the Document are reproduced in all copies, and that you add no other
- conditions whatsoever to those of this License. You may not use technical
- measures to obstruct or control the reading or further copying of the
- copies you make or distribute. However, you may accept compensation in
- exchange for copies. If you distribute a large enough number of copies
- you must also follow the conditions in section 3.</para>
-
- <para>You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.</para>
- </section>
-
- <section label="3" id="gfdl-3">
- <title>COPYING IN QUANTITY</title>
-
- <para>If you publish printed copies of the Document numbering more than
- 100, and the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all these
- Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts
- on the back cover. Both covers must also clearly and legibly identify you
- as the publisher of these copies. The front cover must present the full
- title with all words of the title equally prominent and visible. You may
- add other material on the covers in addition. Copying with changes
- limited to the covers, as long as they preserve the title of the Document
- and satisfy these conditions, can be treated as verbatim copying in other
- respects.</para>
-
- <para>If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit reasonably)
- on the actual cover, and continue the rest onto adjacent pages.</para>
-
- <para>If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with each
- Opaque copy a publicly-accessible computer-network location containing a
- complete Transparent copy of the Document, free of added material, which
- the general network-using public has access to download anonymously at no
- charge using public-standard network protocols. If you use the latter
- option, you must take reasonably prudent steps, when you begin
- distribution of Opaque copies in quantity, to ensure that this
- Transparent copy will remain thus accessible at the stated location until
- at least one year after the last time you distribute an Opaque copy
- (directly or through your agents or retailers) of that edition to the
- public.</para>
-
- <para>It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of copies, to
- give them a chance to provide you with an updated version of the
- Document.</para>
- </section>
-
- <section label="4" id="gfdl-4">
- <title>MODIFICATIONS</title>
-
- <para>You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you release
- the Modified Version under precisely this License, with the Modified
- Version filling the role of the Document, thus licensing distribution and
- modification of the Modified Version to whoever possesses a copy of it.
- In addition, you must do these things in the Modified Version:</para>
-
- <orderedlist numeration="upperalpha">
- <listitem>
- <para>Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of previous
- versions (which should, if there were any, be listed in the History
- section of the Document). You may use the same title as a previous
- version if the original publisher of that version gives
- permission.</para>
- </listitem>
-
- <listitem>
- <para>List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in the
- Modified Version, together with at least five of the principal
- authors of the Document (all of its principal authors, if it has less
- than five).</para>
- </listitem>
-
- <listitem>
- <para>State on the Title page the name of the publisher of the
- Modified Version, as the publisher.</para>
- </listitem>
-
- <listitem>
- <para>Preserve all the copyright notices of the Document.</para>
- </listitem>
-
- <listitem>
- <para>Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.</para>
- </listitem>
-
- <listitem>
- <para>Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified Version under
- the terms of this License, in the form shown in the Addendum
- below.</para>
- </listitem>
-
- <listitem>
- <para>Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's license
- notice.</para>
- </listitem>
-
- <listitem>
- <para>Include an unaltered copy of this License.</para>
- </listitem>
-
- <listitem>
- <para>Preserve the section entitled "History", and its title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.</para>
- </listitem>
-
- <listitem>
- <para>Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions it
- was based on. These may be placed in the "History" section. You may
- omit a network location for a work that was published at least four
- years before the Document itself, or if the original publisher of the
- version it refers to gives permission.</para>
- </listitem>
-
- <listitem>
- <para>In any section entitled "Acknowledgements" or "Dedications",
- preserve the section's title, and preserve in the section all the
- substance and tone of each of the contributor acknowledgements and/or
- dedications given therein.</para>
- </listitem>
-
- <listitem>
- <para>Preserve all the Invariant Sections of the Document, unaltered
- in their text and in their titles. Section numbers or the equivalent
- are not considered part of the section titles.</para>
- </listitem>
-
- <listitem>
- <para>Delete any section entitled "Endorsements". Such a section may
- not be included in the Modified Version.</para>
- </listitem>
-
- <listitem>
- <para>Do not retitle any existing section as "Endorsements" or to
- conflict in title with any Invariant Section.</para>
- </listitem>
- </orderedlist>
-
- <para>If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no material
- copied from the Document, you may at your option designate some or all of
- these sections as invariant. To do this, add their titles to the list of
- Invariant Sections in the Modified Version's license notice. These titles
- must be distinct from any other section titles.</para>
-
- <para>You may add a section entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various parties--for
- example, statements of peer review or that the text has been approved by
- an organization as the authoritative definition of a standard.</para>
-
- <para>You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end of the
- list of Cover Texts in the Modified Version. Only one passage of
- Front-Cover Text and one of Back-Cover Text may be added by (or through
- arrangements made by) any one entity. If the Document already includes a
- cover text for the same cover, previously added by you or by arrangement
- made by the same entity you are acting on behalf of, you may not add
- another; but you may replace the old one, on explicit permission from the
- previous publisher that added the old one.</para>
-
- <para>The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to assert
- or imply endorsement of any Modified Version.</para>
- </section>
-
- <section label="5" id="gfdl-5">
- <title>COMBINING DOCUMENTS</title>
-
- <para>You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for modified
- versions, provided that you include in the combination all of the
- Invariant Sections of all of the original documents, unmodified, and list
- them all as Invariant Sections of your combined work in its license
- notice.</para>
-
- <para>The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single copy.
- If there are multiple Invariant Sections with the same name but different
- contents, make the title of each such section unique by adding at the end
- of it, in parentheses, the name of the original author or publisher of
- that section if known, or else a unique number. Make the same adjustment
- to the section titles in the list of Invariant Sections in the license
- notice of the combined work.</para>
-
- <para>In the combination, you must combine any sections entitled
- "History" in the various original documents, forming one section entitled
- "History"; likewise combine any sections entitled "Acknowledgements", and
- any sections entitled "Dedications". You must delete all sections
- entitled "Endorsements."</para>
- </section>
-
- <section label="6" id="gfdl-6">
- <title>COLLECTIONS OF DOCUMENTS</title>
-
- <para>You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual copies
- of this License in the various documents with a single copy that is
- included in the collection, provided that you follow the rules of this
- License for verbatim copying of each of the documents in all other
- respects.</para>
-
- <para>You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert a copy
- of this License into the extracted document, and follow this License in
- all other respects regarding verbatim copying of that document.</para>
- </section>
-
- <section label="7" id="gfdl-7">
- <title>AGGREGATION WITH INDEPENDENT WORKS</title>
-
- <para>A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of a
- storage or distribution medium, does not as a whole count as a Modified
- Version of the Document, provided no compilation copyright is claimed for
- the compilation. Such a compilation is called an "aggregate", and this
- License does not apply to the other self-contained works thus compiled
- with the Document, on account of their being thus compiled, if they are
- not themselves derivative works of the Document.</para>
-
- <para>If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one quarter of
- the entire aggregate, the Document's Cover Texts may be placed on covers
- that surround only the Document within the aggregate. Otherwise they must
- appear on covers around the whole aggregate.</para>
- </section>
-
- <section label="8" id="gfdl-8">
- <title>TRANSLATION</title>
-
- <para>Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section 4.
- Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include translations
- of some or all Invariant Sections in addition to the original versions of
- these Invariant Sections. You may include a translation of this License
- provided that you also include the original English version of this
- License. In case of a disagreement between the translation and the
- original English version of this License, the original English version
- will prevail.</para>
- </section>
-
- <section label="9" id="gfdl-9">
- <title>TERMINATION</title>
-
- <para>You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided for under this License. Any other attempt to
- copy, modify, sublicense or distribute the Document is void, and will
- automatically terminate your rights under this License. However, parties
- who have received copies, or rights, from you under this License will not
- have their licenses terminated so long as such parties remain in full
- compliance.</para>
- </section>
-
- <section label="10" id="gfdl-10">
- <title>FUTURE REVISIONS OF THIS LICENSE</title>
-
- <para>The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new versions
- will be similar in spirit to the present version, but may differ in
- detail to address new problems or concerns. See
- <ulink url="http://www.gnu.org/copyleft/">
- http://www.gnu.org/copyleft/</ulink>
-
- .</para>
-
- <para>Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered version of
- this License "or any later version" applies to it, you have the option of
- following the terms and conditions either of that specified version or of
- any later version that has been published (not as a draft) by the Free
- Software Foundation. If the Document does not specify a version number of
- this License, you may choose any version ever published (not as a draft)
- by the Free Software Foundation.</para>
- </section>
-
- <section label="" id="gfdl-howto">
- <title>How to use this License for your documents</title>
-
- <para>To use this License in a document you have written, include a copy
- of the License in the document and put the following copyright and
- license notices just after the title page:</para>
-
- <blockquote>
- <para>Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
- distribute and/or modify this document under the terms of the GNU Free
- Documentation License, Version 1.1 or any later version published by
- the Free Software Foundation; with the Invariant Sections being LIST
- THEIR TITLES, with the Front-Cover Texts being LIST, and with the
- Back-Cover Texts being LIST. A copy of the license is included in the
- section entitled "GNU Free Documentation License".</para>
- </blockquote>
-
- <para>If you have no Invariant Sections, write "with no Invariant
- Sections" instead of saying which ones are invariant. If you have no
- Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover
- Texts being LIST"; likewise for Back-Cover Texts.</para>
-
- <para>If your document contains nontrivial examples of program code, we
- recommend releasing these examples in parallel under your choice of free
- software license, such as the GNU General Public License, to permit their
- use in free software.</para>
- </section>
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/glossary.sgml b/docs/sgml/glossary.sgml
deleted file mode 100644
index d979505ca..000000000
--- a/docs/sgml/glossary.sgml
+++ /dev/null
@@ -1,482 +0,0 @@
-<!-- <!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
-<glossary id="glossary">
- <glossdiv>
- <title>0-9, high ascii</title>
-
- <glossentry>
- <glossterm>.htaccess</glossterm>
-
- <glossdef>
- <para>Apache web server, and other NCSA-compliant web servers,
- observe the convention of using files in directories called
- <filename>.htaccess</filename>
-
- to restrict access to certain files. In Bugzilla, they are used
- to keep secret files which would otherwise
- compromise your installation - e.g. the
- <filename>localconfig</filename>
- file contains the password to your database.
- curious.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-a">
- <title>A</title>
-
- <glossentry id="gloss-apache">
- <glossterm>Apache</glossterm>
-
- <glossdef>
- <para>In this context, Apache is the web server most commonly used
- for serving up Bugzilla
- pages. Contrary to popular belief, the apache web server has nothing
- to do with the ancient and noble Native American tribe, but instead
- derived its name from the fact that it was
- <quote>a patchy</quote>
- version of the original
- <acronym>NCSA</acronym>
- world-wide-web server.</para>
-
- <variablelist>
- <title>Useful Directives when configuring Bugzilla</title>
-
- <varlistentry>
- <term><computeroutput><ulink url="http://httpd.apache.org/docs-2.0/mod/core.html#addhandler">AddHandler</ulink></computeroutput></term>
- <listitem>
- <para>Tell Apache that it's OK to run CGI scripts.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><computeroutput><ulink url="http://httpd.apache.org/docs-2.0/mod/core.html#allowoverride">AllowOverride</ulink></computeroutput></term>
- <term><computeroutput><ulink url="http://httpd.apache.org/docs-2.0/mod/core.html#options">Options</ulink></computeroutput></term>
- <listitem>
- <para>These directives are used to tell Apache many things about
- the directory they apply to. For Bugzilla's purposes, we need
- them to allow script execution and <filename>.htaccess</filename>
- overrides.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><computeroutput><ulink url="http://httpd.apache.org/docs-2.0/mod/mod_dir.html#directoryindex">DirectoryIndex</ulink></computeroutput></term>
- <listitem>
- <para>Used to tell Apache what files are indexes. If you can
- not add <filename>index.cgi</filename> to the list of valid files,
- you'll need to set <computeroutput>$index_html</computeroutput> to
- 1 in <filename>localconfig</filename> so
- <command>./checksetup.pl</command> will create an
- <filename>index.html</filename> that redirects to
- <filename>index.cgi</filename>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><computeroutput><ulink url="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource">ScriptInterpreterSource</ulink></computeroutput></term>
- <listitem>
- <para>Used when running Apache on windows so the shebang line
- doesn't have to be changed in every Bugzilla script.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>For more information about how to configure Apache for Bugzilla,
- see <xref linkend="http-apache"/>.
- </para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-b">
- <title>B</title>
-
- <glossentry>
- <glossterm>Bug</glossterm>
-
- <glossdef>
- <para>A
- <quote>bug</quote>
-
- in Bugzilla refers to an issue entered into the database which has an
- associated number, assignments, comments, etc. Some also refer to a
- <quote>tickets</quote>
- or
- <quote>issues</quote>;
- in the context of Bugzilla, they are synonymous.</para>
- </glossdef>
- </glossentry>
-
- <glossentry>
- <glossterm>Bug Number</glossterm>
-
- <glossdef>
- <para>Each Bugzilla bug is assigned a number that uniquely identifies
- that bug. The bug associated with a bug number can be pulled up via a
- query, or easily from the very front page by typing the number in the
- "Find" box.</para>
- </glossdef>
- </glossentry>
-
- <glossentry id="gloss-bugzilla">
- <glossterm>Bugzilla</glossterm>
-
- <glossdef>
- <para>Bugzilla is the world-leading free software bug tracking system.
- </para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-c">
- <title>C</title>
-
- <glossentry id="gloss-cgi">
- <glossterm>Common Gateway Interface</glossterm>
- <acronym>CGI</acronym>
- <glossdef>
- <para><acronym>CGI</acronym> is an acronym for Common Gateway Interface. This is
- a standard for interfacing an external application with a web server. Bugzilla
- is an example of a <acronym>CGI</acronym> application.
- </para>
- </glossdef>
- </glossentry>
-
- <glossentry id="gloss-component">
- <glossterm>Component</glossterm>
-
- <glossdef>
- <para>A Component is a subsection of a Product. It should be a narrow
- category, tailored to your organization. All Products must contain at
- least one Component (and, as a matter of fact, creating a Product
- with no Components will create an error in Bugzilla).</para>
- </glossdef>
- </glossentry>
-
- <glossentry id="gloss-cpan">
- <glossterm>
- <acronym>CPAN</acronym>
- </glossterm>
-
- <glossdef>
- <para>
- <acronym>CPAN</acronym>
-
- stands for the
- <quote>Comprehensive Perl Archive Network</quote>.
- CPAN maintains a large number of extremely useful
- <glossterm>Perl</glossterm>
- modules - encapsulated chunks of code for performing a
- particular task.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-d">
- <title>D</title>
-
- <glossentry>
- <glossterm>daemon</glossterm>
-
- <glossdef>
- <para>A daemon is a computer program which runs in the background. In
- general, most daemons are started at boot time via System V init
- scripts, or through RC scripts on BSD-based systems.
- <glossterm>mysqld</glossterm>,
- the MySQL server, and
- <glossterm>apache</glossterm>,
- a web server, are generally run as daemons.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-g">
- <title>G</title>
-
- <glossentry id="gloss-groups">
- <glossterm>Groups</glossterm>
-
- <glossdef>
- <para>The word
- <quote>Groups</quote>
-
- has a very special meaning to Bugzilla. Bugzilla's main security
- mechanism comes by placing users in groups, and assigning those
- groups certain privileges to view bugs in particular
- <glossterm>Products</glossterm>
- in the
- <glossterm>Bugzilla</glossterm>
- database.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-j">
- <title>J</title>
-
- <glossentry id="gloss-javascript">
- <glossterm>JavaScript</glossterm>
- <glossdef>
- <para>JavaScript is cool, we should talk about it.
- </para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-m">
- <title>M</title>
-
- <glossentry id="gloss-mta">
- <glossterm>Message Transport Agent</glossterm>
- <acronym>MTA</acronym>
-
- <glossdef>
- <para>A Message Transport Agent is used to control the flow of email
- on a system. Many unix based systems use
- <ulink url="http://www.sendmail.org">sendmail</ulink> which is what
- Bugzilla expects to find by default at <filename>/usr/sbin/sendmail</filename>.
- Many other MTA's will work, but they all require that the
- <option>sendmailnow</option> param be set to <literal>on</literal>.
- </para>
- </glossdef>
- </glossentry>
-
- <glossentry id="gloss-mysql">
- <glossterm>MySQL</glossterm>
-
- <glossdef>
- <para>MySQL is currently the required
- <glossterm linkend="gloss-rdbms">RDBMS</glossterm> for Bugzilla. MySQL
- can be downloaded from <ulink url="http://www.mysql.com"/>. While you
- should familiarize yourself with all of the documentation, some high
- points are:
- </para>
- <variablelist>
- <varlistentry>
- <term><ulink url="http://www.mysql.com/doc/en/Backup.html">Backup</ulink></term>
- <listitem>
- <para>Methods for backing up your Bugzilla database.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://www.mysql.com/doc/en/Option_files.html">Option Files</ulink></term>
- <listitem>
- <para>Information about how to configure MySQL using
- <filename>my.cnf</filename>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><ulink url="http://www.mysql.com/doc/en/Privilege_system.html">Privilege System</ulink></term>
- <listitem>
- <para>Much more detailed information about the suggestions in
- <xref linkend="security-mysql"/>.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-p">
- <title>P</title>
-
- <glossentry>
- <glossterm id="gloss-product">Product</glossterm>
-
- <glossdef>
- <para>A Product is a broad category of types of bugs, normally
- representing a single piece of software or entity. In general,
- there are several Components to a Product. A Product may define a
- group (used for security) for all bugs entered into
- its Components.</para>
- </glossdef>
- </glossentry>
-
- <glossentry>
- <glossterm>Perl</glossterm>
-
- <glossdef>
- <para>First written by Larry Wall, Perl is a remarkable program
- language. It has the benefits of the flexibility of an interpreted
- scripting language (such as shell script), combined with the speed
- and power of a compiled language, such as C.
- <glossterm>Bugzilla</glossterm>
-
- is maintained in Perl.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-q">
- <title>Q</title>
-
- <glossentry>
- <glossterm>QA</glossterm>
-
- <glossdef>
- <para>
- <quote>QA</quote>,
- <quote>Q/A</quote>, and
- <quote>Q.A.</quote>
- are short for
- <quote>Quality Assurance</quote>.
- In most large software development organizations, there is a team
- devoted to ensuring the product meets minimum standards before
- shipping. This team will also generally want to track the progress of
- bugs over their life cycle, thus the need for the
- <quote>QA Contact</quote>
-
- field in a bug.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-r">
- <title>R</title>
-
- <glossentry id="gloss-rdbms">
- <glossterm>Relational DataBase Managment System</glossterm>
- <acronym>RDBMS</acronym>
-
- <glossdef>
- <para>A relational database management system is a database system
- that stores information in tables that are related to each other.
- </para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-s">
- <title>S</title>
-
- <glossentry>
- <glossterm>
- <acronym>SGML</acronym>
- </glossterm>
-
- <glossdef>
- <para>
- <acronym>SGML</acronym>
-
- stands for
- <quote>Standard Generalized Markup Language</quote>.
- Created in the 1980's to provide an extensible means to maintain
- documentation based upon content instead of presentation,
- <acronym>SGML</acronym>
-
- has withstood the test of time as a robust, powerful language.
- <glossterm>
- <acronym>XML</acronym>
- </glossterm>
-
- is the
- <quote>baby brother</quote>
-
- of SGML; any valid
- <acronym>XML</acronym>
-
- document it, by definition, a valid
- <acronym>SGML</acronym>
-
- document. The document you are reading is written and maintained in
- <acronym>SGML</acronym>,
- and is also valid
- <acronym>XML</acronym>
-
- if you modify the Document Type Definition.</para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-t">
- <title>T</title>
-
- <glossentry id="gloss-target-milestone" xreflabel="Target Milestone">
- <glossterm>Target Milestone</glossterm>
-
- <glossdef>
- <para>Target Milestones are Product goals. They are configurable on a
- per-Product basis. Most software development houses have a concept of
-
- <quote>milestones</quote>
-
- where the people funding a project expect certain functionality on
- certain dates. Bugzilla facilitates meeting these milestones by
- giving you the ability to declare by which milestone a bug will be
- fixed, or an enhancement will be implemented.</para>
- </glossdef>
- </glossentry>
-
- <glossentry id="gloss-tcl">
- <glossterm>Tool Command Language</glossterm>
- <acronym>TCL</acronym>
- <glossdef>
- <para>TCL is an open source scripting language available for Windows,
- Macintosh, and Unix based systems. Bugzilla 1.0 was written in TCL but
- never released. The first release of Bugzilla was 2.0, which was when
- it was ported to perl.
- </para>
- </glossdef>
- </glossentry>
- </glossdiv>
-
- <glossdiv id="gloss-z">
- <title>Z</title>
-
- <glossentry id="gloss-zarro">
- <glossterm>Zarro Boogs Found</glossterm>
-
- <glossdef>
- <para>This is just a goofy way of saying that there were no bugs
- found matching your query. When asked to explain this message,
- Terry had the following to say:
- </para>
-
- <blockquote>
- <attribution>Terry Weissman</attribution>
- <para>I've been asked to explain this ... way back when, when
- Netscape released version 4.0 of its browser, we had a release
- party. Naturally, there had been a big push to try and fix every
- known bug before the release. Naturally, that hadn't actually
- happened. (This is not unique to Netscape or to 4.0; the same thing
- has happened with every software project I've ever seen.) Anyway,
- at the release party, T-shirts were handed out that said something
- like "Netscape 4.0: Zarro Boogs". Just like the software, the
- T-shirt had no known bugs. Uh-huh.
- </para>
-
- <para>So, when you query for a list of bugs, and it gets no results,
- you can think of this as a friendly reminder. Of *course* there are
- bugs matching your query, they just aren't in the bugsystem yet...
- </para>
- </blockquote>
-
- </glossdef>
- </glossentry>
- </glossdiv>
-</glossary>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/index.sgml b/docs/sgml/index.sgml
deleted file mode 100644
index 3b3516e14..000000000
--- a/docs/sgml/index.sgml
+++ /dev/null
@@ -1,21 +0,0 @@
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/installation.sgml b/docs/sgml/installation.sgml
deleted file mode 100644
index b9fee2cc8..000000000
--- a/docs/sgml/installation.sgml
+++ /dev/null
@@ -1,1615 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> -->
-<chapter id="installation" xreflabel="Bugzilla Installation">
- <title>Installation</title>
-
- <section id="stepbystep" xreflabel="Bugzilla Installation Step-by-step">
- <title>Step-by-step Install</title>
-
- <section id="intstall-into">
- <title>Introduction</title>
-
- <para>Bugzilla has been successfully installed under Solaris, Linux,
- and Win32. Win32 is not yet officially supported, but many people
- have got it working fine.
- Please see
- <xref linkend="os-win32" />
- for further advice on getting Bugzilla to work on Microsoft
- Windows.</para>
-
- </section>
-
- <section id="install-package-list">
- <title>Package List</title>
-
- <note>
- <para> If you are running the very most recent
- version of Perl and MySQL (both the executables and development
- libraries) on your system, you can skip these manual installation
- steps for the Perl modules by using Bundle::Bugzilla; see
- <xref linkend="bundlebugzilla" />.
- </para>
- </note>
-
- <para>The software packages necessary for the proper running of
- Bugzilla (with download links) are:
- <orderedlist>
-
-
-<listitem>
- <para>
- <ulink url="http://www.mysql.com/">MySQL database server</ulink>
- (&min-mysql-ver; or greater)
- </para>
-</listitem>
-
-<listitem>
- <para>
- <ulink url="http://www.perl.org">Perl</ulink>
- (&min-perl-ver;, 5.6.1 is recommended if you wish to
- use Bundle::Bugzilla)
- </para>
-</listitem>
-
-<listitem>
- <para>Perl Modules (minimum version):
- <orderedlist>
-
- <listitem>
- <para>
- <ulink url="http://www.template-toolkit.org">Template</ulink>
- (v&min-template-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.perldoc.com/perl5.6/lib/File/Temp.html">
- File::Temp</ulink>
- (&min-file-temp-ver;) (Prerequisite for Template)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/AppConfig/">AppConfig
- </ulink>
- (&min-appconfig-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/authors/id/MUIR/modules/Text-Tabs%2BWrap-2001.0131.tar.gz">Text::Wrap</ulink>
- (&min-text-wrap-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://search.cpan.org/search?dist=File-Spec">File::Spec
- </ulink>
- (&min-file-spec-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/Data/">Data::Dumper
- </ulink>
- (&min-data-dumper-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/Mysql/">DBD::mysql
- </ulink>
- (&min-dbd-mysql-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/DBI/">DBI</ulink>
- (&min-dbi-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/Date/">Date::Parse
- </ulink>
- (&min-date-format-ver;)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/CGI/">CGI
- </ulink>
- (&min-cgi-ver;)
- </para>
- </listitem>
-
- </orderedlist>
- and, optionally:
- <orderedlist>
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/GD/">GD</ulink>
- (&min-gd-ver;) for bug charting
- </para>
- </listitem>
-
- <listitem>
- <para>
- GD::Graph
- (&min-gd-graph-ver;) for bug charting
- </para>
- </listitem>
-
- <listitem>
- <para>
- GD::Text::Align
- (&min-gd-text-align-ver;) for bug charting
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.cpan.org/modules/by-module/Chart/">Chart::Base
- </ulink>
- (&min-chart-base-ver;) for bug charting
- </para>
- </listitem>
-
- <listitem>
- <para>
- XML::Parser
- (&min-xml-parser-ver;) for the XML interface
- </para>
- </listitem>
-
- <listitem>
- <para>
- MIME::Parser
- (&min-mime-parser-ver;) for the email interface
- </para>
- </listitem>
- </orderedlist>
- </para>
-</listitem>
-
-
-<listitem>
- <para>
- The web server of your choice.
- <ulink url="http://www.apache.org/">Apache</ulink>
- is highly recommended.
- </para>
-</listitem>
-
-
- </orderedlist>
-
- <warning>
- <para>It is a good idea, while installing Bugzilla, to ensure that there
- is some kind of firewall between you and the rest of the Internet,
- because your machine may be insecure for periods during the install.
- Many
- installation steps require an active Internet connection to complete,
- but you must take care to ensure that at no point is your machine
- vulnerable to an attack.</para>
- </warning>
-
- </para>
- </section>
-
- <section id="install-mysql">
- <title>MySQL</title>
-
- <para>Visit the MySQL homepage at
- <ulink url="http://www.mysql.com">www.mysql.com</ulink>
- to grab and install the latest stable release of the server.
- </para>
-
- <note>
- <para> Many of the binary
- versions of MySQL store their data files in
- <filename>/var</filename>.
- On some Unix systems, this is part of a smaller root partition,
- and may not have room for your bug database. You can set the data
- directory as an option to <filename>configure</filename>
- if you build MySQL from source yourself.</para>
- </note>
-
- <para>If you install from something other than an RPM or Debian
- package, you will need to add <filename>mysqld</filename>
- to your init scripts so the server daemon will come back up whenever
- your machine reboots. Further discussion of UNIX init sequences are
- beyond the scope of this guide.
- </para>
-
- <para>Change your init script to start
- <filename>mysqld</filename>
- with the ability to accept large packets. By default,
- <filename>mysqld</filename>
- only accepts packets up to 64K long. This limits the size of
- attachments you may put on bugs. If you add
- <option>-O max_allowed_packet=1M</option>
- to the command that starts
- <filename>mysqld</filename>
- (or <filename>safe_mysqld</filename>),
- then you will be able to have attachments up to about 1 megabyte.
- There is a Bugzilla parameter for maximum attachment size;
- you should configure it to match the value you choose here.</para>
-
- <para>If you plan on running Bugzilla and MySQL on the same machine,
- consider using the
- <option>--skip-networking</option>
- option in the init script. This enhances security by preventing
- network access to MySQL.</para>
-
- </section>
-
- <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">perl.com</ulink> for the rare
- *nix systems which don't have it.
- 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>
-
- <tip id="bundlebugzilla"
- xreflabel="Using Bundle::Bugzilla instead of manually installing Perl modules">
-
- <para>You can skip the following Perl module installation steps by
- installing
- <productname>Bundle::Bugzilla</productname>
-
- from
- <glossterm linkend="gloss-cpan">CPAN</glossterm>,
- which installs all required modules for you.</para>
-
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>perl -MCPAN -e 'install "Bundle::Bugzilla"'</command>
- </computeroutput>
- </para>
-
- <para>Bundle::Bugzilla doesn't include GD, Chart::Base, or
- MIME::Parser, which are not essential to a basic Bugzilla install. If
- installing this bundle fails, you should install each module
- individually to isolate the problem.</para>
- </tip>
- </section>
-
- <section id="perl-modules">
- <title>Perl Modules</title>
-
- <para>
- All Perl modules can be found on the
- <ulink url="http://www.cpan.org">Comprehensive Perl
- Archive Network</ulink> (CPAN). The
- CPAN servers have a real tendency to bog down, so please use mirrors.
- </para>
-
- <para>Quality, general Perl module installation instructions can be
- found on the CPAN website, but the easy thing to do is to just use the
- CPAN shell which does all the hard work for you.
- To use the CPAN shell to install a module:
- </para>
-
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
- <command>perl -MCPAN -e 'install "&lt;modulename&gt;"'</command>
- </computeroutput>
- </para>
-
- <para>
- To do it the hard way:
- </para>
-
- <para>Untar the module tarball -- it should create its own
- directory</para>
-
- <para>CD to the directory just created, and enter the following
- commands:
- <orderedlist>
- <listitem>
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>perl Makefile.PL</command>
- </computeroutput>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>make</command>
- </computeroutput>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>make test</command>
- </computeroutput>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>make install</command>
- </computeroutput>
- </para>
- </listitem>
- </orderedlist>
- </para>
-
- <warning>
- <para>Many people complain that Perl modules will not install for
- them. Most times, the error messages complain that they are missing a
- file in
- <quote>@INC</quote>.
- Virtually every time, this error is due to permissions being set too
- restrictively for you to compile Perl modules or not having the
- necessary Perl development libraries installed on your system.
- Consult your local UNIX systems administrator for help solving these
- permissions issues; if you
- <emphasis>are</emphasis>
- the local UNIX sysadmin, please consult the newsgroup/mailing list
- for further assistance or hire someone to help you out.</para>
- </warning>
-
-
- <section>
- <title>DBI</title>
-
- <para>The DBI module is a generic Perl module used the
- MySQL-related modules. As long as your Perl installation was done
- correctly the DBI module should be a breeze. It's a mixed Perl/C
- module, but Perl's MakeMaker system simplifies the C compilation
- greatly.</para>
- </section>
-
- <section>
- <title>Data::Dumper</title>
-
- <para>The Data::Dumper module provides data structure persistence for
- Perl (similar to Java's serialization). It comes with later
- sub-releases of Perl 5.004, but a re-installation just to be sure it's
- available won't hurt anything.</para>
- </section>
-
- <section>
- <title>MySQL-related modules</title>
-
- <para>The Perl/MySQL interface requires a few mutually-dependent Perl
- modules. These modules are grouped together into the the
- Msql-Mysql-modules package.</para>
-
- <para>The MakeMaker process will ask you a few questions about the
- desired compilation target and your MySQL installation. For most of the
- questions the provided default will be adequate, but when asked if your
- desired target is the MySQL or mSQL packages, you should
- select the MySQL related ones. Later you will be asked if you wish to
- provide backwards compatibility with the older MySQL packages; you
- should answer YES to this question. The default is NO.</para>
-
- <para>A host of 'localhost' should be fine and a testing user of 'test'
- with a null password should find itself with sufficient access to run
- tests on the 'test' database which MySQL created upon installation.
- </para>
- </section>
-
- <section>
- <title>TimeDate modules</title>
-
- <para>Many of the more common date/time/calendar related Perl modules
- have been grouped into a bundle similar to the MySQL modules bundle.
- This bundle is stored on the CPAN under the name TimeDate.
- The component module we're most interested in is the Date::Format
- module, but installing all of them is probably a good idea anyway.
- </para>
- </section>
-
- <section>
- <title>GD (optional)</title>
-
- <para>The GD library was written by Thomas Boutell a long while ago to
- programatically generate images in C. Since then it's become the
- defacto standard for programmatic image construction. The Perl bindings
- to it found in the GD library are used on millions of web pages to
- generate graphs on the fly. That's what Bugzilla will be using it for
- so you must install it if you want any of the graphing to work.</para>
-
- <note>
- <para>The Perl GD library requires some other libraries that may or
- may not be installed on your system, including
- <classname>libpng</classname>
- and
- <classname>libgd</classname>.
- The full requirements are listed in the Perl GD library README.
- If compiling GD fails, it's probably because you're
- missing a required library.</para>
- </note>
- </section>
-
- <section>
- <title>Chart::Base (optional)</title>
-
- <para>The Chart module provides Bugzilla with on-the-fly charting
- abilities. It can be installed in the usual fashion after it has been
- fetched from CPAN.
- Note that earlier versions that 0.99c used GIFs, which are no longer
- supported by the latest versions of GD.</para>
- </section>
-
- <section>
- <title>Template Toolkit</title>
-
- <para>When you install Template Toolkit, you'll get asked various
- questions about features to enable. The defaults are fine, except
- that it is recommended you use the high speed XS Stash of the Template
- Toolkit, in order to achieve best performance.
- </para>
- </section>
-
-
- </section>
-
- <section id="sbs-http">
- <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.</para>
- </note>
-
- </section>
-
- <section>
- <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 &lt;Directory&gt; 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>
- </section>
-
- <section>
- <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>First, you'll want to fix MySQL permissions to allow access from
- Bugzilla. For the purpose of this Installation section, the Bugzilla
- username will be
- <quote>bugs</quote>, and will have minimal permissions.
- </para>
-
- <para>Begin by giving the MySQL root user a password. MySQL passwords are limited
- to 16 characters.
- <simplelist>
- <member>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>mysql -u root mysql</command>
- </computeroutput>
- </member>
-
- <member>
- <computeroutput>
- <prompt>mysql&gt;</prompt>
-
- <command>UPDATE user SET Password=PASSWORD('&lt;new_password'&gt;)
- WHERE user='root';</command>
- </computeroutput>
- </member>
-
- <member>
- <computeroutput>
- <prompt>mysql&gt;</prompt>
-
- <command>FLUSH PRIVILEGES;</command>
- </computeroutput>
- </member>
- </simplelist>
-
- From this point on, if you need to access MySQL as the MySQL root user,
- you will need to use
- <command>mysql -u root -p</command>
-
- and enter &lt;new_password&gt;. Remember that MySQL user names have
- nothing to do with Unix user names (login names).</para>
-
- <para>Next, we use an SQL <command>GRANT</command> command to create a
- <quote>bugs</quote>
-
- user, and grant sufficient permissions for checksetup.pl, which we'll
- use later, to work its magic. This also restricts the
- <quote>bugs</quote>
- user to operations within a database called
- <quote>bugs</quote>, and only allows the account to connect from
- <quote>localhost</quote>.
- Modify it to reflect your setup if you will be connecting from
- another machine or as a different user.</para>
-
- <para>Remember to set &lt;bugs_password&gt; to some unique password.
- <simplelist>
- <member>
- <computeroutput>
- <prompt>mysql&gt;</prompt>
-
- <command>GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,
- ALTER,CREATE,DROP,REFERENCES ON bugs.* TO bugs@localhost
- IDENTIFIED BY '&lt;bugs_password&gt;';</command>
- </computeroutput>
- </member>
-
- <member>
- <computeroutput>
- <prompt>mysql&gt;</prompt>
-
- <command>FLUSH PRIVILEGES;</command>
- </computeroutput>
- </member>
- </simplelist>
- </para>
-
- <note>
- <para>If you are using MySQL 4, the bugs user also needs to be granted
- the LOCK TABLES and CREATE TEMPORARY TABLES 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 MySQL database and other
- configuration options are consistent with the Bugzilla CGI files.
- It will make sure Bugzilla files and directories have reasonable
- permissions, set up the
- <filename>data</filename>
- directory, and create all the MySQL tables.
- <simplelist>
- <member>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>./checksetup.pl</command>
- </computeroutput>
- </member>
- </simplelist>
-
- The first time you run it, it will create a file called
- <filename>localconfig</filename>.</para>
-
- <para>This file contains a variety of settings you may need to tweak
- including how Bugzilla should connect to the MySQL database.</para>
-
- <para>The connection settings include:
- <orderedlist>
- <listitem>
- <para>server's host: just use
- <quote>localhost</quote>
- if the MySQL server is local</para>
- </listitem>
-
- <listitem>
- <para>database name:
- <quote>bugs</quote>
- if you're following these directions</para>
- </listitem>
-
- <listitem>
- <para>MySQL username:
- <quote>bugs</quote>
- if you're following these directions</para>
- </listitem>
-
- <listitem>
- <para>Password for the
- <quote>bugs</quote>
- MySQL account; (&lt;bugs_password&gt;) above</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>Once you are happy with the settings,
- <filename>su</filename> to the user
- your web server runs as, and re-run
- <filename>checksetup.pl</filename>. (Note: on some security-conscious
- systems, you may need to change the login shell for the webserver
- account before you can do this.)
- On this second run, it will create the database and an administrator
- account for which you will be prompted to provide information.</para>
-
- <note>
- <para>The checksetup.pl script is designed so that you can run it at
- any time without causing harm. You should run it after any upgrade to
- Bugzilla.</para>
- </note>
- </section>
-
- <section>
- <title>Configuring Bugzilla</title>
- <para>
- You should run through the parameters on the Edit Parameters page
- (link in the footer) and set them all to appropriate values.
- They key parameters are documented in <xref linkend="parameters" />.
- </para>
- </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>
- </listitem>
- <listitem>
- <para>
- A blank value will disable dependency graphing.
- </para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>So, to get this working, install
- <ulink url="http://www.graphviz.org/">GraphViz</ulink>. If you
- do that, you need to
- <ulink url="http://httpd.apache.org/docs/mod/mod_imap.html">enable
- server-side image maps</ulink> in Apache.
- Alternatively, you could set up a webdot server, or use the AT&amp;T
- public webdot server (the
- default for the webdotbase param). Note that AT&amp;T's server won't work
- if Bugzilla is only accessible using HARTS.
- </para>
- </section>
-
- <section>
- <title>Bug Graphs</title>
-
- <para>As long as you installed the GD and Graph::Base Perl modules you
- might as well turn on the nifty Bugzilla bug reporting graphs.</para>
-
- <para>Add a cron entry like this to run
- <filename>collectstats.pl</filename>
- daily at 5 after midnight:
- <simplelist>
- <member>
- <computeroutput>
- <prompt>bash#</prompt>
-
- <command>crontab -e</command>
- </computeroutput>
- </member>
-
- <member>
- <computeroutput>5 0 * * * cd &lt;your-bugzilla-directory&gt; ;
- ./collectstats.pl</computeroutput>
- </member>
- </simplelist>
- </para>
-
- <para>After two days have passed you'll be able to view bug graphs from
- the Bug Reports page.</para>
- </section>
-
- <section>
- <title>The Whining Cron</title>
-
- <para>By now you have a fully functional Bugzilla, but what good are
- bugs if they're not annoying? To help make those bugs more annoying you
- can set up Bugzilla's automatic whining system to complain at engineers
- which leave their bugs in the NEW state without triaging them.
- </para>
- <para>
- This can be done by
- adding the following command as a daily crontab entry (for help on that
- see that crontab man page):
- <simplelist>
- <member>
- <computeroutput>
- <command>cd &lt;your-bugzilla-directory&gt; ;
- ./whineatnews.pl</command>
- </computeroutput>
- </member>
- </simplelist>
- </para>
-
- <tip>
- <para>Depending on your system, crontab may have several manpages.
- The following command should lead you to the most useful page for
- this purpose:
- <programlisting>
-man 5 crontab
- </programlisting>
- </para>
- </tip>
- </section>
-
- <section id="bzldap">
- <title>LDAP Authentication</title>
- <para>
- <warning>
- <para>This information on using the LDAP
- authentication options with Bugzilla is old, and the authors do
- not know of anyone who has tested it. Approach with caution.
- </para>
- </warning>
- </para>
-
- <para>
- The existing authentication
- scheme for Bugzilla uses email addresses as the primary user ID, and a
- password to authenticate that user. All places within Bugzilla where
- you need to deal with user ID (e.g assigning a bug) use the email
- address. The LDAP authentication builds on top of this scheme, rather
- than replacing it. The initial log in is done with a username and
- password for the LDAP directory. This then fetches the email address
- from LDAP and authenticates seamlessly in the standard Bugzilla
- authentication scheme using this email address. If an account for this
- address already exists in your Bugzilla system, it will log in to that
- account. If no account for that email address exists, one is created at
- the time of login. (In this case, Bugzilla will attempt to use the
- "displayName" or "cn" attribute to determine the user's full name.)
- After authentication, all other user-related tasks are still handled by
- email address, not LDAP username. You still assign bugs by email
- address, query on users by email address, etc.
- </para>
-
- <para>Using LDAP for Bugzilla authentication requires the
- Mozilla::LDAP (aka PerLDAP) Perl module. The
- Mozilla::LDAP module in turn requires Netscape's Directory SDK for C.
- After you have installed the SDK, then install the PerLDAP module.
- Mozilla::LDAP and the Directory SDK for C are both
- <ulink url="http://www.mozilla.org/directory/">available for
- download</ulink> from mozilla.org.
- </para>
-
- <para>
- Set the Param 'useLDAP' to "On" **only** if you will be using an LDAP
- directory for
- authentication. Be very careful when setting up this parameter; if you
- set LDAP authentication, but do not have a valid LDAP directory set up,
- you will not be able to log back in to Bugzilla once you log out. (If
- this happens, you can get back in by manually editing the data/params
- file, and setting useLDAP back to 0.)
- </para>
-
- <para>If using LDAP, you must set the
- three additional parameters: Set LDAPserver to the name (and optionally
- port) of your LDAP server. If no port is specified, it defaults to the
- default port of 389. (e.g "ldap.mycompany.com" or
- "ldap.mycompany.com:1234") Set LDAPBaseDN to the base DN for searching
- for users in your LDAP directory. (e.g. "ou=People,o=MyCompany") uids
- must be unique under the DN specified here. Set LDAPmailattribute to
- the name of the attribute in your LDAP directory which contains the
- primary email address. On most directory servers available, this is
- "mail", but you may need to change this.
- </para>
-
- <para>You can also try using <ulink url="http://www.openldap.org/">
- OpenLDAP</ulink> with Bugzilla, using any of a number of administration
- tools. You should apply the patch attached this bug:
- <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=158630">
- http://bugzilla.mozilla.org/show_bug.cgi?id=158630</ulink>, then set
- the following object classes for your users:
-
- <orderedlist>
- <listitem><para>objectClass: person</para></listitem>
- <listitem><para>objectClass: organizationalPerson</para></listitem>
- <listitem><para>objectClass: inetOrgPerson</para></listitem>
- <listitem><para>objectClass: top</para></listitem>
- <listitem><para>objectClass: posixAccount</para></listitem>
- <listitem><para>objectClass: shadowAccount</para></listitem>
- </orderedlist>
-
- Please note that this patch <emphasis>has not</emphasis> yet been
- accepted by the Bugzilla team, and so you may need to do some
- manual tweaking. That said, it looks like Net::LDAP is probably
- the way to go in the future.
- </para>
- </section>
-
- <section id="content-type"
- xreflabel="Preventing untrusted Bugzilla content from executing malicious Javascript code">
-
- <title>Preventing untrusted Bugzilla content from executing malicious
- Javascript code</title>
-
- <para>It is possible for a Bugzilla to execute malicious Javascript
- code. Due to internationalization concerns, we are unable to
- incorporate the code changes necessary to fulfill the CERT advisory
- requirements mentioned in
- <ulink
- url="http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3">
- http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3</ulink>.
- Executing the following code snippet from a UNIX command shell will
- rectify the problem if your Bugzilla installation is intended for an
- English-speaking audience. As always, be sure your Bugzilla
- installation has a good backup before making changes, and I recommend
- you understand what the script is doing before executing it.</para>
-
- <para>
- <programlisting>
-bash# perl -pi -e "s/Content-Type\: text\/html/Content-Type\: text\/html\; charset=ISO-8859-1/i" *.cgi *.pl
- </programlisting>
- </para>
-
- <para>All this one-liner command does is search for all instances of
- <quote>Content-type: text/html</quote>
-
- and replaces it with
- <quote>Content-Type: text/html; charset=ISO-8859-1</quote>
-
- . This specification prevents possible Javascript attacks on the
- browser, and is suggested for all English-speaking sites. For
- non-English-speaking Bugzilla sites, I suggest changing
- <quote>ISO-8859-1</quote>, above, to
- <quote>UTF-8</quote>.</para>
-
- <note>
- <para>Using &lt;meta&gt; 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 &lt;DirectoryIndex&gt; parameter for
- the Apache virtual host running your Bugzilla installation to
- allow <filename>index.cgi</filename> as the index page for a
- directory, as well as the usual <filename>index.html</filename>,
- <filename>index.htm</filename>, and so forth. </para>
- </section>
-
- <section id="mod_perl" xreflabel="Bugzilla and mod_perl">
- <title>
- Bugzilla and <filename>mod_perl</filename>
- </title>
- <para>Bugzilla is unsupported under mod_perl. Effort is underway
- to make it work cleanly in a mod_perl environment, but it is
- slow going.
- </para>
- </section>
-
- <section id="mod-throttle"
- xreflabel="Using mod_throttle to prevent Denial of Service attacks">
- <title>
- <filename>mod_throttle</filename>
-
- and Security</title>
-
- <para>It is possible for a user, by mistake or on purpose, to access
- the database many times in a row which can result in very slow access
- speeds for other users. If your Bugzilla installation is experiencing
- this problem , you may install the Apache module
- <filename>mod_throttle</filename>
-
- which can limit connections by ip-address. You may download this module
- at
- <ulink url="http://www.snert.com/Software/Throttle/">
- http://www.snert.com/Software/Throttle/</ulink>.
- Follow the instructions to install into your Apache install.
- <emphasis>This module only functions with the Apache web
- server!</emphasis>
- You may use the
- <command>ThrottleClientIP</command>
-
- command provided by this module to accomplish this goal. See the
- <ulink url="http://www.snert.com/Software/Throttle/">Module
- Instructions</ulink>
- for more information.</para>
- </section>
- </section>
-
- <section id="os-specific">
- <title>OS Specific Installation Notes</title>
-
- <para>Many aspects of the Bugzilla installation can be affected by the
- the operating system you choose to install it on. Sometimes it can be made
- easier and others more difficult. This section will attempt to help you
- understand both the difficulties of running on specific operating systems
- and the utilities available to make it easier.
- </para>
-
- <para>If you have anything to add or notes for an operating system not
- covered, please file a bug in &bzg-bugs;.
- </para>
-
- <section id="os-win32">
- <title>Microsoft Windows</title>
-
- <para>Making Bugzilla work on windows is still a very 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
- writing, all members of the Bugzilla team and all known large installations
- run on Unix based systems.
- </para>
-
- <para>If after hearing all that, you have enough pain tolerance to attempt
- installing Bugzilla on Win32, here are some pointers.
- <![%bz-devel;[
- Because this is a development version of the guide, these instructions
- are subject to change without notice. In fact, the Bugzilla Team hopes
- they do as we would like to have Bugzilla resonabally close to "out of
- the box" compatibility by the 2.18 release.
- ]]>
- </para>
-
- <section id="win32-perl">
- <title>Win32 Perl</title>
-
- <para>Perl for Windows can be obtained from <ulink
- url="http://www.activestate.com/">ActiveState</ulink>. You should be
- able to find a compiled binary at <ulink
- url="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/">http://aspn.activestate.com/ASPN/Downloads/ActivePerl/</ulink>.
- </para>
- </section>
-
- <section id="win32-perl-modules">
- <title>Perl Modules on Win32</title>
-
- <para>Bugzilla on Windows requires the same perl modules found in
- <xref linkend="install-package-list"/>. The main difference is that
- windows uses <command>ppm</command> instead of CPAN.
- </para>
-
- <programlisting>
-C:\perl&gt; <command>ppm &lt;module name&gt;</command>
- </programlisting>
-
- <note>
- <para>The above syntax should work for all modules with the exception
- of Template Toolkit. The <ulink
- url="http://tt2.org/download.html#win32">Template Toolkit website</ulink>
- suggests using the instructions on <ulink
- url="http://openinteract.sourceforge.net/">OpenInteract's website</ulink>.
- </para>
- </note>
-
- <tip>
- <para>A complete list of modules that can be installed using ppm can
- be found at <ulink url="http://www.activestate.com/PPMPackages/5.6plus">http://www.activestate.com/PPMPackages/5.6plus</ulink>.
- </para>
- </tip>
- </section>
-
- <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>
-
- <section id="win32-code-checksetup">
- <title>Changes to <filename>checksetup.pl</filename></title>
-
- <para>In <filename>checksetup.pl</filename>, the line reading:</para>
-
- <programlisting>
-my $mysql_binaries = `which mysql`;
- </programlisting>
- <para>to</para>
- <programlisting>
-my $mysql_binaries = "D:\\mysql\\bin\\mysql";
- </programlisting>
-
- <para>And you'll also need to change:</para>
-
- <programlisting>
-my $webservergid = getgrnam($my_webservergroup)
- </programlisting>
- <para>to</para>
- <programlisting>
-my $webservergid = '8'
- </programlisting>
- </section>
-
- </section>
-
- <section id="win32-http">
- <title>Serving the web pages</title>
-
- <para>As is the case on Unix based systems, any web server should be
- able to handle Bugzilla; however, the Bugzilla Team still recommends
- Apache whenever asked. No matter what web server you choose, be sure
- to pay attention to the security notes in <xref linkend="security-access"/>.
- More information on configuring specific web servers can be found in
- <xref linkend="http"/>.
- </para>
-
- <note>
- <para>If using Apache on windows, you can set the <ulink
- url="http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource">ScriptInterpreterSource</ulink>
- directive in your Apache config, if you don't do this, you'll have
- to modify the first line of every script to contain your path to
- perl instead of <filename>/usr/bin/perl</filename>.
- </para>
- </note>
-
- </section>
-
- </section>
-
- <section id="os-macosx">
- <title><productname>Mac OS X</productname></title>
-
- <!-- TODO: Clean me up... (Mac OS X) -->
- <para>There are a lot of common libraries and utilities out there that
- Apple did not include with Mac OS X, but which run perfectly well on it.
- The GD library, which Bugzilla needs to do bug graphs, is one of
- these.</para>
-
- <para>The easiest way to get a lot of these is with a program called
- Fink, which is similar in nature to the CPAN installer, but installs
- common GNU utilities. Fink is available from
- <ulink url="http://sourceforge.net/projects/fink/"/>.</para>
-
- <para>Follow the instructions for setting up Fink. Once it's installed,
- you'll want to run the following as root:
- <command>fink install gd</command>
- </para>
-
- <para>It will prompt you for a number of dependencies, type 'y' and hit
- enter to install all of the dependencies. Then watch it work.</para>
-
- <para>To prevent creating conflicts with the software that Apple installs
- by default, Fink creates its own directory tree at /sw where it installs
- most of the software that it installs. This means your libraries and
- headers for libgd will be at /sw/lib and /sw/include instead of /usr/lib
- and /usr/local/include. Because of these changed locations for the
- libraries, the Perl GD module will not install directly via CPAN, because it
- looks for the specific paths instead of getting them from your
- environment. But there's a way around that :-)</para>
-
- <para>Instead of typing
- <quote>install GD</quote>
- at the
- <prompt>cpan&gt;</prompt>
- prompt, type
- <command>look GD</command>.
- This should go through the motions of downloading the latest version of
- the GD module, then it will open a shell and drop you into the build
- directory. Apply <ulink url="../sgml/gd-makefile.patch">this patch</ulink>
- to the Makefile.PL file (save the
- patch into a file and use the command
- <command>patch &lt; patchfile</command>.)
- </para>
-
- <para>Then, run these commands to finish the installation of the GD
- module:
- <simplelist>
- <member>
- <command>perl Makefile.PL</command>
- </member>
-
- <member>
- <command>make</command>
- </member>
-
- <member>
- <command>make test</command>
- </member>
-
- <member>
- <command>make install</command>
- </member>
-
- <member>And don't forget to run
- <command>exit</command>
-
- to get back to CPAN.</member>
- </simplelist>
- </para>
-
- </section>
-
- <section id="os-mandrake">
- <title>Linux-Mandrake 8.0</title>
-
- <para>Linux-Mandrake 8.0 includes every required and optional library
- for Bugzilla. The easiest way to install them is by using the
- <command>urpmi</command> utility. If you follow these commands, you
- should have everything you need for Bugzilla, and
- <command>./checksetup.pl</command> should not complain about any
- missing libraries. You may already have some of these installed.
- </para>
-
- <screen>
-<prompt>bash#</prompt> <command>urpmi perl-mysql</command>
-<prompt>bash#</prompt> <command>urpmi perl-chart</command>
-<prompt>bash#</prompt> <command>urpmi perl-gd</command>
-<prompt>bash#</prompt> <command>urpmi perl-MailTools</command> <co id="test-mailtools"/>
-<prompt>bash#</prompt> <command>urpmi apache-modules</command>
- </screen>
- <calloutlist>
- <callout arearefs="test-mailtools">
- <para>for Bugzilla e-mail integration</para>
- </callout>
- </calloutlist>
-
- </section>
-
- </section>
-
- <section id="http">
- <title>HTTP Server Configuration</title>
-
- <para>The Bugzilla Team recommends Apache when using Bugzilla, however, any web server
- that can be configured to run <glossterm linkend="gloss-cgi">CGI</glossterm> scripts
- should be able to handle Bugzilla. No matter what web server you choose, but
- especially if you choose something other than Apache, you should be sure to read
- <xref linkend="security-access"/>.
- </para>
-
- <para>The plan for this section is to eventually document the specifics of how to lock
- down permissions on individual web servers.
- </para>
-
- <section id="http-apache">
- <title>Apache <productname>httpd</productname></title>
-
- <para>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>
-
- <para>Many Apache installations are not configured to run scripts
- anywhere but in the <filename class="directory">cgi-bin</filename>
- directory; however, we recommend that Bugzilla not be installed in the
- <filename class="directory">cgi-bin</filename>, otherwise the static
- files such as images and <xref linkend="gloss-javascript"/>
- will not work correctly. To allow scripts to run in the normal
- web space, the following changes should be made to your
- <filename>httpd.conf</filename> file.
- </para>
-
- <para>To allow files with a .cgi extension to be run, make sure the
- following line exists and is uncommented:</para>
- <programlisting>
-AddHandler cgi-script .cgi
- </programlisting>
-
- <para>To allow <filename>.htaccess</filename> files to override
- permissions and .cgi files to run in the Bugzilla directory, make sure
- the following two lines are in a <computeroutput>Directory</computeroutput>
- directive that applies to the Bugzilla directory on your system
- (either the Bugzilla directory or one of its parents).
- </para>
- <programlisting>
-Options +ExecCGI
-AllowOverride Limit
- </programlisting>
-
- <note>
- <para>For more information on Apache and its directives, see the
- glossary entry on <xref linkend="gloss-apache"/>.
- </para>
- </note>
-
- <example id="http-apache-htaccess">
- <title><filename>.htaccess</filename> files for Apache</title>
-
- <para><filename>$BUGZILLA_HOME/.htaccess</filename>
- <programlisting><![CDATA[
-# don't allow people to retrieve non-cgi executable files or our private data
-<FilesMatch ^(.*\.pl|.*localconfig.*|runtests.sh)$>
- deny from all
-</FilesMatch>
-<FilesMatch ^(localconfig.js|localconfig.rdf)$>
- allow from all
-</FilesMatch>
- ]]></programlisting>
- </para>
-
- <para><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>
-
- <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>
-
- <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>
-
- <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>
- </para>
-
- </example>
-
- </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="troubleshooting">
- <title>Troubleshooting</title>
-
- <para>This section gives solutions to common Bugzilla installation
- problems.
- </para>
-
- <section>
- <title>Bundle::Bugzilla makes me upgrade to Perl 5.6.1</title>
-
- <para>
- Try executing <command>perl -MCPAN -e 'install CPAN'</command>
- and then continuing.
- </para>
-
- <para>
- Certain older versions of the CPAN toolset were somewhat naive about how
- to upgrade Perl modules. When a couple of modules got rolled into the core
- Perl distribution for 5.6.1, CPAN thought that the best way to get those
- modules up to date was to haul down the Perl distribution itself and
- build it. Needless to say, this has caused headaches for just about
- everybody. Upgrading to a newer version of CPAN with the
- commandline above should fix things.
- </para>
- </section>
-
-
- <section>
- <title>DBD::Sponge::db prepare failed</title>
-
- <para>
- The following error message may appear due to a bug in DBD::mysql
- (over which the Bugzilla team have no control):
- </para>
-
-<programlisting><![CDATA[ DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
- SV = NULL(0x0) at 0x20fc444
- REFCNT = 1
- FLAGS = (PADBUSY,PADMY)
-]]></programlisting>
-
- <para>
- To fix this, go to
- <filename>&lt;path-to-perl&gt;/lib/DBD/sponge.pm</filename>
- in your Perl installation and replace
- </para>
-
-<programlisting><![CDATA[ my $numFields;
- if ($attribs->{'NUM_OF_FIELDS'}) {
- $numFields = $attribs->{'NUM_OF_FIELDS'};
- } elsif ($attribs->{'NAME'}) {
- $numFields = @{$attribs->{NAME}};
-]]></programlisting>
-
- <para>
- by
- </para>
-
-<programlisting><![CDATA[ my $numFields;
- if ($attribs->{'NUM_OF_FIELDS'}) {
- $numFields = $attribs->{'NUM_OF_FIELDS'};
- } elsif ($attribs->{'NAMES'}) {
- $numFields = @{$attribs->{NAMES}};
-]]></programlisting>
-
- <para>
- (note the S added to NAME.)
- </para>
- </section>
-
- <section id="paranoid-security">
- <title>cannot chdir(/var/spool/mqueue)</title>
-
- <para>If you are installing Bugzilla on SuSE Linux, or some other
- distributions with
- <quote>paranoid</quote>
- security options, it is possible that the checksetup.pl script may fail
- with the error:
-<programlisting><![CDATA[cannot chdir(/var/spool/mqueue): Permission denied
-]]></programlisting>
- </para>
-
- <para>
- This is because your
- <filename>/var/spool/mqueue</filename>
- directory has a mode of
- <quote>drwx------</quote>. Type
- <command>chmod 755
- <filename>/var/spool/mqueue</filename>
- </command>
- as root to fix this problem.
- </para>
- </section>
-
- <section id="trouble-filetemp">
- <title>Your vendor has not defined Fcntl macro O_NOINHERIT</title>
-
- <para>This is caused by a bug in the version of
- <productname>File::Temp</productname> that is distributed with perl
- 5.6.0. Many minor variations of this error have been reported. Examples
- can be found in <xref linkend="trouble-filetemp-errors"/>.
- </para>
-
- <figure id="trouble-filetemp-errors">
- <title>Other File::Temp error messages</title>
-
- <programlisting>
-Your vendor has not defined Fcntl macro O_NOINHERIT, used
-at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.
-
-Your vendor has not defined Fcntl macro O_EXLOCK, used
-at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
-
-Your vendor has not defined Fcntl macro O_TEMPORARY, used
-at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.
- </programlisting>
- </figure>
-
- <para>Numerous people have reported that upgrading to version 5.6.1
- or higher solved the problem for them. A less involved fix is to apply
- the patch in <xref linkend="trouble-filetemp-patch"/>. The patch is also
- available as a <ulink url="../sgml/filetemp.patch">patch file</ulink>.
- </para>
-
- <figure id="trouble-filetemp-patch">
- <title>Patch for File::Temp in Perl 5.6.0</title>
-
- <programlisting><![CDATA[
---- File/Temp.pm.orig Thu Feb 6 16:26:00 2003
-+++ File/Temp.pm Thu Feb 6 16:26:23 2003
-@@ -205,6 +205,7 @@
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
-+ local *CORE::GLOBAL::die = sub {};
- $bit = &$func();
- 1;
- };
-@@ -226,6 +227,7 @@
- # eg CGI::Carp
- local $SIG{__DIE__} = sub {};
- local $SIG{__WARN__} = sub {};
-+ local *CORE::GLOBAL::die = sub {};
- $bit = &$func();
- 1;
- };
- ]]></programlisting>
- </figure>
- </section>
- </section>
-</chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/integration.sgml b/docs/sgml/integration.sgml
deleted file mode 100644
index 1b0489fd9..000000000
--- a/docs/sgml/integration.sgml
+++ /dev/null
@@ -1,101 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" > -->
-<!-- Keep these tools listings in alphabetical order please. -MPB -->
-<section id="integration">
- <title>Integrating Bugzilla with Third-Party Tools</title>
-
- <section id="bonsai"
- xreflabel="Bonsai, the Mozilla automated CVS management system">
- <title>Bonsai</title>
-
- <para>Bonsai is a web-based tool for managing
- <xref linkend="cvs" />
-
- . Using Bonsai, administrators can control open/closed status of trees,
- query a fast relational database back-end for change, branch, and comment
- information, and view changes made since the last time the tree was
- closed. Bonsai
- also integrates with
- <xref linkend="tinderbox" />.
- </para>
- </section>
-
- <section id="cvs" xreflabel="CVS, the Concurrent Versioning System">
- <title>CVS</title>
-
- <para>CVS integration is best accomplished, at this point, using the
- Bugzilla Email Gateway.</para>
-
- <para>Follow the instructions in this Guide for enabling Bugzilla e-mail
- integration. Ensure that your check-in script sends an email to your
- Bugzilla e-mail gateway with the subject of
- <quote>[Bug XXXX]</quote>,
- and you can have CVS check-in comments append to your Bugzilla bug. If
- you want to have the bug be closed automatically, you'll have to modify
- the <filename>contrib/bugzilla_email_append.pl</filename> script.
- </para>
-
- <para>There is also a CVSZilla project, based upon somewhat dated
- Bugzilla code, to integrate CVS and Bugzilla through CVS' ability to
- email. Check it out at:
- <ulink url="http://homepages.kcbbs.gen.nz/~tonyg/">
- http://homepages.kcbbs.gen.nz/~tonyg/</ulink>.
- </para>
- </section>
-
- <section id="scm"
- xreflabel="Perforce SCM (Fast Software Configuration Management System, a powerful commercial alternative to CVS">
-
- <title>Perforce SCM</title>
-
- <para>You can find the project page for Bugzilla and Teamtrack Perforce
- integration (p4dti) at:
- <ulink url="http://www.ravenbrook.com/project/p4dti/">
- http://www.ravenbrook.com/project/p4dti</ulink>
-
- .
- <quote>p4dti</quote>
-
- is now an officially supported product from Perforce, and you can find
- the "Perforce Public Depot" p4dti page at
- <ulink url="http://public.perforce.com/public/perforce/p4dti/index.html">
- http://public.perforce.com/public/perforce/p4dti/index.html</ulink>
-
- .</para>
-
- <para>Integration of Perforce with Bugzilla, once patches are applied, is
- seamless. Perforce replication information will appear below the comments
- of each bug. Be certain you have a matching set of patches for the
- Bugzilla version you are installing. p4dti is designed to support
- multiple defect trackers, and maintains its own documentation for it.
- Please consult the pages linked above for further information.</para>
- </section>
-
- <section id="tinderbox"
- xreflabel="Tinderbox, the Mozilla automated build management system">
- <title>Tinderbox/Tinderbox2</title>
-
- <para>We need Tinderbox integration information.</para>
- </section>
-</section>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/introduction.sgml b/docs/sgml/introduction.sgml
deleted file mode 100644
index 33907552b..000000000
--- a/docs/sgml/introduction.sgml
+++ /dev/null
@@ -1,149 +0,0 @@
-<chapter id="introduction">
- <title>Introduction</title>
-
- <section id="whatis">
- <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.
- </para>
-
- <para>Bugzilla boasts many advanced features. These include:
- <itemizedlist>
- <listitem>
- <para>Powerful searching</para>
- </listitem>
-
- <listitem>
- <para>User-configurable email notifications of bug changes</para>
- </listitem>
-
- <listitem>
- <para>Full change history</para>
- </listitem>
-
- <listitem>
- <para>Inter-bug dependency tracking and graphing</para>
- </listitem>
-
- <listitem>
- <para>Excellent attachment management</para>
- </listitem>
-
- <listitem>
- <para>Integrated, product-based, granular security schema</para>
- </listitem>
-
- <listitem>
- <para>Fully security-audited, and runs under Perl's taint mode</para>
- </listitem>
-
- <listitem>
- <para>A robust, stable RDBMS back-end</para>
- </listitem>
-
- <listitem>
- <para>Web, XML, email and console interfaces</para>
- </listitem>
-
- <listitem>
- <para>Completely customisable and/or localisable web user
- interface</para>
- </listitem>
-
- <listitem>
- <para>Extensive configurability</para>
- </listitem>
-
- <listitem>
- <para>Smooth upgrade pathway between versions</para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id="why">
- <title>Why Should We Use Bugzilla?</title>
-
- <para>For many years, defect-tracking software has remained principally
- the domain of large software development houses. Even then, most shops
- never bothered with bug-tracking software, and instead simply relied on
- shared lists and email to monitor the status of defects. This procedure
- is error-prone and tends to cause those bugs judged least significant by
- developers to be dropped or ignored.</para>
-
- <para>These days, many companies are finding that integrated
- defect-tracking systems reduce downtime, increase productivity, and raise
- customer satisfaction with their systems. Along with full disclosure, an
- open bug-tracker allows manufacturers to keep in touch with their clients
- and resellers, to communicate about problems effectively throughout the
- data management chain. Many corporations have also discovered that
- defect-tracking helps reduce costs by providing IT support
- accountability, telephone support knowledge bases, and a common,
- well-understood system for accounting for unusual system or software
- issues.</para>
-
- <para>But why should
- <emphasis>you</emphasis>
-
- use Bugzilla?</para>
-
- <para>Bugzilla is very adaptable to various situations. Known uses
- currently include IT support queues, Systems Administration deployment
- management, chip design and development problem tracking (both
- pre-and-post fabrication), and software and hardware bug tracking for
- luminaries such as Redhat, NASA, Linux-Mandrake, and VA Systems.
- Combined with systems such as
- <ulink url="http://www.cvshome.org">CVS</ulink>,
- <ulink url="http://www.mozilla.org/bonsai.html">Bonsai</ulink>, or
- <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>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
diff --git a/docs/sgml/patches.sgml b/docs/sgml/patches.sgml
deleted file mode 100644
index 43f816758..000000000
--- a/docs/sgml/patches.sgml
+++ /dev/null
@@ -1,113 +0,0 @@
-<!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>
-
- <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">http://www.apache.org</ulink>.
- </para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="cmdline">
- <title>Command-line Bugzilla Queries</title>
-
- <para>There are a suite of Unix utilities for querying Bugzilla from the
- command line. They live in the
- <filename class="directory">contrib/cmdline</filename>
- directory. However, they
- have not yet been updated to work with 2.16 (post-templatisation.).
- There are three files - <filename>query.conf</filename>,
- <filename>buglist</filename> and <filename>bugs</filename>.</para>
-
- <para><filename>query.conf</filename>
- contains the mapping from options to field
- names and comparison types. Quoted option names are "grepped" for, so it
- should be easy to edit this file. Comments (#) have no effect; you must
- make sure these lines do not contain any quoted "option".</para>
-
- <para><filename>buglist</filename>
- is a shell script which submits a Bugzilla query and writes
- the resulting HTML page to stdout. It supports both short options, (such
- as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or
- "--reporter=bar"). If the first character of an option is not "-", it is
- treated as if it were prefixed with "--default=".</para>
-
- <para>The column list is taken from the COLUMNLIST environment variable.
- This is equivalent to the "Change Columns" option when you list bugs in
- buglist.cgi. If you have already used Bugzilla, grep for COLUMNLIST
- in your cookies file to see your current COLUMNLIST setting.</para>
-
- <para><filename>bugs</filename> is a simple shell script which calls
- <filename>buglist</filename> and extracts the
- bug numbers from the output. Adding the prefix
- "http://bugzilla.mozilla.org/buglist.cgi?bug_id=" turns the bug list into
- a working link if any bugs are found. Counting bugs is easy. Pipe the
- results through
- <command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command>
- </para>
-
- <para>Akkana Peck says she has good results piping
- <filename>buglist</filename> output through
- <command>w3m -T text/html -dump</command>
- </para>
-
- </section>
-
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/requiredsoftware.sgml b/docs/sgml/requiredsoftware.sgml
deleted file mode 100644
index f32f0dc2f..000000000
--- a/docs/sgml/requiredsoftware.sgml
+++ /dev/null
@@ -1,88 +0,0 @@
-<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-<appendix id="downloadlinks">
- <title>Software Download Links</title>
-
- <para>All of these sites are current as of April, 2001. Hopefully they'll
- stay current for a while.</para>
-
- <para>Apache Web Server:
- <ulink url="http://www.apache.org/">http://www.apache.org</ulink>
-
- Optional web server for Bugzilla, but recommended because of broad user
- base and support.</para>
-
- <para>Bugzilla:
- <ulink url="http://www.bugzilla.org/">
- http://www.bugzilla.org/</ulink>
- </para>
-
- <para>MySQL:
- <ulink url="http://www.mysql.com/">http://www.mysql.com/</ulink>
- </para>
-
- <para>Perl:
- <ulink url="http://www.perl.org">http://www.perl.org/</ulink>
- </para>
-
- <para>CPAN:
- <ulink url="http://www.cpan.org/">http://www.cpan.org/</ulink>
- </para>
-
- <para>DBI Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/DBI/">
- http://www.cpan.org/modules/by-module/DBI/</ulink>
- </para>
-
- <para>Data::Dumper module:
- <ulink url="http://www.cpan.org/modules/by-module/Data/">
- http://www.cpan.org/modules/by-module/Data/</ulink>
- </para>
-
- <para>MySQL related Perl modules:
- <ulink url="http://www.cpan.org/modules/by-module/Mysql/">
- http://www.cpan.org/modules/by-module/Mysql/</ulink>
- </para>
-
- <para>TimeDate Perl module collection:
- <ulink url="http://www.cpan.org/modules/by-module/Date/">
- http://www.cpan.org/modules/by-module/Date/</ulink>
- </para>
-
- <para>GD Perl module:
- <ulink url="http://www.cpan.org/modules/by-module/GD/">
- http://www.cpan.org/modules/by-module/GD/</ulink>
-
- Alternately, you should be able to find the latest version of GD at
- <ulink url="http://www.boutell.com/gd/">http://www.boutell.com/gd/</ulink>
- </para>
-
- <para>Chart::Base module:
- <ulink url="http://www.cpan.org/modules/by-module/Chart/">
- http://www.cpan.org/modules/by-module/Chart/</ulink>
- </para>
-
- <para>(But remember, Bundle::Bugzilla will install all the modules for you.)
- </para>
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/using.sgml b/docs/sgml/using.sgml
deleted file mode 100644
index a3986c27d..000000000
--- a/docs/sgml/using.sgml
+++ /dev/null
@@ -1,580 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
-
-<chapter id="using">
- <title>Using Bugzilla</title>
-
- <section id="how">
- <title>How do I use Bugzilla?</title>
-
- <para>This section contains information for end-users of Bugzilla.
- There is a Bugzilla test installation, called
- <ulink url="http://landfill.bugzilla.org/">Landfill</ulink>,
- which you are welcome to play with (if it's up.)
- However, it does not necessarily
- have all Bugzilla features enabled, and often runs cutting-edge versions
- of Bugzilla for testing, so some things may work slightly differently
- than mentioned here.</para>
-
- <section id="myaccount">
- <title>Create a Bugzilla Account</title>
-
- <para>If you want to use Bugzilla, first you need to create an account.
- Consult with the administrator responsible for your installation of
- Bugzilla for the URL you should use to access it. If you're
- test-driving Bugzilla, use this URL:
- <ulink url="http://landfill.bugzilla.org/bugzilla-tip/">
- http://landfill.bugzilla.org/bugzilla-tip/</ulink>
- </para>
-
- <orderedlist>
- <listitem>
- <para>Click the
- <quote>Open a new Bugzilla account</quote>
-
- link, enter your email address and, optionally, your name in the
- spaces provided, then click
- <quote>Create Account</quote>
-
- .</para>
- </listitem>
-
- <listitem>
- <para>Within moments, you should receive an email to the address
- you provided above, which contains your login name (generally the
- same as the email address), and a password you can use to access
- your account. This password is randomly generated, and can be
- changed to something more memorable.</para>
- </listitem>
-
- <listitem>
- <para>Click the
- <quote>Log In</quote>
- link in the yellow area at the bottom of the page in your browser,
- enter your email address and password into the spaces provided, and
- click
- <quote>Login</quote>.
- </para>
-
- </listitem>
- </orderedlist>
-
- <para>You are now logged in. Bugzilla uses cookies for authentication
- so, unless your IP address changes, you should not have to log in
- again.</para>
- </section>
-
- <section id="bug_page">
- <title>Anatomy of a Bug</title>
-
- <para>The core of Bugzilla is the screen which displays a particular
- bug. It's a good place to explain some Bugzilla concepts.
- <ulink
- url="http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1">
- Bug 1 on Landfill</ulink>
-
- is a good example. Note that the labels for most fields are hyperlinks;
- clicking them will take you to context-sensitive help on that
- particular field. Fields marked * may not be present on every
- installation of Bugzilla.</para>
-
- <orderedlist>
- <listitem>
- <para>
- <emphasis>Product and Component</emphasis>:
- Bugs are divided up by Product and Component, with a Product
- having one or more Components in it. For example,
- bugzilla.mozilla.org's "Bugzilla" Product is composed of several
- Components:
- <simplelist>
- <member>
- <emphasis>Administration:</emphasis>
- Administration of a Bugzilla installation.</member>
-
- <member>
- <emphasis>Bugzilla-General:</emphasis>
- Anything that doesn't fit in the other components, or spans
- multiple components.</member>
-
- <member>
- <emphasis>Creating/Changing Bugs:</emphasis>
- Creating, changing, and viewing bugs.</member>
-
- <member>
- <emphasis>Documentation:</emphasis>
- The Bugzilla documentation, including The Bugzilla Guide.</member>
-
- <member>
- <emphasis>Email:</emphasis>
- Anything to do with email sent by Bugzilla.</member>
-
- <member>
- <emphasis>Installation:</emphasis>
- The installation process of Bugzilla.</member>
-
- <member>
- <emphasis>Query/Buglist:</emphasis>
- Anything to do with searching for bugs and viewing the
- buglists.</member>
-
- <member>
- <emphasis>Reporting/Charting:</emphasis>
- Getting reports from Bugzilla.</member>
-
- <member>
- <emphasis>User Accounts:</emphasis>
- Anything about managing a user account from the user's perspective.
- Saved queries, creating accounts, changing passwords, logging in,
- etc.</member>
-
- <member>
- <emphasis>User Interface:</emphasis>
- General issues having to do with the user interface cosmetics (not
- functionality) including cosmetic issues, HTML templates,
- etc.</member>
- </simplelist>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Status and Resolution:</emphasis>
-
- These define exactly what state the bug is in - from not even
- being confirmed as a bug, through to being fixed and the fix
- confirmed by Quality Assurance. The different possible values for
- Status and Resolution on your installation should be documented in the
- context-sensitive help for those items.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Assigned To:</emphasis>
- The person responsible for fixing the bug.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*URL:</emphasis>
- A URL associated with the bug, if any.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Summary:</emphasis>
- A one-sentence summary of the problem.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*Status Whiteboard:</emphasis>
- (a.k.a. Whiteboard) A free-form text area for adding short notes
- and tags to a bug.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*Keywords:</emphasis>
- The administrator can define keywords which you can use to tag and
- categorise bugs - e.g. The Mozilla Project has keywords like crash
- and regression.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Platform and OS:</emphasis>
- These indicate the computing environment where the bug was
- found.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Version:</emphasis>
- The "Version" field is usually used for versions of a product which
- have been released, and is set to indicate which versions of a
- Component have the particular problem the bug report is
- about.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Priority:</emphasis>
- The bug assignee uses this field to prioritise his or her bugs.
- It's a good idea not to change this on other people's bugs.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Severity:</emphasis>
- This indicates how severe the problem is - from blocker
- ("application unusable") to trivial ("minor cosmetic issue"). You
- can also use this field to indicate whether a bug is an enhancement
- request.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*Target:</emphasis>
- (a.k.a. Target Milestone) A future version by which the bug is to
- be fixed. e.g. The Bugzilla Project's milestones for future
- Bugzilla versions are 2.18, 2.20, 3.0, etc. Milestones are not
- restricted to numbers, thought - you can use any text strings, such
- as dates.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Reporter:</emphasis>
- The person who filed the bug.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>CC list:</emphasis>
- A list of people who get mail when the bug changes.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Attachments:</emphasis>
- You can attach files (e.g. testcases or patches) to bugs. If there
- are any attachments, they are listed in this section.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*Dependencies:</emphasis>
- If this bug cannot be fixed unless other bugs are fixed (depends
- on), or this bug stops other bugs being fixed (blocks), their
- numbers are recorded here.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>*Votes:</emphasis>
- Whether this bug has any votes.</para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis>Additional Comments:</emphasis>
- You can add your two cents to the bug discussion here, if you have
- something worthwhile to say.</para>
- </listitem>
- </orderedlist>
- </section>
-
- <section id="query">
- <title>Searching for Bugs</title>
-
- <para>The Bugzilla Search page is is the interface where you can find
- any bug report, comment, or patch currently in the Bugzilla system. You
- can play with it here:
- <ulink url="http://landfill.bugzilla.org/bugzilla-tip/query.cgi">
- landfill.bugzilla.org/bugzilla-tip/query.cgi</ulink>
-
- .</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>
-
- <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>
- </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>The format of the list is configurable. For example, it can be
- sorted by clicking the column headings. Other useful features can be
- accessed using the links at the bottom of the list:
- <simplelist>
- <member>
- <emphasis>Long Format:</emphasis>
-
- this gives you a large page with a non-editable summary of the fields
- of each bug.</member>
-
- <member>
- <emphasis>Change Columns:</emphasis>
-
- change the bug attributes which appear in the list.</member>
-
- <member>
- <emphasis>Change several bugs at once:</emphasis>
-
- If your account is sufficiently empowered, you can make the same
- change to all the bugs in the list - for example, changing their
- owner.</member>
-
- <member>
- <emphasis>Send mail to bug owners:</emphasis>
-
- Sends mail to the owners of all bugs on the list.</member>
-
- <member>
- <emphasis>Edit this query:</emphasis>
-
- If you didn't get exactly the results you were looking for, you can
- return to the Query page through this link and make small revisions
- to the query you just made so you get more accurate results.</member>
- </simplelist>
- </para>
- </section>
-
- <section id="bugreports">
- <title>Filing Bugs</title>
-
- <para>Years of bug writing experience has been distilled for your
- reading pleasure into the
- <ulink
- url="http://landfill.bugzilla.org/bugzilla-tip/bugwritinghelp.html">
- Bug Writing Guidelines</ulink>.
- While some of the advice is Mozilla-specific, the basic principles of
- reporting Reproducible, Specific bugs, isolating the Product you are
- using, the Version of the Product, the Component which failed, the
- Hardware Platform, and Operating System you were using at the time of
- the failure go a long way toward ensuring accurate, responsible fixes
- for the bug that bit you.</para>
-
- <para>The procedure for filing a test bug is as follows:</para>
-
- <orderedlist>
- <listitem>
- <para>Go to
- <ulink url="http://landfill.bugzilla.org/bugzilla-tip/">
- Landfill</ulink>
- in your browser and click
- <ulink
- url="http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi">
- Enter a new bug report</ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>Select a product - any one will do.</para>
- </listitem>
-
- <listitem>
- <para>Fill in the fields. Bugzilla should have made reasonable
- guesses, based upon your browser, for the "Platform" and "OS"
- drop-down boxes. If they are wrong, change them.</para>
- </listitem>
-
- <listitem>
- <para>Select "Commit" and send in your bug report.</para>
- </listitem>
- </orderedlist>
- </section>
- </section>
-
- <section id="hintsandtips">
- <title>Hints and Tips</title>
-
- <para>This section distills some Bugzilla tips and best practices
- that have been developed.</para>
-
- <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.
- 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
- <ulink url="http://www.bugzilla.org">http://www.bugzilla.org</ulink>.
- Other strings which get linkified in the obvious manner are:
- <simplelist>
- <member>bug 12345</member>
- <member>bug 23456, comment 53</member>
- <member>attachment 4321</member>
- <member>mailto:george@example.com</member>
- <member>george@example.com</member>
- <member>ftp://ftp.mozilla.org</member>
- <member>Most other sorts of URL</member>
- </simplelist>
- </para>
-
- <para>A corollary here is that if you type a bug number in a comment,
- you should put the word "bug" before it, so it gets autolinkified
- for the convenience of others.
- </para>
- </section>
-
- <section id="quicksearch">
- <title>Quicksearch</title>
-
- <para>Quicksearch is a single-text-box query tool which uses
- metacharacters to indicate what is to be searched. For example, typing
- "<filename>foo|bar</filename>"
- into Quicksearch would search for "foo" or "bar" in the
- summary and status whiteboard of a bug; adding
- "<filename>:BazProduct</filename>" would
- search only in that product.
- </para>
-
- <para>You'll find the Quicksearch box on Bugzilla's
- front page, along with a
- <ulink url="../../quicksearch.html">Help</ulink>
- link which details how to use it.</para>
- </section>
-
- <section id="commenting">
- <title>Comments</title>
-
- <para>If you are changing the fields on a bug, only comment if
- either you have something pertinent to say, or Bugzilla requires it.
- Otherwise, you may spam people unnecessarily with bug mail.
- To take an example: a user can set up their account to filter out messages
- where someone just adds themselves to the CC field of a bug
- (which happens a lot.) If you come along, add yourself to the CC field,
- and add a comment saying "Adding self to CC", then that person
- gets a pointless piece of mail they would otherwise have avoided.
- </para>
-
- <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
- four line ASCII art creations are not.
- </para>
- </section>
-
- <section id="attachments">
- <title>Attachments</title>
-
- <para>
- Use attachments, rather than comments, for large chunks of ASCII data,
- such as trace, debugging output files, or log files. That way, it doesn't
- bloat the bug for everyone who wants to read it, and cause people to
- receive fat, useless mails.
- </para>
-
- <para>Trim screenshots. There's no need to show the whole screen if
- you are pointing out a single-pixel problem.
- </para>
-
- <para>Don't attach simple test cases (e.g. one HTML file, one
- CSS file and an image) as a ZIP file. Instead, upload them in
- reverse order and edit the referring file so that they point to the
- attached files. This way, the test case works immediately
- out of the bug.
- </para>
- </section>
-
- <section>
- <title>Filing Bugs</title>
-
- <para>Try to make sure that everything said in the summary is also
- said in the first comment. Summaries are often updated and this will
- ensure your original information is easily accessible.
- </para>
-
- <para>
- You do not need to put "any" or similar strings in the URL field.
- If there is no specific URL associated with the bug, leave this
- field blank.
- </para>
-
- <para>If you feel a bug you filed was incorrectly marked as a
- DUPLICATE of another, please question it in your bug, not
- the bug it was duped to. Feel free to CC the person who duped it
- if they are not already CCed.
- </para>
- </section>
- </section>
-
- <section id="userpreferences">
- <title>User Preferences</title>
-
- <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>
-
- <section id="accountsettings" xreflabel="Account Settings">
- <title>Account Settings</title>
-
- <para>On this tab, you can change your basic account information,
- including your password, email address and real name. For security
- reasons, in order to change anything on this page you must type your
- <emphasis>current</emphasis>
- password into the
- <quote>Password</quote>
- field at the top of the page.
- If you attempt to change your email address, a confirmation
- email is sent to both the old and new addresses, with a link to use to
- confirm the change. This helps to prevent account hijacking.</para>
- </section>
-
- <section id="emailsettings">
- <title>Email Settings</title>
-
- <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>
-
- <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
- bugmail of other users (security settings permitting.) This powerful
- functionality enables seamless transitions as developers change
- projects or users go on holiday.</para>
-
- <note>
- <para>The ability to watch other users may not be available in all
- Bugzilla installations. If you can't see it, ask your
- administrator.</para>
- </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>
-
- <para>This is a purely informative page which outlines your current
- permissions on this installation of Bugzilla - what product groups you
- are in, and whether you can edit bugs or perform various administration
- functions.</para>
- </section>
- </section>
-</chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-
diff --git a/docs/sgml/variants.sgml b/docs/sgml/variants.sgml
deleted file mode 100644
index 3a7fd6743..000000000
--- a/docs/sgml/variants.sgml
+++ /dev/null
@@ -1,123 +0,0 @@
-<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN">-->
-<appendix id="variants" xreflabel="Bugzilla Variants and Competitors">
- <title>Bugzilla Variants and Competitors</title>
-
- <para>I created this section to answer questions about Bugzilla competitors
- and variants, then found a wonderful site which covers an awful lot of what
- I wanted to discuss. Rather than quote it in its entirety, I'll simply
- refer you here:
- <ulink url="http://linas.org/linux/pm.html">
- http://linas.org/linux/pm.html</ulink>
- </para>
-
- <section id="variant-redhat">
- <title>Red Hat Bugzilla</title>
-
- <para>Red Hat's old fork of Bugzilla which was based on version 2.8 is now
- obsolete. The newest version in use is based on version 2.17.1 and is in
- the process of being integrated into the main Bugzilla source tree. The
- back-end is modified to work with PostgreSQL instead of MySQL and they have
- custom templates to get their desired look and feel, but other than that it
- is Bugzilla 2.17.1. Dave Lawrence of Red Hat put forth a great deal of
- effort to make sure that the changes he made could be integrated back into
- the main tree.
- <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=98304">Bug
- 98304</ulink> exists to track this integration.
- </para>
-
- <para>URL:
- <ulink url="http://bugzilla.redhat.com/bugzilla/">
- http://bugzilla.redhat.com/bugzilla/</ulink>
- </para>
-
- <para>This section last updated 24 Dec 2002</para>
- </section>
-
- <section id="variant-fenris">
- <title>Loki Bugzilla (Fenris)</title>
-
- <para>Fenris was a fork from Bugzilla made by Loki Games; when
- Loki went into receivership, it died. While Loki's other code lives on,
- its custodians recommend Bugzilla for future bug-tracker deployments.
- </para>
-
- <para>This section last updated 27 Jul 2002</para>
- </section>
-
- <section id="variant-issuezilla">
- <title>Issuezilla</title>
-
- <para>Issuezilla was another fork from Bugzilla, made by collab.net and
- hosted at tigris.org. It is also dead; the primary focus of bug-tracking
- at tigris.org is their Java-based bug-tracker,
- <xref linkend="variant-scarab"/>.</para>
-
- <para>This section last updated 27 Jul 2002</para>
- </section>
-
- <section id="variant-scarab">
- <title>Scarab</title>
-
- <para>Scarab is a new open source bug-tracking system built using Java
- Servlet technology. It is currently at version 1.0 beta 13.</para>
-
- <para>URL:
- <ulink url="http://scarab.tigris.org/">http://scarab.tigris.org</ulink>
- </para>
-
- <para>This section last updated 18 Jan 2003</para>
- </section>
-
- <section id="variant-perforce">
- <title>Perforce SCM</title>
-
- <para>Although Perforce isn't really a bug tracker, it can be used as
- such through the <quote>jobs</quote>
- functionality.</para>
-
- <para>URL:
- <ulink url="http://www.perforce.com/perforce/technotes/note052.html">
- http://www.perforce.com/perforce/technotes/note052.html
- </ulink>
- </para>
-
- <para>This section last updated 27 Jul 2002</para>
- </section>
-
- <section id="variant-sourceforge">
- <title>SourceForge</title>
-
- <para>SourceForge is a way of coordinating geographically
- distributed free software and open source projects over the Internet.
- It has a built-in bug tracker, but it's not highly thought of.</para>
-
- <para>URL:
- <ulink url="http://www.sourceforge.net">
- http://www.sourceforge.net</ulink>
- </para>
-
- <para>This section last updated 27 Jul 2002</para>
- </section>
-</appendix>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-always-quote-attributes:t
-sgml-auto-insert-required-elements:t
-sgml-balanced-tag-edit:t
-sgml-exposed-tags:nil
-sgml-general-insert-case:lower
-sgml-indent-data:t
-sgml-indent-step:2
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-sgml-minimize-attributes:nil
-sgml-namecase-general:t
-sgml-omittag:t
-sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
-sgml-shorttag:t
-sgml-tag-region-if-active:t
-End:
--->
-