Commit 8ab64629 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 182975: Bugzilla directory structure to be adopted to l10n needs - Patch by…

Bug 182975: Bugzilla directory structure to be adopted to l10n needs - Patch by A.A. Shimono (himorin) <shimono@mozilla.gr.jp> r=LpSolit r=mkanat a=LpSolit
parent 59d76227
...@@ -56,7 +56,7 @@ sub get_param_list { ...@@ -56,7 +56,7 @@ sub get_param_list {
{ {
name => 'docs_urlbase', name => 'docs_urlbase',
type => 't', type => 't',
default => 'docs/html/', default => 'docs/%lang%/html/',
checker => \&check_url checker => \&check_url
}, },
......
...@@ -117,8 +117,9 @@ sub FILESYSTEM { ...@@ -117,8 +117,9 @@ sub FILESYSTEM {
'install-module.pl' => { perms => $owner_executable }, 'install-module.pl' => { perms => $owner_executable },
'docs/makedocs.pl' => { perms => $owner_executable }, 'docs/makedocs.pl' => { perms => $owner_executable },
'docs/rel_notes.txt' => { perms => $ws_readable }, 'docs/style.css' => { perms => $ws_readable },
'docs/README.docs' => { perms => $owner_readable }, 'docs/*/rel_notes.txt' => { perms => $ws_readable },
'docs/*/README.docs' => { perms => $owner_readable },
"$datadir/bugzilla-update.xml" => { perms => $ws_writeable }, "$datadir/bugzilla-update.xml" => { perms => $ws_writeable },
"$datadir/params" => { perms => $ws_writeable }, "$datadir/params" => { perms => $ws_writeable },
"$datadir/mailer.testfile" => { perms => $ws_writeable }, "$datadir/mailer.testfile" => { perms => $ws_writeable },
...@@ -168,17 +169,17 @@ sub FILESYSTEM { ...@@ -168,17 +169,17 @@ sub FILESYSTEM {
dirs => $ws_dir_readable }, dirs => $ws_dir_readable },
t => { files => $owner_readable, t => { files => $owner_readable,
dirs => $owner_dir_readable }, dirs => $owner_dir_readable },
'docs/html' => { files => $ws_readable, 'docs/*/html' => { files => $ws_readable,
dirs => $ws_dir_readable }, dirs => $ws_dir_readable },
'docs/pdf' => { files => $ws_readable, 'docs/*/pdf' => { files => $ws_readable,
dirs => $ws_dir_readable }, dirs => $ws_dir_readable },
'docs/txt' => { files => $ws_readable, 'docs/*/txt' => { files => $ws_readable,
dirs => $ws_dir_readable }, dirs => $ws_dir_readable },
'docs/images' => { files => $ws_readable, 'docs/*/images' => { files => $ws_readable,
dirs => $ws_dir_readable }, dirs => $ws_dir_readable },
'docs/lib' => { files => $owner_readable, 'docs/lib' => { files => $owner_readable,
dirs => $owner_dir_readable }, dirs => $owner_dir_readable },
'docs/xml' => { files => $owner_readable, 'docs/*/xml' => { files => $owner_readable,
dirs => $owner_dir_readable }, dirs => $owner_dir_readable },
); );
......
...@@ -38,6 +38,7 @@ our @EXPORT_OK = qw( ...@@ -38,6 +38,7 @@ our @EXPORT_OK = qw(
get_version_and_os get_version_and_os
indicate_progress indicate_progress
install_string install_string
include_languages
template_include_path template_include_path
vers_cmp vers_cmp
get_console_locale get_console_locale
...@@ -123,7 +124,7 @@ sub install_string { ...@@ -123,7 +124,7 @@ sub install_string {
return $string_template; return $string_template;
} }
sub template_include_path { sub include_languages {
my ($params) = @_; my ($params) = @_;
$params ||= {}; $params ||= {};
...@@ -171,7 +172,12 @@ sub template_include_path { ...@@ -171,7 +172,12 @@ sub template_include_path {
if (!grep($_ eq 'en', @usedlanguages)) { if (!grep($_ eq 'en', @usedlanguages)) {
push(@usedlanguages, 'en'); push(@usedlanguages, 'en');
} }
return @usedlanguages;
}
sub template_include_path {
my @usedlanguages = include_languages(@_);
# Now, we add template directories in the order they will be searched: # Now, we add template directories in the order they will be searched:
# First, we add extension template directories, because extension templates # First, we add extension template directories, because extension templates
...@@ -516,6 +522,12 @@ Each extension has its own directory. ...@@ -516,6 +522,12 @@ Each extension has its own directory.
Note that languages are sorted by the user's preference (as specified Note that languages are sorted by the user's preference (as specified
in their browser, usually), and extensions are sorted alphabetically. in their browser, usually), and extensions are sorted alphabetically.
=item C<include_languages>
Used by L<Bugzilla::Template> to determine the languages' list which
are compiled with the browser's I<Accept-Language> and the languages
of installed templates.
=item C<vers_cmp> =item C<vers_cmp>
=over =over
......
...@@ -36,7 +36,7 @@ use strict; ...@@ -36,7 +36,7 @@ use strict;
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Install::Requirements; use Bugzilla::Install::Requirements;
use Bugzilla::Install::Util qw(install_string template_include_path); use Bugzilla::Install::Util qw(install_string template_include_path include_languages);
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -729,6 +729,14 @@ sub create { ...@@ -729,6 +729,14 @@ sub create {
# Allow templates to access the "corect" URLBase value # Allow templates to access the "corect" URLBase value
'urlbase' => sub { return Bugzilla::Util::correct_urlbase(); }, 'urlbase' => sub { return Bugzilla::Util::correct_urlbase(); },
# Allow templates to access docs url with users' preferred language
'docs_urlbase' => sub {
my ($language) = include_languages();
my $docs_urlbase = Bugzilla->params->{'docs_urlbase'};
$docs_urlbase =~ s/\%lang\%/$language/;
return $docs_urlbase;
},
# These don't work as normal constants. # These don't work as normal constants.
DB_MODULE => \&Bugzilla::Constants::DB_MODULE, DB_MODULE => \&Bugzilla::Constants::DB_MODULE,
REQUIRED_MODULES => REQUIRED_MODULES =>
......
Welcome to the Bugzilla documentation project!
You'll find these directories and files here:
README.docs # This README file
html/ # The compiled HTML docs from XML sources (do not edit)
txt/ # The compiled text docs from XML sources (do not edit)
xml/ # The original XML doc sources (edit these)
A note about the XML:
The documentation is written in DocBook 4.1.2, and attempts to adhere
to the LinuxDoc standards where applicable (http://www.tldp.org).
Please consult "The LDP Author Guide" at tldp.org for details on how
to set up your personal environment for compiling XML files.
If you need to make corrections to typographical errors, or other minor
editing duties, feel free to use any text editor to make the changes. XML
is not rocket science -- simply make sure your text appears between
appropriate tags (like <para>This is a paragraph</para>) and we'll be fine.
If you are making more extensive changes, please ensure you at least validate
your XML before checking it in with something like:
nsgmls -s $JADE_PUB/xml.dcl Bugzilla-Guide.xml
When you validate, please validate the master document (Bugzilla-Guide.xml)
as well as the document you edited to ensure there are no critical errors.
The following errors are considered "normal" when validating with nsgmls:
DTDDECL catalog entries are not supported
"DOCTYPE" declaration not allowed in instance
The reason these occur is that free sgml/xml validators do not yet support
the DTDDECL catalog entries, and I've included DOCTYPE declarations in
entities referenced from Bugzilla-Guide.xml so these entities can compile
individually, if necessary. I suppose I ought to comment them out at some
point, but for now they are convenient and don't hurt anything.
Thanks for taking the time to read these notes and consulting the
documentation. Please address comments and questions to the newsgroup:
news://news.mozilla.org/netscape/public/mozilla/webtools .
==========
HOW TO SET UP YOUR OWN XML EDITING ENVIRONMENT:
==========
Trying to set up an XML Docbook editing environment the
first time can be a daunting task.
I use Linux-Mandrake, in part, because it has a fully-functional
XML Docbook editing environment included as part of the
distribution CD's. If you have easier instructions for how to
do this for a particular Linux distribution or platform, please
let the team know at the mailing list: mozilla-webtools@mozilla.org.
The following text is taken nearly verbatim from
http://bugzilla.mozilla.org/show_bug.cgi?id=95970, where I gave
these instructions to someone who wanted the greater manageability
maintaining a document in Docbook brings:
This is just off the top of my head, but here goes. Note some of these may
NOT be necessary, but I don't think they hurt anything by being installed.
rpms:
openjade
jadetex
docbook-dtds
docbook-style-dsssl
docbook-style-dsssl-doc
docbook-utils
xemacs
psgml
sgml-tools
sgml-common
If you're getting these from RedHat, make sure you get the ones in the
rawhide area. The ones in the 7.2 distribution are too old and don't
include the XML stuff. The packages distrubuted with RedHat 8.0 and 9
and known to work.
Download "ldp.dsl" from the Resources page on tldp.org. This is the
stylesheet I use to get the HTML and text output. It works well, and has a
nice, consistent look with the rest of the linuxdoc documents. You'll have to
adjust the paths in ldp.dsl at the top of the file to reflect the actual
locations of your docbook catalog files. I created a directory,
/usr/share/sgml/docbook/ldp, and put the ldp.dsl file there. I then edited
ldp.dsl and changed two lines near the top:
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets/html/docbook.dsl" CDATA
dsssl>
...and...
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets/print/docbook.dsl" CDATA
dsssl>
Note the difference is the top one points to the HTML docbook stylesheet,
and the next one points to the PRINT docbook stylesheet.
Also note that modifying ldp.dsl doesn't seem to be needed on RedHat 9.
You know, this sure looks awful involved. Anyway, once you have this in
place, add to your .bashrc:
export SGML_CATALOG_FILES=/etc/sgml/catalog
export LDP_HOME=/usr/share/sgml/docbook/ldp
export JADE_PUB=/usr/share/doc/openjade-1.3.1/pubtext
or in .tcshrc:
setenv SGML_CATALOG_FILES /etc/sgml/catalog
setenv LDP_HOME /usr/share/sgml/docbook/ldp
setenv JADE_PUB /usr/share/doc/openjade-1.3.1/pubtext
If you have root access and want to set this up for anyone on your box,
you can add those lines to /etc/profile for bash users and /etc/csh.login
for tcsh users.
Make sure you edit the paths in the above environment variables if those
folders are anywhere else on your system (for example, the openjade version
might change if you get a new version at some point).
I suggest xemacs for editing your XML Docbook documents. The darn
thing just works, and generally includes PSGML mode by default. Not to
mention you can validate the SGML from right within it without having to
remember the command-line syntax for nsgml (not that it's that hard
anyway). If not, you can download psgml at
http://www.sourceforge.net/projects/psgml.
Another good editor is the latest releases of vim and gvim. Vim will
recognize DocBook tags and give them a different color than unreconized tags.
==========
NOTES:
==========
Here are the commands I use to maintain this documentation.
You MUST have DocBook 4.1.2 set up correctly in order for this to work.
These commands can be run all at once using the ./makedocs.pl script.
To create HTML documentation:
bash$ cd html
bash$ jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml
To create HTML documentation as a single big HTML file:
bash$ cd html
bash$ jade -V nochunks -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml >Bugzilla-Guide.html
To create TXT documentation as a single big TXT file:
bash$ cd txt
bash$ lynx -dump -nolist ../html/Bugzilla-Guide.html >Bugzilla-Guide.txt
Sincerely,
Matthew P. Barnson
The Bugzilla "Doc Knight"
mbarnson@sisna.com
with major edits by Dave Miller <justdave@syndicomm.com> based on
experience setting this up on the Landfill test server.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY % myents SYSTEM "bugzilla.ent">
%myents;
<!-- Include macros -->
<!ENTITY about SYSTEM "about.xml">
<!ENTITY conventions SYSTEM "conventions.xml">
<!ENTITY doc-index SYSTEM "index.xml">
<!ENTITY gfdl SYSTEM "gfdl.xml">
<!ENTITY glossary SYSTEM "glossary.xml">
<!ENTITY installation SYSTEM "installation.xml">
<!ENTITY administration SYSTEM "administration.xml">
<!ENTITY security SYSTEM "security.xml">
<!ENTITY using SYSTEM "using.xml">
<!ENTITY integration SYSTEM "integration.xml">
<!ENTITY index SYSTEM "index.xml">
<!ENTITY customization SYSTEM "customization.xml">
<!ENTITY troubleshooting SYSTEM "troubleshooting.xml">
<!ENTITY patches SYSTEM "patches.xml">
<!ENTITY introduction SYSTEM "introduction.xml">
<!ENTITY modules SYSTEM "modules.xml">
<!-- Things to change for a stable release:
* bz-ver to current stable
* bz-nexver to next stable
* bz-date to the release date
* landfillbase to the branch install
* Remove the BZ-DEVEL comments
- COMPILE DOCS AND CHECKIN -
Also, tag and tarball before completing
* bz-ver to devel version
For a devel release, simple bump bz-ver and bz-date
-->
<!ENTITY bz-ver "3.1.3">
<!ENTITY bz-nextver "3.2">
<!ENTITY bz-date "2008-02-01">
<!ENTITY current-year "2008">
<!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-tip/">
<!ENTITY bz "http://www.bugzilla.org/">
<!ENTITY bzg-bugs "<ulink url='https://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&amp;component=Documentation'>Bugzilla Documentation</ulink>">
<!ENTITY mysql "http://www.mysql.com/">
<!ENTITY min-perl-ver "5.8.1">
]>
<!-- 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.xml.
* Try to use Entities for frequently-used passages of text as well.
* Ensure all documents compile cleanly to HTML after modification.
The warning, "DTDDECL catalog types not supported" is normal.
* 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.
* 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 <!-- /BZ-DEVEL -->
Release</title>
<authorgroup>
<corpauthor>The Bugzilla Team</corpauthor>
</authorgroup>
<pubdate>&bz-date;</pubdate>
<abstract>
<para>
This is the documentation for Bugzilla, a
bug-tracking system from mozilla.org.
Bugzilla is an enterprise-class piece of software
that tracks millions of bugs and issues for hundreds of
organizations around the world.
</para>
<para>
The most current version of this document can always be found on the
<ulink url="http://www.bugzilla.org/docs/">Bugzilla
Documentation Page</ulink>.
</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;
<!-- Installing Bugzilla -->
&installation;
<!-- Administering Bugzilla -->
&administration;
<!-- Securing Bugzilla -->
&security;
<!-- Using Bugzilla -->
&using;
<!-- Customizing Bugzilla -->
&customization;
<!-- Appendix: Troubleshooting -->
&troubleshooting;
<!-- Appendix: Custom Patches -->
&patches;
<!-- Appendix: Manually Installing Perl Modules -->
&modules;
<!-- 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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY conventions SYSTEM "conventions.xml"> ] > -->
<!-- $Id: about.xml,v 1.1 2008/04/03 19:05:43 lpsolit%gmail.com Exp $ -->
<chapter id="about">
<title>About This Guide</title>
<section id="copyright">
<title>Copyright Information</title>
<para>This document is copyright (c) 2000-&current-year; by the various
Bugzilla contributors who wrote it.</para>
<blockquote>
<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 the Bugzilla Team.
</para>
</section>
<section id="disclaimer">
<title>Disclaimer</title>
<para>
No liability for the contents of this document can be accepted.
Follow the instructions herein at your own risk.
This document may contain errors
and inaccuracies that may damage your system, cause your partner
to leave you, your boss to fire you, your cats to
pee on your furniture and clothing, and global thermonuclear
war. Proceed with caution.
</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; it is an extremely
versatile, stable,
and robust operating system that offers an ideal operating
environment for Bugzilla.
</para>
<para>
Although the Bugzilla development team has taken great care to
ensure that all exploitable bugs have been fixed, security holes surely
exist in any piece of code. Great care should be taken both in
the installation and usage of this software. The Bugzilla development
team members assume no liability for your use of Bugzilla. You have
the source code, 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.<!-- /BZ-DEVEL -->
</para>
<para>
The latest version of this guide can always be found at <ulink
url="http://www.bugzilla.org"/>, or checked out via CVS by
following the <ulink url="http://www.mozilla.org/cvs.html">Mozilla
CVS</ulink> instructions and check out the
<filename>mozilla/webtools/bugzilla/docs/</filename>
subtree. However, you should read the version
which came with the Bugzilla release you are using.
</para>
<para>
The Bugzilla Guide, or a section of it, is also available in
the following languages:
<ulink url="http://www.traduc.org/docs/guides/lecture/bugzilla/">French</ulink>,
<ulink url="http://bugzilla-de.sourceforge.net/docs/html/">German</ulink>,
<ulink url="http://www.bugzilla.jp/docs/2.18/">Japanese</ulink>.
Note that these may be outdated or not up to date.
</para>
<para>
In addition, there are Bugzilla template localization projects in
the following languages. They may have translated documentation
available:
<ulink url="http://sourceforge.net/projects/bugzilla-ar/">Arabic</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-be/">Belarusian</ulink>,
<ulink url="http://openfmi.net/projects/mozilla-bg/">Bulgarian</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-br/">Brazilian Portuguese</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-cn/">Chinese</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-fr/">French</ulink>,
<ulink url="http://germzilla.ganderbay.net/">German</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-it/">Italian</ulink>,
<ulink url="http://www.bugzilla.jp/about/jp.html">Japanese</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-kr/">Korean</ulink>,
<ulink url="http://sourceforge.net/projects/bugzilla-ru/">Russian</ulink> and
<ulink url="http://sourceforge.net/projects/bugzilla-es/">Spanish</ulink>.
</para>
<para>
If you would like to volunteer to translate the Guide into additional
languages, please contact
<ulink url="mailto:justdave@bugzilla.org">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 Herculean 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.
</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>
<varlistentry>
<term>Dave Miller <email>justdave@bugzilla.org</email></term>
<listitem>
<para>for taking over as project lead when Tara stepped down and
continually pushing for the documentation to be the best it can be.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Thanks also go to the following people for significant contributions
to this documentation:
<simplelist type="inline">
<member>Kevin Brannen</member>
<member>Vlad Dascalu</member>
<member>Ben FrantzDale</member>
<member>Eric Hanson</member>
<member>Zach Lipton</member>
<member>Gervase Markham</member>
<member>Andrew Pearson</member>
<member>Joe Robins</member>
<member>Spencer Smith</member>
<member>Ron Teitelbaum</member>
<member>Shane Travis</member>
<member>Martin Wulffeld</member>
</simplelist>.
</para>
<para>
Also, thanks are due to the members of the
<ulink url="news://news.mozilla.org/mozilla.support.bugzilla">
mozilla.support.bugzilla</ulink>
newsgroup (and its predecessor, netscape.public.mozilla.webtools).
Without your discussions, insight, suggestions, and patches,
this could never have happened.
</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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End: -->
This source diff could not be displayed because it is too large. You can view the blob instead.
<!-- <!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>Caution</entry>
<entry>
<caution>
<para>Don't run with scissors!</para>
</caution>
</entry>
</row>
<row>
<entry>Hint or Tip</entry>
<entry>
<tip>
<para>For best results... </para>
</tip>
</entry>
</row>
<row>
<entry>Note</entry>
<entry>
<note>
<para>Dear John...</para>
</note>
</entry>
</row>
<row>
<entry>Warning</entry>
<entry>
<warning>
<para>Read this or the cat gets it.</para>
</warning>
</entry>
</row>
<row>
<entry>File or directory name</entry>
<entry>
<filename>filename</filename>
</entry>
</row>
<row>
<entry>Command to be typed</entry>
<entry>
<command>command</command>
</entry>
</row>
<row>
<entry>Application name</entry>
<entry>
<application>application</application>
</entry>
</row>
<row>
<entry>
Normal user's prompt under bash shell</entry>
<entry>bash$</entry>
</row>
<row>
<entry>
Root user's prompt under bash shell</entry>
<entry>bash#</entry>
</row>
<row>
<entry>
Normal user's prompt under tcsh shell</entry>
<entry>tcsh$</entry>
</row>
<row>
<entry>Environment variables</entry>
<entry>
<envar>VARIABLE</envar>
</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>
<para>
This documentation is maintained in DocBook 4.1.2 XML format.
Changes are best submitted as plain text or XML diffs, attached
to a bug filed in the &bzg-bugs; component.
</para>
</section>
<!-- Keep this comment at the end of the file
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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<!-- 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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<!-- <!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://www.cvszilla.org/"/>.
</para>
<para>Another system capable of CVS integration with Bugzilla is
Scmbug. This system provides generic integration of Source code
Configuration Management with Bugtracking. Check it out at: <ulink
url="http://freshmeat.net/projects/scmbug/"/>.
</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/"/>
.
<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"/>
.</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="svn"
xreflabel="Subversion, a compelling replacement for CVS">
<title>Subversion</title>
<para>Subversion is a free/open-source version control system,
designed to overcome various limitations of CVS. Integration of
Subversion with Bugzilla is possible using Scmbug, a system
providing generic integration of Source Code Configuration
Management with Bugtracking. Scmbug is available at <ulink
url="http://freshmeat.net/projects/scmbug/"/>.</para>
</section>
<section id="tinderbox"
xreflabel="Tinderbox, the Mozilla automated build management system">
<title>Tinderbox/Tinderbox2</title>
<para>Tinderbox is a continuous-build system which can integrate with
Bugzilla - see
<ulink url="http://www.mozilla.org/projects/tinderbox"/> for details
of Tinderbox, and
<ulink url="http://tinderbox.mozilla.org/showbuilds.cgi"/> to see it
in action.</para>
</section>
</section>
<!-- 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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<chapter id="introduction">
<title>Introduction</title>
<section id="what-is-bugzilla">
<title>What is Bugzilla?</title>
<para>
Bugzilla is a bug- or issue-tracking system. Bug-tracking
systems allow individual or groups of developers effectively to keep track
of outstanding problems with their products.
</para>
<para><emphasis>Do we need more here?</emphasis></para>
</section>
<section id="why-tracking">
<title>Why use a bug-tracking system?</title>
<para>Those who do not use a bug-tracking system tend to rely on
shared lists, email, spreadsheets and/or Post-It notes to monitor the
status of defects. This procedure
is usually error-prone and tends to cause those bugs judged least
significant by developers to be dropped or ignored.</para>
<para>Integrated defect-tracking systems make sure that nothing gets
swept under the carpet; they provide a method of creating, storing,
arranging and processing defect reports and enhancement requests.</para>
</section>
<section id="why-bugzilla">
<title>Why use Bugzilla?</title>
<para>Bugzilla is the leading open-source/free software bug tracking
system. It boasts many advanced features, including:
<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>Completely customizable and/or localizable web user
interface</para>
</listitem>
<listitem>
<para>Additional XML, email and console interfaces</para>
</listitem>
<listitem>
<para>Extensive configurability</para>
</listitem>
<listitem>
<para>Smooth upgrade pathway between versions</para>
</listitem>
</itemizedlist>
</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 configuration management solution.</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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<appendix id="install-perlmodules-manual">
<title>Manual Installation of Perl Modules</title>
<section id="modules-manual-instructions">
<title>Instructions</title>
<para>
If you need to install Perl modules manually, here's how it's done.
Download the module using the link given in the next section, and then
apply this magic incantation, as root:
</para>
<para>
<screen><prompt>bash#</prompt> tar -xzvf &lt;module&gt;.tar.gz
<prompt>bash#</prompt> cd &lt;module&gt;
<prompt>bash#</prompt> perl Makefile.PL
<prompt>bash#</prompt> make
<prompt>bash#</prompt> make test
<prompt>bash#</prompt> make install</screen>
</para>
<note>
<para>
In order to compile source code under Windows you will need to obtain
a 'make' utility. The <command>nmake</command> utility provided with
Microsoft Visual C++ may be used. As an alternative, there is a
utility called <command>dmake</command> available from CPAN which is
written entirely in Perl.
</para>
<para>
As described in <xref linkend="modules-manual-download" />, however, most
packages already exist and are available from ActiveState or theory58S.
We highly recommend that you install them using the ppm GUI available with
ActiveState and to add the theory58S repository to your list of repositories.
</para>
</note>
</section>
<section id="modules-manual-download">
<title>Download Locations</title>
<note>
<para>
Running Bugzilla on Windows requires the use of ActiveState
Perl 5.8.1 or higher. Many modules already exist in the core
distribution of ActiveState Perl. Additional modules can be downloaded
from <ulink url="http://theoryx5.uwinnipeg.ca/ppms/" /> if you use
Perl 5.8.x or from <ulink url="http://cpan.uwinnipeg.ca/PPMPackages/10xx/" />
if you use Perl 5.10.x.
</para>
</note>
<para>
CGI:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/CGI.pm/"/>
Documentation: <ulink url="http://perldoc.perl.org/CGI.html"/>
</literallayout>
</para>
<para>
Data-Dumper:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/Data-Dumper/"/>
Documentation: <ulink url="http://search.cpan.org/dist/Data-Dumper/Dumper.pm"/>
</literallayout>
</para>
<para>
Date::Format (part of TimeDate):
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/TimeDate/"/>
Documentation: <ulink url="http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm"/>
</literallayout>
</para>
<para>
DBI:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/DBI/"/>
Documentation: <ulink url="http://dbi.perl.org/docs/"/>
</literallayout>
</para>
<para>
DBD::mysql:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/DBD-mysql/"/>
Documentation: <ulink url="http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm"/>
</literallayout>
</para>
<para>
DBD::Pg:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/DBD-Pg/"/>
Documentation: <ulink url="http://search.cpan.org/dist/DBD-Pg/Pg.pm"/>
</literallayout>
</para>
<para>
File::Spec:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/File-Spec/"/>
Documentation: <ulink url="http://perldoc.perl.org/File/Spec.html"/>
</literallayout>
</para>
<para>
Template-Toolkit:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/Template-Toolkit/"/>
Documentation: <ulink url="http://www.template-toolkit.org/docs.html"/>
</literallayout>
</para>
<para>
GD:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/GD/"/>
Documentation: <ulink url="http://search.cpan.org/dist/GD/GD.pm"/>
</literallayout>
</para>
<para>
Template::Plugin::GD:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/Template-GD/" />
Documentation: <ulink url="http://www.template-toolkit.org/docs/aqua/Modules/index.html" />
</literallayout>
</para>
<para>
MIME::Parser (part of MIME-tools):
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/MIME-tools/"/>
Documentation: <ulink url="http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm"/>
</literallayout>
</para>
</section>
<section id="modules-manual-optional">
<title>Optional Modules</title>
<para>
Chart::Base:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/Chart/"/>
Documentation: <ulink url="http://search.cpan.org/dist/Chart/Chart.pod"/>
</literallayout>
</para>
<para>
GD::Graph:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/GDGraph/"/>
Documentation: <ulink url="http://search.cpan.org/dist/GDGraph/Graph.pm"/>
</literallayout>
</para>
<para>
GD::Text::Align (part of GD::Text::Util):
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/GDTextUtil/"/>
Documentation: <ulink url="http://search.cpan.org/dist/GDTextUtil/Text/Align.pm"/>
</literallayout>
</para>
<para>
XML::Twig:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/XML-Twig/"/>
Documentation: <ulink url="http://standards.ieee.org/resources/spasystem/twig/twig_stable.html"/>
</literallayout>
</para>
<para>
PatchReader:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/author/JKEISER/PatchReader/"/>
Documentation: <ulink url="http://www.johnkeiser.com/mozilla/Patch_Viewer.html"/>
</literallayout>
</para>
<para>
Image::Magick:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/PerlMagick/"/>
Documentation: <ulink url="http://www.imagemagick.org/script/resources.php"/>
</literallayout>
</para>
</section>
</appendix>
<!-- <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> -->
<appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla">
<title>Contrib</title>
<para>
There are a number of unofficial Bugzilla add-ons in the
<filename class="directory">$BUGZILLA_ROOT/contrib/</filename>
directory. This section documents them.
</para>
<section id="cmdline">
<title>Command-line Search Interface</title>
<para>
There are a suite of Unix utilities for searching Bugzilla from the
command line. They live in the
<filename class="directory">contrib/cmdline</filename> directory.
There are three files - <filename>query.conf</filename>,
<filename>buglist</filename> and <filename>bugs</filename>.
</para>
<warning>
<para>
These files pre-date the templatization work done as part of the
2.16 release, and have not been updated.
</para>
</warning>
<para>
<filename>query.conf</filename> contains the mapping from
options to field names and comparison types. Quoted option names
are <quote>grepped</quote> 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 <quote>option</quote>.
</para>
<para>
<filename>buglist</filename> is a shell script that submits a
Bugzilla query and writes the resulting HTML page to stdout.
It supports both short options, (such as <quote>-Afoo</quote>
or <quote>-Rbar</quote>) and long options (such
as <quote>--assignedto=foo</quote> or <quote>--reporter=bar</quote>).
If the first character of an option is not <quote>-</quote>, it is
treated as if it were prefixed with <quote>--default=</quote>.
</para>
<para>
The column list is taken from the COLUMNLIST environment variable.
This is equivalent to the <quote>Change Columns</quote> option
that is available 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
<quote>http://bugzilla.mozilla.org/buglist.cgi?bug_id=</quote>
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>
<section id="cmdline-bugmail">
<title>Command-line 'Send Unsent Bug-mail' tool</title>
<para>
Within the <filename class="directory">contrib</filename> directory
exists a utility with the descriptive (if compact) name
of <filename>sendunsentbugmail.pl</filename>. The purpose of this
script is, simply, to send out any bug-related mail that should
have been sent by now, but for one reason or another has not.
</para>
<para>
To accomplish this task, <filename>sendunsentbugmail.pl</filename> uses
the same mechanism as the <filename>sanitycheck.cgi</filename> script;
it scans through the entire database looking for bugs with changes that
were made more than 30 minutes ago, but where there is no record of
anyone related to that bug having been sent mail. Having compiled a list,
it then uses the standard rules to determine who gets mail, and sends it
out.
</para>
<para>
As the script runs, it indicates the bug for which it is currently
sending mail; when it has finished, it gives a numerical count of how
many mails were sent and how many people were excluded. (Individual
user names are not recorded or displayed.) If the script produces
no output, that means no unsent mail was detected.
</para>
<para>
<emphasis>Usage</emphasis>: move the sendunsentbugmail.pl script
up into the main directory, ensure it has execute permission, and run it
from the command line (or from a cron job) with no parameters.
</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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
<!-- <!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/"/>
Optional web server for Bugzilla, but recommended because of broad user
base and support.</para>
<para>Bugzilla:
<ulink url="http://www.bugzilla.org/"/>
</para>
<para>MySQL:
<ulink url="http://www.mysql.com/"/>
</para>
<para>Perl:
<ulink url="http://www.perl.org/"/>
</para>
<para>CPAN:
<ulink url="http://www.cpan.org/"/>
</para>
<para>DBI Perl module:
<ulink url="http://www.cpan.org/modules/by-module/DBI/"/>
</para>
<para>MySQL related Perl modules:
<ulink url="http://www.cpan.org/modules/by-module/Mysql/"/>
</para>
<para>TimeDate Perl module collection:
<ulink url="http://www.cpan.org/modules/by-module/Date/"/>
</para>
<para>GD Perl module:
<ulink url="http://www.cpan.org/modules/by-module/GD/"/>
Alternately, you should be able to find the latest version of GD at
<ulink url="http://www.boutell.com/gd/"/>
</para>
<para>Chart::Base module:
<ulink url="http://www.cpan.org/modules/by-module/Chart/"/>
</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.xml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
# This script compiles all the documentation. # This script compiles all the documentation.
use strict; use strict;
use Cwd;
# We need to be in this directory to use our libraries. # We need to be in this directory to use our libraries.
BEGIN { BEGIN {
...@@ -58,7 +59,7 @@ use Bugzilla::Constants qw(DB_MODULE BUGZILLA_VERSION); ...@@ -58,7 +59,7 @@ use Bugzilla::Constants qw(DB_MODULE BUGZILLA_VERSION);
my $modules = REQUIRED_MODULES; my $modules = REQUIRED_MODULES;
my $opt_modules = OPTIONAL_MODULES; my $opt_modules = OPTIONAL_MODULES;
open(ENTITIES, '>', 'xml/bugzilla.ent') or die('Could not open xml/bugzilla.ent: ' . $!); open(ENTITIES, '>', 'bugzilla.ent') or die('Could not open bugzilla.ent: ' . $!);
print ENTITIES '<?xml version="1.0"?>' ."\n\n"; print ENTITIES '<?xml version="1.0"?>' ."\n\n";
print ENTITIES '<!-- Module Versions -->' . "\n"; print ENTITIES '<!-- Module Versions -->' . "\n";
foreach my $module (@$modules, @$opt_modules) foreach my $module (@$modules, @$opt_modules)
...@@ -156,10 +157,10 @@ END_HTML ...@@ -156,10 +157,10 @@ END_HTML
$converter->contents_page_start($contents_start); $converter->contents_page_start($contents_start);
$converter->contents_page_end("</body></html>"); $converter->contents_page_end("</body></html>");
$converter->add_css('style.css'); $converter->add_css('./../../../style.css');
$converter->javascript_flurry(0); $converter->javascript_flurry(0);
$converter->css_flurry(0); $converter->css_flurry(0);
$converter->batch_convert(['../'], 'html/api/'); $converter->batch_convert(['../../'], 'html/api/');
print "\n"; print "\n";
} }
...@@ -168,38 +169,64 @@ END_HTML ...@@ -168,38 +169,64 @@ END_HTML
# Make the docs ... # Make the docs ...
############################################################################### ###############################################################################
if (!-d 'txt') { my @langs;
unlink 'txt'; # search for sub directories which have a 'xml' sub-directory
mkdir 'txt', 0755; opendir(LANGS, './');
foreach my $dir (readdir(LANGS)) {
next if (($dir eq '.') || ($dir eq '..') || (! -d $dir));
if (-d "$dir/xml") {
push(@langs, $dir);
}
} }
if (!-d 'pdf') { closedir(LANGS);
unlink 'pdf';
mkdir 'pdf', 0755; my $docparent = getcwd();
} foreach my $lang (@langs) {
chdir "$docparent/$lang";
make_pod() if $pod_simple; MakeDocs(undef, 'cp ../bugzilla.ent ./xml/');
exit unless $build_docs;
if (!-d 'txt') {
chdir 'html'; unlink 'txt';
mkdir 'txt', 0755;
MakeDocs('separate HTML', "jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html " . }
if (!-d 'pdf') {
unlink 'pdf';
mkdir 'pdf', 0755;
}
if (!-d 'html') {
unlink 'html';
mkdir 'html', 0755;
}
if (!-d 'html/api') {
unlink 'html/api';
mkdir 'html/api', 0755;
}
make_pod() if $pod_simple;
next unless $build_docs;
chdir 'html';
MakeDocs('separate HTML', "jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html " .
"$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml"); "$JADE_PUB/xml.dcl ../xml/Bugzilla-Guide.xml");
MakeDocs('big HTML', "jade -V nochunks -t sgml -i html -d " . MakeDocs('big HTML', "jade -V nochunks -t sgml -i html -d " .
"$LDP_HOME/ldp.dsl\#html $JADE_PUB/xml.dcl " . "$LDP_HOME/ldp.dsl\#html $JADE_PUB/xml.dcl " .
"../xml/Bugzilla-Guide.xml > Bugzilla-Guide.html"); "../xml/Bugzilla-Guide.xml > Bugzilla-Guide.html");
MakeDocs('big text', "lynx -dump -justify=off -nolist Bugzilla-Guide.html " . MakeDocs('big text', "lynx -dump -justify=off -nolist Bugzilla-Guide.html " .
"> ../txt/Bugzilla-Guide.txt"); "> ../txt/Bugzilla-Guide.txt");
if (! grep($_ eq "--with-pdf", @ARGV)) { if (! grep($_ eq "--with-pdf", @ARGV)) {
exit; next;
} }
MakeDocs('PDF', "jade -t tex -d $LDP_HOME/ldp.dsl\#print $JADE_PUB/xml.dcl " . MakeDocs('PDF', "jade -t tex -d $LDP_HOME/ldp.dsl\#print $JADE_PUB/xml.dcl " .
'../xml/Bugzilla-Guide.xml'); '../xml/Bugzilla-Guide.xml');
chdir '../pdf'; chdir '../pdf';
MakeDocs(undef, 'mv ../xml/Bugzilla-Guide.tex .'); MakeDocs(undef, 'mv ../xml/Bugzilla-Guide.tex .');
MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex'); MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex');
MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex'); MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex');
MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex'); MakeDocs(undef, 'pdfjadetex Bugzilla-Guide.tex');
MakeDocs(undef, 'rm Bugzilla-Guide.tex Bugzilla-Guide.log Bugzilla-Guide.aux Bugzilla-Guide.out'); MakeDocs(undef, 'rm Bugzilla-Guide.tex Bugzilla-Guide.log Bugzilla-Guide.aux Bugzilla-Guide.out');
}
/* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Bugzilla Bug Tracking System.
*
* The Initial Developer of the Original Code is Everything Solved.
* Portions created by Everything Solved are Copyright (C) 2006
* Everything Solved. All Rights Reserved.
*
* Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
*/
body {
background: white;
color: #111;
padding: 0 1em;
margin: 0;
font-family: Verdana, Arial, sans-serif;
font-size: small;
}
a:link, a:active { color: #36415c; }
a:visited { color: #666; }
a:hover { color: #888; }
h1 {
font-size: 150%;
font-weight: bold;
border-bottom: 2px solid #ccc;
}
h2 {
font-size: 125%;
font-weight: bold;
border-bottom: 1px solid #ccc;
margin-bottom: 8px;
}
h3 {
font-size: 115%;
font-weight: bold;
margin-bottom: 0;
padding-bottom: 0;
}
/* This makes Description/Params/Returns look nice. */
dd { margin-top: .2em; }
dd p { margin-top: 0; }
dl { margin-bottom: 1em; }
/* This makes the names of functions slightly larger, in Gecko. */
body > dl > dt code { font-size: 1.35em; }
#pod h1 a, #pod h2 a, #pod h3 a {
color: #36415c;
text-decoration: none;
}
pre, code, tt, kbd, samp {
/* Unfortunately, the default monospace fonts on most browsers
look odd with relative sizing. */
font-size: 12px;
}
.code {
background: #eed;
border: 1px solid #ccc;
}
pre.code {
margin-left: 10px;
width: 90%;
padding: 10px;
}
/* Special styles for the Contents page */
.contentspage dt {
font-size: large;
font-weight: bold;
}
.pod_desc_table {
border-collapse: collapse;
table-layout: auto;
border: 1px solid #ccc;
}
.pod_desc_table th {
text-align: left;
}
.pod_desc_table td, .pod_desc_table th {
padding: .25em;
border-top: 1px solid #ccc;
}
.pod_desc_table .odd th, .pod_desc_table .odd td {
background-color: #eee;
}
.pod_desc_table
...@@ -35,7 +35,9 @@ ...@@ -35,7 +35,9 @@
"$terms.Bugzilla documentation URLs. " _ "$terms.Bugzilla documentation URLs. " _
"It may be an absolute URL, or a URL relative to urlbase " _ "It may be an absolute URL, or a URL relative to urlbase " _
"above. " _ "above. " _
"Leave this empty to suppress links to the documentation.", "Leave this empty to suppress links to the documentation." _
"'%lang%' will be replaced by user's preferred language " _
"(if available)."
sslbase => "The URL that is the common initial leading part of all HTTPS " _ sslbase => "The URL that is the common initial leading part of all HTTPS " _
"(SSL) $terms.Bugzilla URLs.", "(SSL) $terms.Bugzilla URLs.",
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
[% IF doc_section %] [% IF doc_section %]
<li> <li>
<span class="separator">| </span> <span class="separator">| </span>
<a href="[% Param("docs_urlbase") _ doc_section FILTER html %]" target="_blank">Help</a> <a href="[% docs_urlbase _ doc_section FILTER html %]" target="_blank">Help</a>
</li> </li>
[% END %] [% END %]
[% END %] [% END %]
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
[% BLOCK docslinkslist %] [% BLOCK docslinkslist %]
[% FOREACH docslink = docstype.keys %] [% FOREACH docslink = docstype.keys %]
<li> <li>
<a href="[% Param('docs_urlbase') %] <a href="[% docs_urlbase FILTER html %]
[% docslink FILTER none %]">[% docstype.$docslink FILTER html %]</a> [% docslink FILTER none %]">[% docstype.$docslink FILTER html %]</a>
</li> </li>
[% END %] [% END %]
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</select> </select>
[% IF Param('docs_urlbase') %] [% IF Param('docs_urlbase') %]
<a href="[% Param('docs_urlbase') %]query.html#individual-buglists">the named tag</a> <a href="[% docs_urlbase FILTER html %]query.html#individual-buglists">the named tag</a>
[% ELSE %] [% ELSE %]
the named tag the named tag
[% END %] [% END %]
......
...@@ -106,7 +106,7 @@ function addSidebar() { ...@@ -106,7 +106,7 @@ function addSidebar() {
of [% terms.Bugzilla %], see the of [% terms.Bugzilla %], see the
<a href="page.cgi?id=release-notes.html">release notes</a>! <a href="page.cgi?id=release-notes.html">release notes</a>!
You may also want to read the You may also want to read the
<a href="[% Param('docs_urlbase') FILTER html %]using.html"> <a href="[% docs_urlbase FILTER html %]using.html">
[%- terms.Bugzilla %] User's Guide</a> to find out more about [%- terms.Bugzilla %] User's Guide</a> to find out more about
[%+ terms.Bugzilla %] and how to use it.</p> [%+ terms.Bugzilla %] and how to use it.</p>
......
...@@ -353,14 +353,14 @@ ...@@ -353,14 +353,14 @@
to the <kbd>xmlrpc.cgi</kbd> on your installation.</p> to the <kbd>xmlrpc.cgi</kbd> on your installation.</p>
<p>Documentation can be found in the <p>Documentation can be found in the
<a href="[% Param('docs_urlbase') FILTER html %]api/">[% terms.Bugzilla %] <a href="[% docs_urlbase FILTER html %]api/">[% terms.Bugzilla %]
API Docs</a>, in the various <kbd>Bugzilla::WebService</kbd> modules.</p> API Docs</a>, in the various <kbd>Bugzilla::WebService</kbd> modules.</p>
<h3><a name="v30_feat_skin"></a>Skins</h3> <h3><a name="v30_feat_skin"></a>Skins</h3>
<p>[% terms.Bugzilla %] can have multiple &quot;skins&quot; installed, <p>[% terms.Bugzilla %] can have multiple &quot;skins&quot; installed,
and users can pick between them. To write a skin, you just have to and users can pick between them. To write a skin, you just have to
write several CSS files. See the <a href="[% Param('docs_urlbase') FILTER html %]cust-skins.html">Custom write several CSS files. See the <a href="[% docs_urlbase FILTER html %]cust-skins.html">Custom
Skins Documentation</a> for more details.</p> Skins Documentation</a> for more details.</p>
<p>We currently don't have any alternate skins shipping with <p>We currently don't have any alternate skins shipping with
...@@ -414,7 +414,7 @@ ...@@ -414,7 +414,7 @@
unsupported add-on, but it is now an official interface to unsupported add-on, but it is now an official interface to
[%+ terms.Bugzilla %].</p> [%+ terms.Bugzilla %].</p>
<p>For more details see the <a href="[% Param('docs_urlbase') FILTER html %]api/email_in.html">documentation <p>For more details see the <a href="[% docs_urlbase FILTER html %]api/email_in.html">documentation
for email_in.pl</a>.</p> for email_in.pl</a>.</p>
<h3><a name="v30_feat_gw"></a>Users Who Get All [% terms.Bug %] <h3><a name="v30_feat_gw"></a>Users Who Get All [% terms.Bug %]
...@@ -687,7 +687,7 @@ ...@@ -687,7 +687,7 @@
<kbd>localconfig</kbd> file to the new installation.</p></li> <kbd>localconfig</kbd> file to the new installation.</p></li>
<li>Now follow the standard <li>Now follow the standard
<a href="[% Param('docs_urlbase') FILTER html %]installing-bugzilla.html"> <a href="[% docs_urlbase FILTER html %]installing-bugzilla.html">
[%- terms.Bugzilla %] installation process</a>.</li> [%- terms.Bugzilla %] installation process</a>.</li>
<li>Run <kbd>checksetup.pl</kbd> after you install the new version.</li> <li>Run <kbd>checksetup.pl</kbd> after you install the new version.</li>
...@@ -739,7 +739,7 @@ ...@@ -739,7 +739,7 @@
<p>[% terms.Bugzilla %] now supports a code hook mechanism. See the <p>[% terms.Bugzilla %] now supports a code hook mechanism. See the
documentation for documentation for
<a href="[% Param('docs_urlbase') FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a> <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>
for more details.</p> for more details.</p>
<p>This gives [% terms.Bugzilla %] very advanced plugin support. You can <p>This gives [% terms.Bugzilla %] very advanced plugin support. You can
...@@ -756,7 +756,7 @@ ...@@ -756,7 +756,7 @@
<p>[% terms.Bugzilla %] now ships with all of its perldoc built <p>[% terms.Bugzilla %] now ships with all of its perldoc built
as HTML. Go ahead and read the as HTML. Go ahead and read the
<a href="[% Param('docs_urlbase') FILTER html %]api/">API Documentation</a> <a href="[% docs_urlbase FILTER html %]api/">API Documentation</a>
for all of the [% terms.Bugzilla %] modules now! Even scripts like for all of the [% terms.Bugzilla %] modules now! Even scripts like
<kbd>checksetup.pl</kbd> have HTML documentation.</p> <kbd>checksetup.pl</kbd> have HTML documentation.</p>
...@@ -799,7 +799,7 @@ sub y { $var++ }</pre> ...@@ -799,7 +799,7 @@ sub y { $var++ }</pre>
<p>The <kbd>Bugzilla::Auth</kbd> family of modules have been completely <p>The <kbd>Bugzilla::Auth</kbd> family of modules have been completely
re-written. For details on how the new structure of authentication, re-written. For details on how the new structure of authentication,
read the read the
<a href="[% Param('docs_urlbase') FILTER html %]api/Bugzilla/Auth.html">Bugzilla::Auth <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Auth.html">Bugzilla::Auth
API docs</a>.</p> API docs</a>.</p>
<p>It should be very easy to write new authentication plugins, now.</p> <p>It should be very easy to write new authentication plugins, now.</p>
...@@ -807,7 +807,7 @@ sub y { $var++ }</pre> ...@@ -807,7 +807,7 @@ sub y { $var++ }</pre>
<h3><a name="v30_code_obj"></a>Bugzilla::Object</h3> <h3><a name="v30_code_obj"></a>Bugzilla::Object</h3>
<p>There is a new base class for most of our objects, <p>There is a new base class for most of our objects,
<a href="[% Param('docs_urlbase') FILTER html %]api/Bugzilla/Object.html">Bugzilla::Object</a>. <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html">Bugzilla::Object</a>.
It makes it really easy to create new objects based on things that are It makes it really easy to create new objects based on things that are
in the database.</p> in the database.</p>
...@@ -832,7 +832,7 @@ sub y { $var++ }</pre> ...@@ -832,7 +832,7 @@ sub y { $var++ }</pre>
<li><code>checksetup.pl</code> has been completely re-written, and most <li><code>checksetup.pl</code> has been completely re-written, and most
of its code moved into modules in the <kbd>Bugzilla::Install</kbd> of its code moved into modules in the <kbd>Bugzilla::Install</kbd>
namespace. See the namespace. See the
<a href="[% Param('docs_urlbase') FILTER html %]api/checksetup.html">checksetup <a href="[% docs_urlbase FILTER html %]api/checksetup.html">checksetup
documentation</a> and <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=277502&amp;hide_resolved=0">[% terms.Bugzilla %] documentation</a> and <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=277502&amp;hide_resolved=0">[% terms.Bugzilla %]
[%+ terms.bug %] 277502</a> for details.</li> [%+ terms.bug %] 277502</a> for details.</li>
<li>Instead of <kbd>UserInGroup()</kbd>, all of [% terms.Bugzilla %] now <li>Instead of <kbd>UserInGroup()</kbd>, all of [% terms.Bugzilla %] now
...@@ -866,7 +866,7 @@ sub y { $var++ }</pre> ...@@ -866,7 +866,7 @@ sub y { $var++ }</pre>
<p>Release notes for versions of [% terms.Bugzilla %] for versions <p>Release notes for versions of [% terms.Bugzilla %] for versions
prior to 3.0 are only available in text format: prior to 3.0 are only available in text format:
<a href="docs/rel_notes.txt">Release Notes for [% terms.Bugzilla %] 2.22 <a href="[% docs_urlbase FILTER remove('html/$') FILTER html %]rel_notes.txt">Release Notes for [% terms.Bugzilla %] 2.22
and Earlier</a>.</p> and Earlier</a>.</p>
[% INCLUDE global/footer.html.tmpl %] [% INCLUDE global/footer.html.tmpl %]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment