Compare commits
22 Commits
Bugzilla_P
...
CUST_RES_B
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b78e6d461e | ||
|
|
ce454c602f | ||
|
|
267d636c89 | ||
|
|
e0014c1596 | ||
|
|
8902c753f2 | ||
|
|
0f65b3a56f | ||
|
|
d982e79440 | ||
|
|
357a2ad29f | ||
|
|
57d69ee3e7 | ||
|
|
683cdd4de9 | ||
|
|
bec5bfcc85 | ||
|
|
e5ed4f6307 | ||
|
|
665e1eba65 | ||
|
|
ef80035915 | ||
|
|
0fd14fe43a | ||
|
|
3d60c72346 | ||
|
|
135c23162e | ||
|
|
f150a1b542 | ||
|
|
4819081b77 | ||
|
|
8f7cc65c1d | ||
|
|
28778bc828 | ||
|
|
343a813ccf |
@@ -29,6 +29,24 @@ use strict;
|
||||
|
||||
package Attachment;
|
||||
|
||||
# Use the template toolkit (http://www.template-toolkit.org/) to generate
|
||||
# the user interface (HTML pages and mail messages) using templates in the
|
||||
# "templates/" subdirectory.
|
||||
use Template;
|
||||
|
||||
# This is the global template object that gets used one or more times by
|
||||
# the script when it needs to process a template and return the results.
|
||||
# Configuration parameters can be specified here that apply to all templates
|
||||
# processed in this file.
|
||||
my $template = Template->new(
|
||||
{
|
||||
# Colon-separated list of directories containing templates.
|
||||
INCLUDE_PATH => 'template/custom:template/default' ,
|
||||
# Allow templates to be specified with relative paths.
|
||||
RELATIVE => 1
|
||||
}
|
||||
);
|
||||
|
||||
# This module requires that its caller have said "require CGI.pl" to import
|
||||
# relevant functions from that script and its companion globals.pl.
|
||||
|
||||
@@ -36,28 +54,24 @@ package Attachment;
|
||||
# Functions
|
||||
############################################################################
|
||||
|
||||
sub query
|
||||
sub list
|
||||
{
|
||||
# Retrieves and returns an array of attachment records for a given bug.
|
||||
# This data should be given to attachment/list.atml in an
|
||||
# "attachments" variable.
|
||||
# Displays a table of attachments for a given bug along with links for
|
||||
# viewing, editing, or making requests for each attachment.
|
||||
|
||||
my ($bugid) = @_;
|
||||
|
||||
my $in_editbugs = &::UserInGroup("editbugs");
|
||||
|
||||
# Retrieve a list of attachments for this bug and write them into an array
|
||||
# of hashes in which each hash represents a single attachment.
|
||||
&::SendSQL("
|
||||
SELECT attach_id, creation_ts, mimetype, description, ispatch,
|
||||
isobsolete, submitter_id
|
||||
SELECT attach_id, creation_ts, mimetype, description, ispatch, isobsolete
|
||||
FROM attachments WHERE bug_id = $bugid ORDER BY attach_id
|
||||
");
|
||||
my @attachments = ();
|
||||
while (&::MoreSQLData()) {
|
||||
my %a;
|
||||
my $submitter_id;
|
||||
($a{'attachid'}, $a{'date'}, $a{'contenttype'}, $a{'description'},
|
||||
$a{'ispatch'}, $a{'isobsolete'}, $submitter_id) = &::FetchSQLData();
|
||||
($a{'attachid'}, $a{'date'}, $a{'contenttype'}, $a{'description'}, $a{'ispatch'}, $a{'isobsolete'}) = &::FetchSQLData();
|
||||
|
||||
# Format the attachment's creation/modification date into a standard
|
||||
# format (YYYY-MM-DD HH:MM)
|
||||
@@ -82,16 +96,19 @@ sub query
|
||||
$a{'statuses'} = \@statuses;
|
||||
&::PopGlobalSQLState();
|
||||
|
||||
# We will display the edit link if the user can edit the attachment;
|
||||
# ie the are the submitter, or they have canedit.
|
||||
# Also show the link if the user is not logged in - in that cae,
|
||||
# They'll be prompted later
|
||||
$a{'canedit'} = ($::userid == 0 || $submitter_id == $::userid ||
|
||||
$in_editbugs);
|
||||
push @attachments, \%a;
|
||||
}
|
||||
|
||||
return \@attachments;
|
||||
}
|
||||
|
||||
1;
|
||||
my $vars =
|
||||
{
|
||||
'bugid' => $bugid ,
|
||||
'attachments' => \@attachments ,
|
||||
'Param' => \&::Param , # for retrieving global parameters
|
||||
'PerformSubsts' => \&::PerformSubsts # for processing global parameters
|
||||
};
|
||||
|
||||
$template->process("attachment/list.atml", $vars)
|
||||
|| &::DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ use CGI::Carp qw(fatalsToBrowser);
|
||||
my %ok_field;
|
||||
|
||||
for my $key (qw (bug_id product version rep_platform op_sys bug_status
|
||||
resolution priority bug_severity component assigned_to
|
||||
resolution_id priority bug_severity component assigned_to
|
||||
reporter bug_file_loc short_desc target_milestone
|
||||
qa_contact status_whiteboard creation_ts groupset
|
||||
delta_ts votes whoid usergroupset comment query error) ){
|
||||
@@ -106,51 +106,25 @@ sub initBug {
|
||||
if (!$usergroupset) { $usergroupset = '0' }
|
||||
$self->{'usergroupset'} = $usergroupset;
|
||||
|
||||
# Check to see if we can see this bug
|
||||
if (!&::CanSeeBug($bug_id, $user_id, $usergroupset)) {
|
||||
# Permission denied to see bug
|
||||
$self->{'bug_id'} = $old_bug_id;
|
||||
$self->{'error'} = "PermissionDenied";
|
||||
return $self;
|
||||
}
|
||||
|
||||
my $query = "";
|
||||
if ($::driver eq 'mysql') {
|
||||
$query = "
|
||||
my $query = "
|
||||
select
|
||||
bugs.bug_id, product, version, rep_platform, op_sys, bug_status,
|
||||
resolution, priority, bug_severity, component, assigned_to, reporter,
|
||||
resolution_id, priority, bug_severity, component, assigned_to, reporter,
|
||||
bug_file_loc, short_desc, target_milestone, qa_contact,
|
||||
status_whiteboard, date_format(creation_ts,'%Y-%m-%d %H:%i'),
|
||||
groupset, delta_ts, sum(votes.count)
|
||||
from bugs left join votes using(bug_id)
|
||||
where bugs.bug_id = $bug_id
|
||||
group by bugs.bug_id";
|
||||
} elsif ($::driver eq 'Pg') {
|
||||
$query = "
|
||||
select
|
||||
bugs.bug_id, product, version, rep_platform, op_sys, bug_status,
|
||||
resolution, priority, bug_severity, component, assigned_to, reporter,
|
||||
bug_file_loc, short_desc, target_milestone, qa_contact,
|
||||
status_whiteboard, creation_ts,
|
||||
groupset, delta_ts, sum(votes.count)
|
||||
from bugs left join votes using(bug_id)
|
||||
where bugs.bug_id = $bug_id
|
||||
and (bugs.groupset & int8($usergroupset)) = bugs.groupset
|
||||
group by bugs.bug_id, product, version, rep_platform, op_sys, bug_status,
|
||||
resolution, priority, bug_severity, component, assigned_to, reporter,
|
||||
bug_file_loc, short_desc, target_milestone, qa_contact, status_whiteboard,
|
||||
creation_ts, groupset, delta_ts";
|
||||
}
|
||||
|
||||
&::SendSQL($query);
|
||||
&::SendSQL(&::SelectVisible($query, $user_id, $usergroupset));
|
||||
my @row;
|
||||
|
||||
if (@row = &::FetchSQLData()) {
|
||||
my $count = 0;
|
||||
my %fields;
|
||||
foreach my $field ("bug_id", "product", "version", "rep_platform",
|
||||
"op_sys", "bug_status", "resolution", "priority",
|
||||
"op_sys", "bug_status", "resolution_id", "priority",
|
||||
"bug_severity", "component", "assigned_to", "reporter",
|
||||
"bug_file_loc", "short_desc", "target_milestone",
|
||||
"qa_contact", "status_whiteboard", "creation_ts",
|
||||
@@ -274,10 +248,10 @@ sub emitXML {
|
||||
|
||||
$xml .= "<bug>\n";
|
||||
|
||||
foreach my $field ("bug_id", "bug_status", "product",
|
||||
foreach my $field ("bug_id", "urlbase", "bug_status", "product",
|
||||
"priority", "version", "rep_platform", "assigned_to", "delta_ts",
|
||||
"component", "reporter", "target_milestone", "bug_severity",
|
||||
"creation_ts", "qa_contact", "op_sys", "resolution", "bug_file_loc",
|
||||
"creation_ts", "qa_contact", "op_sys", "resolution_id", "bug_file_loc",
|
||||
"short_desc", "keywords", "status_whiteboard") {
|
||||
if ($self->{$field}) {
|
||||
$xml .= " <$field>" . QuoteXMLChars($self->{$field}) . "</$field>\n";
|
||||
@@ -351,7 +325,7 @@ sub XML_Header {
|
||||
my ($urlbase, $version, $maintainer, $exporter) = (@_);
|
||||
|
||||
my $xml;
|
||||
$xml = "<?xml version=\"1.0\" standalone=\"yes\"?>\n";
|
||||
$xml = "<?xml version=\"1.0\" standalone=\"no\"?>\n";
|
||||
$xml .= "<!DOCTYPE bugzilla SYSTEM \"$urlbase";
|
||||
if (! ($urlbase =~ /.+\/$/)) {
|
||||
$xml .= "/";
|
||||
@@ -379,7 +353,7 @@ sub UserInGroup {
|
||||
return 0;
|
||||
}
|
||||
&::ConnectToDatabase();
|
||||
&::SendSQL("select (group_bit & int8($self->{'usergroupset'})) != 0 from groups where name = "
|
||||
&::SendSQL("select (bit & $self->{'usergroupset'}) != 0 from groups where name = "
|
||||
. &::SqlQuote($groupname));
|
||||
my $bit = &::FetchOneColumn();
|
||||
if ($bit) {
|
||||
@@ -463,18 +437,14 @@ sub Collision {
|
||||
my $self = shift();
|
||||
my $write = "WRITE"; # Might want to make a param to control
|
||||
# whether we do LOW_PRIORITY ...
|
||||
if ($::driver eq 'mysql') {
|
||||
&::SendSQL("LOCK TABLES bugs $write, bugs_activity $write, cc $write, " .
|
||||
"cc AS selectVisible_cc $write, " .
|
||||
"profiles $write, dependencies $write, votes $write, " .
|
||||
"keywords $write, longdescs $write, fielddefs $write, " .
|
||||
"keyworddefs READ, groups READ, attachments READ, products READ");
|
||||
}
|
||||
&::SendSQL("LOCK TABLES bugs $write, bugs_activity $write, cc $write, " .
|
||||
"cc AS selectVisible_cc $write, " .
|
||||
"profiles $write, dependencies $write, votes $write, " .
|
||||
"keywords $write, longdescs $write, fielddefs $write, " .
|
||||
"keyworddefs READ, groups READ, attachments READ, products READ");
|
||||
&::SendSQL("SELECT delta_ts FROM bugs where bug_id=$self->{'bug_id'}");
|
||||
my $delta_ts = &::FetchOneColumn();
|
||||
if ($::driver eq 'mysql') {
|
||||
&::SendSQL("unlock tables");
|
||||
}
|
||||
&::SendSQL("unlock tables");
|
||||
if ($self->{'delta_ts'} ne $delta_ts) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,82 +30,13 @@ use strict;
|
||||
# Bundle the functions in this file together into the "Token" package.
|
||||
package Token;
|
||||
|
||||
use Date::Format;
|
||||
|
||||
# This module requires that its caller have said "require CGI.pl" to import
|
||||
# relevant functions from that script and its companion globals.pl.
|
||||
|
||||
################################################################################
|
||||
# Constants
|
||||
################################################################################
|
||||
|
||||
# The maximum number of days a token will remain valid.
|
||||
my $maxtokenage = 3;
|
||||
|
||||
################################################################################
|
||||
# Functions
|
||||
################################################################################
|
||||
|
||||
sub IssueEmailChangeToken {
|
||||
my ($userid, $old_email, $new_email) = @_;
|
||||
|
||||
my $token_ts = time();
|
||||
my $issuedate = time2str("%Y-%m-%d %H:%M", $token_ts);
|
||||
|
||||
# Generate a unique token and insert it into the tokens table.
|
||||
# We have to lock the tokens table before generating the token,
|
||||
# since the database must be queried for token uniqueness.
|
||||
&::SendSQL("LOCK TABLES tokens WRITE");
|
||||
my $token = GenerateUniqueToken();
|
||||
my $quotedtoken = &::SqlQuote($token);
|
||||
my $quoted_emails = &::SqlQuote($old_email . ":" . $new_email);
|
||||
&::SendSQL("INSERT INTO tokens ( userid , issuedate , token ,
|
||||
tokentype , eventdata )
|
||||
VALUES ( $userid , '$issuedate' , $quotedtoken ,
|
||||
'emailold' , $quoted_emails )");
|
||||
my $newtoken = GenerateUniqueToken();
|
||||
$quotedtoken = &::SqlQuote($newtoken);
|
||||
&::SendSQL("INSERT INTO tokens ( userid , issuedate , token ,
|
||||
tokentype , eventdata )
|
||||
VALUES ( $userid , '$issuedate' , $quotedtoken ,
|
||||
'emailnew' , $quoted_emails )");
|
||||
&::SendSQL("UNLOCK TABLES");
|
||||
|
||||
# Mail the user the token along with instructions for using it.
|
||||
|
||||
my $template = $::template;
|
||||
my $vars = $::vars;
|
||||
|
||||
$vars->{'oldemailaddress'} = $old_email . &::Param('emailsuffix');
|
||||
$vars->{'newemailaddress'} = $new_email . &::Param('emailsuffix');
|
||||
|
||||
$vars->{'max_token_age'} = $maxtokenage;
|
||||
$vars->{'token_ts'} = $token_ts;
|
||||
|
||||
$vars->{'token'} = $token;
|
||||
$vars->{'emailaddress'} = $old_email . &::Param('emailsuffix');
|
||||
|
||||
my $message;
|
||||
$template->process("account/email/change-old.txt.tmpl", $vars, \$message)
|
||||
|| &::ThrowTemplateError($template->error());
|
||||
|
||||
open SENDMAIL, "|/usr/lib/sendmail -t -i";
|
||||
print SENDMAIL $message;
|
||||
close SENDMAIL;
|
||||
|
||||
$vars->{'token'} = $newtoken;
|
||||
$vars->{'emailaddress'} = $new_email . &::Param('emailsuffix');
|
||||
|
||||
$message = "";
|
||||
$template->process("account/email/change-new.txt.tmpl", $vars, \$message)
|
||||
|| &::ThrowTemplateError($template->error());
|
||||
|
||||
open SENDMAIL, "|/usr/lib/sendmail -t -i";
|
||||
print SENDMAIL $message;
|
||||
close SENDMAIL;
|
||||
|
||||
}
|
||||
|
||||
sub IssuePasswordToken {
|
||||
# Generates a random token, adds it to the tokens table, and sends it
|
||||
# to the user with instructions for using it to change their password.
|
||||
@@ -117,51 +48,20 @@ sub IssuePasswordToken {
|
||||
&::SendSQL("SELECT userid FROM profiles WHERE login_name = $quotedloginname");
|
||||
my ($userid) = &::FetchSQLData();
|
||||
|
||||
my $token_ts = time();
|
||||
my $issuedate = time2str("%Y-%m-%d %H:%M", $token_ts);
|
||||
|
||||
# Generate a unique token and insert it into the tokens table.
|
||||
# We have to lock the tokens table before generating the token,
|
||||
# since the database must be queried for token uniqueness.
|
||||
&::SendSQL("LOCK TABLE tokens WRITE") if $::driver eq 'mysql';
|
||||
&::SendSQL("LOCK TABLES tokens WRITE");
|
||||
my $token = GenerateUniqueToken();
|
||||
my $quotedtoken = &::SqlQuote($token);
|
||||
my $quotedipaddr = &::SqlQuote($::ENV{'REMOTE_ADDR'});
|
||||
&::SendSQL("INSERT INTO tokens ( userid , issuedate , token , tokentype , eventdata )
|
||||
VALUES ( $userid , '$issuedate' , $quotedtoken , 'password' , $quotedipaddr )");
|
||||
&::SendSQL("UNLOCK TABLES") if $::driver eq 'mysql';
|
||||
VALUES ( $userid , NOW() , $quotedtoken , 'password' , $quotedipaddr )");
|
||||
&::SendSQL("UNLOCK TABLES");
|
||||
|
||||
# Mail the user the token along with instructions for using it.
|
||||
|
||||
my $template = $::template;
|
||||
my $vars = $::vars;
|
||||
MailPasswordToken($loginname, $token);
|
||||
|
||||
$vars->{'token'} = $token;
|
||||
$vars->{'emailaddress'} = $loginname . &::Param('emailsuffix');
|
||||
|
||||
$vars->{'max_token_age'} = $maxtokenage;
|
||||
$vars->{'token_ts'} = $token_ts;
|
||||
|
||||
my $message = "";
|
||||
$template->process("account/password/forgotten-password.txt.tmpl",
|
||||
$vars, \$message)
|
||||
|| &::ThrowTemplateError($template->error());
|
||||
|
||||
open SENDMAIL, "|/usr/lib/sendmail -t -i";
|
||||
print SENDMAIL $message;
|
||||
close SENDMAIL;
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub CleanTokenTable {
|
||||
&::SendSQL("LOCK TABLES tokens WRITE") if $::driver eq 'mysql';
|
||||
if ($::driver eq 'mysql') {
|
||||
&::SendSQL("DELETE FROM tokens WHERE TO_DAYS(NOW()) - TO_DAYS(issuedate) >= " . $maxtokenage);
|
||||
} elsif ($::driver eq 'Pg') {
|
||||
&::SendSQL("DELETE FROM tokens WHERE now() - issuedate >= '$maxtokenage days'");
|
||||
}
|
||||
&::SendSQL("UNLOCK TABLES") if $::driver eq 'mysql';
|
||||
}
|
||||
|
||||
|
||||
@@ -191,6 +91,34 @@ sub GenerateUniqueToken {
|
||||
|
||||
}
|
||||
|
||||
sub MailPasswordToken {
|
||||
# Emails a password token to a user along with instructions for its use.
|
||||
# Called exclusively from &IssuePasswordToken.
|
||||
|
||||
my ($emailaddress, $token) = @_;
|
||||
|
||||
my $urlbase = &::Param("urlbase");
|
||||
my $emailsuffix = &::Param('emailsuffix');
|
||||
$token = &::url_quote($token);
|
||||
|
||||
open SENDMAIL, "|/usr/lib/sendmail -ti";
|
||||
|
||||
print SENDMAIL qq|From: bugzilla-daemon
|
||||
To: $emailaddress$emailsuffix
|
||||
Subject: Bugzilla Change Password Request
|
||||
|
||||
You or someone impersonating you has requested to change your Bugzilla
|
||||
password. To change your password, visit the following link:
|
||||
|
||||
${urlbase}token.cgi?a=cfmpw&t=$token
|
||||
|
||||
If you are not the person who made this request, or you wish to cancel
|
||||
this request, visit the following link:
|
||||
|
||||
${urlbase}token.cgi?a=cxlpw&t=$token
|
||||
|;
|
||||
close SENDMAIL;
|
||||
}
|
||||
|
||||
sub Cancel {
|
||||
# Cancels a previously issued token and notifies the system administrator.
|
||||
@@ -215,59 +143,42 @@ sub Cancel {
|
||||
# Format the user's real name and email address into a single string.
|
||||
my $username = $realname ? $realname . " <" . $loginname . ">" : $loginname;
|
||||
|
||||
my $template = $::template;
|
||||
my $vars = $::vars;
|
||||
|
||||
$vars->{'emailaddress'} = $username;
|
||||
$vars->{'maintainer'} = $maintainer;
|
||||
$vars->{'remoteaddress'} = $::ENV{'REMOTE_ADDR'};
|
||||
$vars->{'token'} = $token;
|
||||
$vars->{'tokentype'} = $tokentype;
|
||||
$vars->{'issuedate'} = $issuedate;
|
||||
$vars->{'eventdata'} = $eventdata;
|
||||
$vars->{'cancelaction'} = $cancelaction;
|
||||
|
||||
# Notify the user via email about the cancellation.
|
||||
open SENDMAIL, "|/usr/lib/sendmail -ti";
|
||||
print SENDMAIL qq|From: bugzilla-daemon
|
||||
To: $username
|
||||
Subject: "$tokentype" token cancelled
|
||||
|
||||
my $message;
|
||||
$template->process("account/cancel-token.txt.tmpl", $vars, \$message)
|
||||
|| &::ThrowTemplateError($template->error());
|
||||
A token was cancelled from $::ENV{'REMOTE_ADDR'}. This is either
|
||||
an honest mistake or the result of a malicious hack attempt.
|
||||
Take a look at the information below and forward this email
|
||||
to $maintainer if you suspect foul play.
|
||||
|
||||
open SENDMAIL, "|/usr/lib/sendmail -t -i";
|
||||
print SENDMAIL $message;
|
||||
Token: $token
|
||||
Token Type: $tokentype
|
||||
User: $username
|
||||
Issue Date: $issuedate
|
||||
Event Data: $eventdata
|
||||
|
||||
Cancelled Because: $cancelaction
|
||||
|;
|
||||
close SENDMAIL;
|
||||
|
||||
# Delete the token from the database.
|
||||
&::SendSQL("LOCK TABLE tokens WRITE") if $::driver eq 'mysql';
|
||||
&::SendSQL("LOCK TABLES tokens WRITE");
|
||||
&::SendSQL("DELETE FROM tokens WHERE token = $quotedtoken");
|
||||
&::SendSQL("UNLOCK TABLES") if $::driver eq 'mysql';
|
||||
&::SendSQL("UNLOCK TABLES");
|
||||
}
|
||||
|
||||
sub HasPasswordToken {
|
||||
# Returns a password token if the user has one.
|
||||
# Returns a password token if the user has one. Otherwise returns 0 (false).
|
||||
|
||||
my ($userid) = @_;
|
||||
|
||||
&::SendSQL("SELECT token FROM tokens
|
||||
WHERE userid = $userid AND tokentype = 'password' LIMIT 1");
|
||||
&::SendSQL("SELECT token FROM tokens WHERE userid = $userid LIMIT 1");
|
||||
my ($token) = &::FetchSQLData();
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
sub HasEmailChangeToken {
|
||||
# Returns an email change token if the user has one.
|
||||
|
||||
my ($userid) = @_;
|
||||
|
||||
&::SendSQL("SELECT token FROM tokens
|
||||
WHERE userid = $userid
|
||||
AND tokentype = 'emailnew'
|
||||
OR tokentype = 'emailold' LIMIT 1");
|
||||
my ($token) = &::FetchSQLData();
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
||||
581
mozilla/webtools/bugzilla/admineditor.pl
Normal file
581
mozilla/webtools/bugzilla/admineditor.pl
Normal file
@@ -0,0 +1,581 @@
|
||||
#!/usr/bonsaitools/bin/perl -wT
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
#
|
||||
# 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 Terry Weissman.
|
||||
# Portions created by Terry Weissman are
|
||||
# Copyright (C) 2000 Terry Weissman. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Matthew Tuck <matty@chariot.net.au>
|
||||
# Myk Melez <myk@mozilla.org>
|
||||
|
||||
# Make it harder for us to do dangerous things in Perl.
|
||||
use diagnostics;
|
||||
use strict;
|
||||
use lib ".";
|
||||
|
||||
use vars qw(
|
||||
$template
|
||||
$vars
|
||||
);
|
||||
|
||||
# Include the Bugzilla CGI and general utility library.
|
||||
require "CGI.pl";
|
||||
|
||||
################################################################################
|
||||
# Some constants callers might want to use
|
||||
################################################################################
|
||||
|
||||
$::tryagain = 'Please press <b>Back</b> and try again.';
|
||||
$::wentwrong = 'Something went wrong.';
|
||||
|
||||
################################################################################
|
||||
# The following must be set up by the caller.
|
||||
################################################################################
|
||||
|
||||
# What we're editing eg ('resolution', 'Resolution', 'resolutions').
|
||||
($::valuetype, $::valuetypeicap, $::valuetypeplural) = ();
|
||||
|
||||
# What group you have to be in to edit these.
|
||||
$::grouprestrict = undef;
|
||||
|
||||
# The name of the CGI calling the editor.
|
||||
$::thiscgi = undef;
|
||||
|
||||
# The name of the table that stores what we're editing.
|
||||
$::tablename = undef;
|
||||
|
||||
# The name of the table that has references to what we're editing.
|
||||
# This currently doesn't support multiple references.
|
||||
$::bugsreftablename = undef;
|
||||
|
||||
# The full field name of the field that has references to what we're editing,
|
||||
# eg 'bugs.resolution_id'.
|
||||
$::bugsreffieldref = undef;
|
||||
|
||||
# The maximum number of characters allowed in the name of what we're editing.
|
||||
# Get this information from the schema.
|
||||
$::maxnamesize = undef;
|
||||
|
||||
# Whether to use sortkeys.
|
||||
$::usesortkeys = undef;
|
||||
|
||||
################################################################################
|
||||
# The following may be changed by the caller.
|
||||
################################################################################
|
||||
|
||||
# Whether we can delete this thing when it is referred to in the DB.
|
||||
$::candeleterefsref = sub ($) { return 0; };
|
||||
# If so, a subroutine to do it.
|
||||
$::deleterefsref = sub ($) { die 'Shouldn\'t be here! (admineditor.pl/deleterefsref)'; };
|
||||
|
||||
# This allows us to add extra vars to the template, which is passed in as a hashref.
|
||||
$::extravarsref = sub ($) {};
|
||||
|
||||
# "Rest" allows us to extend the code in this file to handle extra things, called
|
||||
# "the rest".
|
||||
|
||||
# These check extra errors and warnings.
|
||||
$::extraerrorsref = sub ($) {};
|
||||
$::extrawarningsref = sub ($) { return (); };
|
||||
|
||||
# This takes the rest, and does anything necessary for use in SQL, eg
|
||||
# SqlQuoting strings.
|
||||
$::preparerestforsqlref = sub ($) {};
|
||||
|
||||
# This is the default rest.
|
||||
%::defaultrest = ();
|
||||
|
||||
################################################################################
|
||||
# Begin admin editor code
|
||||
################################################################################
|
||||
|
||||
sub ValidateName ($) {
|
||||
|
||||
my ($fieldsref) = @_;
|
||||
|
||||
my $name = $::FORM{name};
|
||||
my $id = $$fieldsref{id};
|
||||
|
||||
if (!defined($name)) {
|
||||
ThatDoesntValidate("name");
|
||||
exit;
|
||||
}
|
||||
|
||||
$name = trim($name);
|
||||
|
||||
if ($name eq "") {
|
||||
DisplayError("You must enter a non-blank name for the $::valuetype. $::tryagain");
|
||||
exit;
|
||||
}
|
||||
if ($name =~ /[\s,]/) {
|
||||
DisplayError("You may not use commas or whitespace in a $::valuetype name. $::tryagain");
|
||||
exit;
|
||||
}
|
||||
if ($::maxnamesize < length($name)) {
|
||||
DisplayError("Names can't have more than $::maxnamesize characters. $::tryagain");
|
||||
exit;
|
||||
}
|
||||
|
||||
my $sqlcondition;
|
||||
my $sqlname = SqlQuote($name);
|
||||
|
||||
if (defined $id) {
|
||||
$sqlcondition = "name = $sqlname AND id != $id";
|
||||
}
|
||||
else {
|
||||
$sqlcondition = "name = $sqlname";
|
||||
}
|
||||
|
||||
if (RecordExists($::tablename, $sqlcondition)) {
|
||||
DisplayError("The $::valuetype $name already exists. $::tryagain");
|
||||
exit;
|
||||
}
|
||||
|
||||
$$fieldsref{name} = $name;
|
||||
|
||||
}
|
||||
|
||||
sub ValidateDesc ($) {
|
||||
|
||||
my ($fieldsref) = @_;
|
||||
|
||||
my $description = $::FORM{description};
|
||||
|
||||
if (!defined($description)) {
|
||||
ThatDoesntValidate("description");
|
||||
exit;
|
||||
}
|
||||
|
||||
$description = trim($description);
|
||||
|
||||
if ($description eq "") {
|
||||
DisplayError("You must enter a non-blank description of the $::valuetype. $::tryagain");
|
||||
exit;
|
||||
}
|
||||
|
||||
$$fieldsref{description} = $description;
|
||||
|
||||
}
|
||||
|
||||
sub ValidateID ($) {
|
||||
|
||||
my ($fieldsref) = @_;
|
||||
|
||||
$::FORM{id} = trim($::FORM{id});
|
||||
|
||||
if (detaint_natural($::FORM{id})) {
|
||||
$$fieldsref{id} = $::FORM{id};
|
||||
}
|
||||
else {
|
||||
ThatDoesntValidate("id");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sub ValidateIsActive ($) {
|
||||
|
||||
my ($fieldsref) = @_;
|
||||
|
||||
if (!defined $::FORM{isactive}) {
|
||||
$$fieldsref{isactive} = 0;
|
||||
}
|
||||
elsif ($::FORM{isactive} eq "1") {
|
||||
$$fieldsref{isactive} = 1;
|
||||
}
|
||||
else {
|
||||
ThatDoesntValidate("isactive");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sub ValidateSortKey ($) {
|
||||
|
||||
my ($fieldsref) = @_;
|
||||
|
||||
$::FORM{sortkey} = trim($::FORM{sortkey});
|
||||
|
||||
if (detaint_natural($::FORM{sortkey})) {
|
||||
$$fieldsref{sortkey} = $::FORM{sortkey};
|
||||
}
|
||||
else {
|
||||
ThatDoesntValidate('sortkey');
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sub CheckWarnings (%) {
|
||||
|
||||
my (%fields) = @_;
|
||||
|
||||
my @warnings = &$::extrawarningsref(%fields);
|
||||
|
||||
if (@warnings && !$::FORM{reallychange}) {
|
||||
$vars->{warnings} = @warnings;
|
||||
EmitTemplate("admin/$::valuetypeplural/warnings.atml");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sub EmitTemplate($) {
|
||||
|
||||
my ($templatename) = @_;
|
||||
|
||||
# Return the appropriate HTTP response headers.
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process($templatename, $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
||||
}
|
||||
|
||||
sub ExtraFields() {
|
||||
|
||||
my %defaults = %::defaultrest;
|
||||
return keys %defaults;
|
||||
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Main Body Execution
|
||||
################################################################################
|
||||
|
||||
sub AdminEditor() {
|
||||
# Preliminary checks.
|
||||
|
||||
confirm_login();
|
||||
|
||||
unless (UserInGroup($::grouprestrict)) {
|
||||
DisplayError("Sorry, you aren't a member of the $::grouprestrict group. " .
|
||||
"And so, you aren't allowed to add, modify or delete $::valuetypeplural.",
|
||||
"Not allowed");
|
||||
exit;
|
||||
}
|
||||
|
||||
$vars->{'thiscgi'} = $::thiscgi;
|
||||
$vars->{'valuetype'} = $::valuetype;
|
||||
$vars->{'valuetypeicap'} = $::valuetypeicap;
|
||||
$vars->{'maxnamesize'} = $::maxnamesize;
|
||||
$vars->{'usesortkeys'} = $::usesortkeys;
|
||||
|
||||
&$::extravarsref($vars);
|
||||
|
||||
# All calls to this script should contain an "action" variable whose value
|
||||
# determines what the user wants to do. The code below checks the value of
|
||||
# that variable and runs the appropriate code.
|
||||
|
||||
# Determine whether to use the action specified by the user or the default.
|
||||
my $action = $::FORM{'action'} || 'list';
|
||||
|
||||
my %fields;
|
||||
|
||||
if ($action eq "list") {
|
||||
|
||||
ListScreen("");
|
||||
|
||||
}
|
||||
elsif ($action eq "add") {
|
||||
|
||||
CreateScreen();
|
||||
|
||||
}
|
||||
elsif ($action eq "new") {
|
||||
|
||||
ValidateName(\%fields);
|
||||
ValidateDesc(\%fields);
|
||||
ValidateSortKey(\%fields) if ($::usesortkeys);
|
||||
&$::extraerrorsref(\%fields);
|
||||
|
||||
CheckWarnings(%fields);
|
||||
|
||||
InsertNew(%fields);
|
||||
|
||||
}
|
||||
elsif ($action eq "edit") {
|
||||
|
||||
ValidateID(\%fields);
|
||||
EditScreen(%fields);
|
||||
|
||||
}
|
||||
elsif ($action eq "update") {
|
||||
|
||||
ValidateID(\%fields);
|
||||
ValidateName(\%fields);
|
||||
ValidateDesc(\%fields);
|
||||
ValidateIsActive(\%fields);
|
||||
ValidateSortKey(\%fields) if ($::usesortkeys);
|
||||
|
||||
&$::extraerrorsref(\%fields);
|
||||
|
||||
CheckWarnings(%fields);
|
||||
|
||||
UpdateExisting(%fields);
|
||||
|
||||
}
|
||||
elsif ($action eq "delete") {
|
||||
|
||||
ValidateID(\%fields);
|
||||
|
||||
DeleteExisting(%fields);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
ThatDoesntValidate("action");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# The Actions
|
||||
################################################################################
|
||||
|
||||
# Screen to present values to user to determine what to do.
|
||||
# Next action would be CreateScreen, EditScreen or DeleteExisting.
|
||||
sub ListScreen ($) {
|
||||
|
||||
my ($message) = (@_);
|
||||
|
||||
my $ordering = $::usesortkeys
|
||||
? "$::tablename.sortkey, $::tablename.name"
|
||||
: "$::tablename.name";
|
||||
|
||||
SendSQL("SELECT $::tablename.id, $::tablename.name, " .
|
||||
"$::tablename.description, $::tablename.isactive, " .
|
||||
"COUNT($::bugsreffieldref) " .
|
||||
"FROM $::tablename LEFT JOIN $::bugsreftablename ON " .
|
||||
"$::tablename.id = $::bugsreffieldref " .
|
||||
"GROUP BY $::tablename.id " .
|
||||
"ORDER BY $ordering");
|
||||
|
||||
my @values;
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my ($id, $name, $description, $isactive, $bugcount) =
|
||||
FetchSQLData();
|
||||
$bugcount ||= 0;
|
||||
|
||||
push( @values, { 'id' => $id, 'name' => $name, 'description' => $description,
|
||||
'isactive' => $isactive, 'bugcount' => $bugcount } );
|
||||
}
|
||||
|
||||
# Define the variables and functions that will be passed to the UI template.
|
||||
$vars->{'values'} = \@values;
|
||||
$vars->{'message'} = $message;
|
||||
|
||||
# Generate the template.
|
||||
EmitTemplate("admin/$::valuetypeplural/list.atml");
|
||||
|
||||
}
|
||||
|
||||
# Screen to create a new value.
|
||||
# Next action would be InsertNew.
|
||||
sub CreateScreen() {
|
||||
|
||||
$vars->{name} = '';
|
||||
$vars->{description} = '';
|
||||
$vars->{sortkey} = 0;
|
||||
|
||||
# Defaults for the rest
|
||||
%$vars = ( %$vars, %::defaultrest );
|
||||
|
||||
# Generate the template.
|
||||
EmitTemplate("admin/$::valuetypeplural/create.atml");
|
||||
|
||||
}
|
||||
|
||||
# Add value entered on the creation screen.
|
||||
sub InsertNew(%) {
|
||||
|
||||
my (%fields) = @_;
|
||||
|
||||
my $htmlname = html_quote($fields{name});
|
||||
my $sqlname = SqlQuote($fields{name});
|
||||
my $sqldescription = SqlQuote($fields{description});
|
||||
|
||||
# Pick an unused number. Be sure to recycle numbers that may have been
|
||||
# deleted in the past. This code is potentially slow, but it happens
|
||||
# rarely enough.
|
||||
|
||||
SendSQL("SELECT id FROM $::tablename ORDER BY id");
|
||||
|
||||
my $newid = 1;
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my $oldid = FetchOneColumn();
|
||||
|
||||
detaint_natural($oldid) || die "Failed to detaint next seqnum.";
|
||||
|
||||
if ($oldid > $newid) {
|
||||
last;
|
||||
}
|
||||
$newid = $oldid + 1;
|
||||
}
|
||||
|
||||
# Do proper conversion for inclusion in SQL
|
||||
$fields{id} = $newid;
|
||||
$fields{name} = $sqlname;
|
||||
$fields{description} = SqlQuote($fields{description});
|
||||
&$::preparerestforsqlref(\%fields);
|
||||
|
||||
# Add the new record.
|
||||
my $fieldnames = join(', ', keys(%fields));
|
||||
my $fieldvalues = join(', ', values(%fields));
|
||||
|
||||
SendSQL("INSERT INTO $::tablename ($fieldnames) VALUES ($fieldvalues)");
|
||||
|
||||
# Make versioncache flush
|
||||
unlink "data/versioncache";
|
||||
|
||||
# Display list with message.
|
||||
ListScreen( "$::valuetypeicap $htmlname added." );
|
||||
|
||||
}
|
||||
|
||||
# Screen to edit existing value.
|
||||
# Next action would be UpdateExisting.
|
||||
sub EditScreen (%) {
|
||||
|
||||
my (%fields) = @_;
|
||||
my $id = $fields{id};
|
||||
|
||||
my %defaults = %::defaultrest;
|
||||
|
||||
my @fieldnames = ('name', 'description', 'isactive', keys %defaults);
|
||||
@fieldnames = (@fieldnames, 'sortkey') if ($::usesortkeys);
|
||||
|
||||
my $fieldnames = join(', ', @fieldnames);
|
||||
|
||||
# get data of record
|
||||
SendSQL("SELECT $fieldnames FROM $::tablename WHERE id = $id");
|
||||
|
||||
if (!MoreSQLData()) {
|
||||
DisplayError("$::wentwrong I can't find the $::valuetype ID $id.");
|
||||
exit;
|
||||
}
|
||||
|
||||
my @data = FetchSQLData();
|
||||
|
||||
my $bugcount = GetCount( $::bugsreftablename, "$::bugsreffieldref = $id" );
|
||||
|
||||
# Define the variables and functions that will be passed to the UI template.
|
||||
$vars->{'id'} = $id;
|
||||
$vars->{'bugcount'} = $bugcount;
|
||||
|
||||
foreach my $fieldname (@fieldnames) {
|
||||
my $datum = shift @data;
|
||||
$vars->{$fieldname} = $datum;
|
||||
}
|
||||
|
||||
# Generate the template.
|
||||
EmitTemplate("admin/$::valuetypeplural/edit.atml");
|
||||
|
||||
}
|
||||
|
||||
# Update the value edited on the edit screen.
|
||||
sub UpdateExisting (%) {
|
||||
|
||||
my (%fields) = @_;
|
||||
|
||||
my $id = $fields{id};
|
||||
|
||||
my $htmlname = html_quote($fields{name});
|
||||
my $sqlname = SqlQuote($fields{name});
|
||||
|
||||
# Do proper conversion for inclusion in SQL
|
||||
delete $fields{id};
|
||||
$fields{name} = $sqlname;
|
||||
$fields{description} = SqlQuote($fields{description});
|
||||
&$::preparerestforsqlref(\%fields);
|
||||
|
||||
# Generate the SET SQL
|
||||
my $assignments = GenerateUpdateSQL(%fields);
|
||||
|
||||
# Send the SQL
|
||||
SendSQL("UPDATE $::tablename SET $assignments WHERE id = $id");
|
||||
|
||||
# Make versioncache flush
|
||||
unlink "data/versioncache";
|
||||
|
||||
# Display list with message.
|
||||
ListScreen( "$::valuetypeicap $htmlname updated." );
|
||||
|
||||
}
|
||||
|
||||
# Delete the value selected on the list screen.
|
||||
sub DeleteExisting (%) {
|
||||
|
||||
my (%fields) = @_;
|
||||
my $id = $fields{id};
|
||||
|
||||
SendSQL("SELECT name FROM $::tablename WHERE id = $id");
|
||||
|
||||
if (!MoreSQLData()) {
|
||||
DisplayError("$::wentwrong That $::valuetype does not exist!");
|
||||
exit;
|
||||
}
|
||||
|
||||
my $name = FetchOneColumn();
|
||||
my $htmlname = html_quote($name);
|
||||
|
||||
my $bugcount = GetCount($::bugsreftablename, "$::bugsreffieldref = $id");
|
||||
|
||||
if (!$::FORM{reallydelete} or !(&$::candeleterefsref($id))) {
|
||||
|
||||
if (0 < $bugcount) {
|
||||
if (&$::candeleterefsref($id)) {
|
||||
$vars->{id} = $id;
|
||||
$vars->{name} = $name;
|
||||
$vars->{bugcount} = $bugcount;
|
||||
|
||||
EmitTemplate("admin/$::valuetypeplural/confirmdelete.atml");
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
DisplayError("There are $bugcount bug(s) which have " .
|
||||
"the $::valuetype $htmlname. You " .
|
||||
"can't delete the $::valuetype while " .
|
||||
"it is on one or more bugs.");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($bugcount > 0) {
|
||||
&$::deleterefsref($id);
|
||||
}
|
||||
|
||||
SendSQL("DELETE FROM $::tablename WHERE id = $id");
|
||||
|
||||
# Make versioncache flush
|
||||
unlink "data/versioncache";
|
||||
|
||||
# Display list with message.
|
||||
ListScreen( "$::valuetypeicap $htmlname deleted." );
|
||||
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -31,17 +31,41 @@ use strict;
|
||||
|
||||
use lib qw(.);
|
||||
|
||||
use vars qw(
|
||||
$template
|
||||
$vars
|
||||
);
|
||||
|
||||
# Include the Bugzilla CGI and general utility library.
|
||||
require "CGI.pl";
|
||||
|
||||
# Establish a connection to the database backend.
|
||||
ConnectToDatabase();
|
||||
|
||||
# Use the template toolkit (http://www.template-toolkit.org/) to generate
|
||||
# the user interface (HTML pages and mail messages) using templates in the
|
||||
# "template/" subdirectory.
|
||||
use Template;
|
||||
|
||||
# Create the global template object that processes templates and specify
|
||||
# configuration parameters that apply to all templates processed in this script.
|
||||
my $template = Template->new(
|
||||
{
|
||||
# Colon-separated list of directories containing templates.
|
||||
INCLUDE_PATH => "template/custom:template/default" ,
|
||||
# Allow templates to be specified with relative paths.
|
||||
RELATIVE => 1
|
||||
}
|
||||
);
|
||||
|
||||
# Define the global variables and functions that will be passed to the UI
|
||||
# template. Individual functions add their own values to this hash before
|
||||
# sending them to the templates they process.
|
||||
my $vars =
|
||||
{
|
||||
# Function for retrieving global parameters.
|
||||
'Param' => \&Param ,
|
||||
|
||||
# Function for processing global parameters that contain references
|
||||
# to other global parameters.
|
||||
'PerformSubsts' => \&PerformSubsts
|
||||
};
|
||||
|
||||
# Check whether or not the user is logged in and, if so, set the $::userid
|
||||
# and $::usergroupset variables.
|
||||
quietly_check_login();
|
||||
@@ -77,7 +101,6 @@ elsif ($action eq "insert")
|
||||
{
|
||||
confirm_login();
|
||||
ValidateBugID($::FORM{'bugid'});
|
||||
ValidateComment($::FORM{'comment'});
|
||||
validateFilename();
|
||||
validateData();
|
||||
validateDescription();
|
||||
@@ -88,17 +111,16 @@ elsif ($action eq "insert")
|
||||
}
|
||||
elsif ($action eq "edit")
|
||||
{
|
||||
quietly_check_login();
|
||||
validateID();
|
||||
validateCanEdit($::FORM{'id'});
|
||||
edit();
|
||||
}
|
||||
elsif ($action eq "update")
|
||||
{
|
||||
confirm_login();
|
||||
ValidateComment($::FORM{'comment'});
|
||||
UserInGroup("editbugs")
|
||||
|| DisplayError("You are not authorized to edit attachments.")
|
||||
&& exit;
|
||||
validateID();
|
||||
validateCanEdit($::FORM{'id'});
|
||||
validateDescription();
|
||||
validateIsPatch();
|
||||
validateContentType() unless $::FORM{'ispatch'};
|
||||
@@ -137,28 +159,6 @@ sub validateID
|
||||
ValidateBugID($bugid);
|
||||
}
|
||||
|
||||
sub validateCanEdit
|
||||
{
|
||||
my ($attach_id) = (@_);
|
||||
|
||||
# If the user is not logged in, claim that they can edit. This allows
|
||||
# the edit scrren to be displayed to people who aren't logged in.
|
||||
# People not logged in can't actually commit changes, because that code
|
||||
# calls confirm_login, not quietly_check_login, before calling this sub
|
||||
return if $::userid == 0;
|
||||
|
||||
# People in editbugs can edit all attachments
|
||||
return if UserInGroup("editbugs");
|
||||
|
||||
# Bug 97729 - the submitter can edit their attachments
|
||||
SendSQL("SELECT attach_id FROM attachments WHERE " .
|
||||
"attach_id = $attach_id AND submitter_id = $::userid");
|
||||
|
||||
FetchSQLData()
|
||||
|| DisplayError("You are not authorised to edit attachment #$attach_id")
|
||||
&& exit;
|
||||
}
|
||||
|
||||
sub validateDescription
|
||||
{
|
||||
$::FORM{'description'}
|
||||
@@ -302,6 +302,15 @@ sub validateFilename
|
||||
|
||||
sub validateObsolete
|
||||
{
|
||||
# When a user creates an attachment, they can request that one or more
|
||||
# existing attachments be made obsolete. This function makes sure they
|
||||
# are authorized to make changes to attachments and that the IDs of the
|
||||
# attachments they selected for obsoletion are all valid.
|
||||
UserInGroup("editbugs")
|
||||
|| DisplayError("You must be authorized to make changes to attachments
|
||||
to make attachments obsolete when creating a new attachment.")
|
||||
&& exit;
|
||||
|
||||
# Make sure the attachment id is valid and the user has permissions to view
|
||||
# the bug to which it is attached.
|
||||
foreach my $attachid (@{$::MFORM{'obsolete'}}) {
|
||||
@@ -320,6 +329,9 @@ sub validateObsolete
|
||||
|
||||
my ($bugid, $isobsolete, $description) = FetchSQLData();
|
||||
|
||||
# Make sure the user is authorized to access this attachment's bug.
|
||||
ValidateBugID($bugid);
|
||||
|
||||
if ($bugid != $::FORM{'bugid'})
|
||||
{
|
||||
$description = html_quote($description);
|
||||
@@ -335,9 +347,6 @@ sub validateObsolete
|
||||
DisplayError("Attachment #$attachid ($description) is already obsolete.");
|
||||
exit;
|
||||
}
|
||||
|
||||
# Check that the user can modify this attachment
|
||||
validateCanEdit($attachid);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -416,8 +425,9 @@ sub viewall
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("attachment/show-multiple.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("attachment/viewall.atml", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
}
|
||||
|
||||
|
||||
@@ -425,16 +435,12 @@ sub enter
|
||||
{
|
||||
# Display a form for entering a new attachment.
|
||||
|
||||
# Retrieve the attachments the user can edit from the database and write
|
||||
# them into an array of hashes where each hash represents one attachment.
|
||||
my $canEdit = "";
|
||||
if (!UserInGroup("editbugs")) {
|
||||
$canEdit = "AND submitter_id = $::userid";
|
||||
}
|
||||
# Retrieve the attachments from the database and write them into an array
|
||||
# of hashes where each hash represents one attachment.
|
||||
SendSQL("SELECT attach_id, description
|
||||
FROM attachments
|
||||
WHERE bug_id = $::FORM{'bugid'}
|
||||
AND isobsolete = 0 $canEdit
|
||||
AND isobsolete = 0
|
||||
ORDER BY attach_id");
|
||||
my @attachments; # the attachments array
|
||||
while ( MoreSQLData() ) {
|
||||
@@ -458,8 +464,9 @@ sub enter
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("attachment/create.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("attachment/enter.atml", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
}
|
||||
|
||||
|
||||
@@ -525,17 +532,17 @@ sub insert
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("attachment/created.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("attachment/created.atml", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
}
|
||||
|
||||
|
||||
sub edit
|
||||
{
|
||||
# Edit an attachment record. Users with "editbugs" privileges, (or the
|
||||
# original attachment's submitter) can edit the attachment's description,
|
||||
# content type, ispatch and isobsolete flags, and statuses, and they can
|
||||
# also submit a comment that appears in the bug.
|
||||
# Edit an attachment record. Users with "editbugs" privileges can edit the
|
||||
# attachment's description, content type, ispatch and isobsolete flags, and
|
||||
# statuses, and they can also submit a comment that appears in the bug.
|
||||
# Users cannot edit the content of the attachment itself.
|
||||
|
||||
# Retrieve the attachment from the database.
|
||||
@@ -600,12 +607,13 @@ sub edit
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("attachment/edit.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("attachment/edit.atml", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
}
|
||||
|
||||
|
||||
sub update
|
||||
sub update
|
||||
{
|
||||
# Update an attachment record.
|
||||
|
||||
@@ -616,10 +624,8 @@ sub update
|
||||
&& exit;
|
||||
|
||||
# Lock database tables in preparation for updating the attachment.
|
||||
if ($::driver eq 'mysql') {
|
||||
SendSQL("LOCK TABLES attachments WRITE , attachstatuses WRITE ,
|
||||
attachstatusdefs READ , fielddefs READ , bugs_activity WRITE");
|
||||
}
|
||||
SendSQL("LOCK TABLES attachments WRITE , attachstatuses WRITE ,
|
||||
attachstatusdefs READ , fielddefs READ , bugs_activity WRITE");
|
||||
|
||||
# Get a copy of the attachment record before we make changes
|
||||
# so we can record those changes in the activity table.
|
||||
@@ -710,9 +716,7 @@ sub update
|
||||
}
|
||||
|
||||
# Unlock all database tables now that we are finished updating the database.
|
||||
if ($::driver eq 'mysql') {
|
||||
SendSQL("UNLOCK TABLES");
|
||||
}
|
||||
SendSQL("UNLOCK TABLES");
|
||||
|
||||
# If this installation has enabled the request manager, let the manager know
|
||||
# an attachment was updated so it can check for requests on that attachment
|
||||
@@ -787,6 +791,8 @@ sub update
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("attachment/updated.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("attachment/updated.atml", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
||||
}
|
||||
|
||||
79
mozilla/webtools/bugzilla/booleanchart.html
Normal file
79
mozilla/webtools/bugzilla/booleanchart.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<html> <head>
|
||||
<title>The "boolean chart" section of the query page</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>The "boolean chart" section of the query page</h1>
|
||||
|
||||
("Boolean chart" is a terrible term; anyone got a better one I can use
|
||||
instead?)
|
||||
|
||||
<p>
|
||||
|
||||
The Bugzilla query page is designed to be reasonably easy to use.
|
||||
But, with such ease of use always comes some lack of power. The
|
||||
"boolean chart" section is designed to let you do very powerful
|
||||
queries, but it's not the easiest thing to learn (or explain).
|
||||
<p>
|
||||
So.
|
||||
<p>
|
||||
|
||||
The boolean chart starts with a single "term". A term is a
|
||||
combination of two pulldown menus and a text field.
|
||||
You choose items from the menus, specifying "what kind of thing
|
||||
am I searching for" and "what kind of matching do I want", and type in
|
||||
a value on the text field, specifying "what should it match".
|
||||
|
||||
<p>
|
||||
|
||||
The real fun starts when you click on the "Or" or "And" buttons. If
|
||||
you bonk on the "Or" button, then you get a second term to the right
|
||||
of the first one. You can then configure that term, and the result of
|
||||
the query will be anything that matches either of the terms.
|
||||
|
||||
<p>
|
||||
|
||||
Or, you can bonk the "And" button, and get a new term below the
|
||||
original one, and now the result of the query will be anything that
|
||||
matches both of the terms.
|
||||
|
||||
<p>
|
||||
|
||||
And you can keep clicking "And" and "Or", and get a page with tons of
|
||||
terms. "Or" has higher precedence than "And". (In other words, you
|
||||
can think of each line of "Or" stuff as having parenthesis around it.)
|
||||
|
||||
<p>
|
||||
|
||||
The most subtle thing is this "Add another boolean chart" button.
|
||||
This is almost the same thing as the "And" button. The difference is
|
||||
if you use one of the fields where several items can be associated
|
||||
with a single bug. This includes "Comments", "CC", and all the
|
||||
"changed [something]" entries. Now, if you have multiple terms that
|
||||
all talk about one of these fields, it's ambiguous whether they are
|
||||
allowed to be talking about different instances of that field. So,
|
||||
to let you have it both ways, they always mean the same instance,
|
||||
unless the terms appear on different charts.
|
||||
|
||||
<p>
|
||||
|
||||
For example: if you search for "priority changed to P5" and
|
||||
"priority changed by person@addr", it will only find bugs where the
|
||||
given person at some time changed the priority to P5. However, if
|
||||
what you really want is to find all bugs where the milestone was
|
||||
changed at some time by the person, and someone (possibly someone
|
||||
else) at some time changed the milestone to P5, then you would put
|
||||
the two terms in two different charts.
|
||||
|
||||
<p>
|
||||
|
||||
Clear as mud? Please, I beg you, rewrite this document to make
|
||||
everything crystal clear, and send the improved version to <a
|
||||
href="mailto:tara@tequilarista.org">Tara</a>.
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- hhmts start -->
|
||||
Last modified: Wed Aug 16 16:06:36 2000
|
||||
<!-- hhmts end -->
|
||||
</body> </html>
|
||||
@@ -28,351 +28,622 @@ use RelationSet;
|
||||
# Use the Attachment module to display attachments for the bug.
|
||||
use Attachment;
|
||||
|
||||
sub show_bug {
|
||||
# Shut up misguided -w warnings about "used only once". For some reason,
|
||||
# "use vars" chokes on me when I try it here.
|
||||
sub bug_form_pl_sillyness {
|
||||
my $zz;
|
||||
$zz = %::FORM;
|
||||
$zz = %::proddesc;
|
||||
$zz = %::prodmaxvotes;
|
||||
$zz = @::enterable_products;
|
||||
$zz = @::settable_resolution;
|
||||
$zz = $::unconfirmedstate;
|
||||
$zz = $::milestoneurl;
|
||||
$zz = $::template;
|
||||
$zz = $::vars;
|
||||
$zz = @::legal_priority;
|
||||
$zz = @::legal_platform;
|
||||
$zz = @::legal_severity;
|
||||
$zz = @::legal_bug_status;
|
||||
$zz = @::target_milestone;
|
||||
$zz = @::components;
|
||||
$zz = @::legal_keywords;
|
||||
$zz = @::versions;
|
||||
$zz = @::legal_opsys;
|
||||
# Shut up misguided -w warnings about "used only once". For some reason,
|
||||
# "use vars" chokes on me when I try it here.
|
||||
|
||||
sub bug_form_pl_sillyness {
|
||||
my $zz;
|
||||
$zz = %::FORM;
|
||||
$zz = %::components;
|
||||
$zz = %::proddesc;
|
||||
$zz = %::prodmaxvotes;
|
||||
$zz = %::versions;
|
||||
$zz = @::legal_keywords;
|
||||
$zz = @::legal_opsys;
|
||||
$zz = @::legal_platform;
|
||||
$zz = @::legal_priority;
|
||||
$zz = @::settable_normal_resolution;
|
||||
$zz = @::settable_dupe_resolution;
|
||||
$zz = @::settable_moved_resolution;
|
||||
$zz = @::legal_severity;
|
||||
$zz = %::target_milestone;
|
||||
}
|
||||
|
||||
my $loginok = quietly_check_login();
|
||||
|
||||
my $id = $::FORM{'id'};
|
||||
|
||||
my $query = "
|
||||
select
|
||||
bugs.bug_id,
|
||||
product,
|
||||
version,
|
||||
rep_platform,
|
||||
op_sys,
|
||||
bug_status,
|
||||
resolution_id,
|
||||
priority,
|
||||
bug_severity,
|
||||
component,
|
||||
assigned_to,
|
||||
reporter,
|
||||
bug_file_loc,
|
||||
short_desc,
|
||||
target_milestone,
|
||||
qa_contact,
|
||||
status_whiteboard,
|
||||
date_format(creation_ts,'%Y-%m-%d %H:%i'),
|
||||
groupset,
|
||||
delta_ts,
|
||||
sum(votes.count)
|
||||
from bugs left join votes using(bug_id)
|
||||
where bugs.bug_id = $id
|
||||
group by bugs.bug_id";
|
||||
|
||||
SendSQL($query);
|
||||
my %bug;
|
||||
my @row;
|
||||
@row = FetchSQLData();
|
||||
my $count = 0;
|
||||
foreach my $field ("bug_id", "product", "version", "rep_platform",
|
||||
"op_sys", "bug_status", "resolution_id", "priority",
|
||||
"bug_severity", "component", "assigned_to", "reporter",
|
||||
"bug_file_loc", "short_desc", "target_milestone",
|
||||
"qa_contact", "status_whiteboard", "creation_ts",
|
||||
"groupset", "delta_ts", "votes") {
|
||||
$bug{$field} = shift @row;
|
||||
if (!defined $bug{$field}) {
|
||||
$bug{$field} = "";
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
|
||||
# Use templates
|
||||
my $template = $::template;
|
||||
my $vars = $::vars;
|
||||
|
||||
$vars->{'GetBugLink'} = \&GetBugLink;
|
||||
$vars->{'quoteUrls'} = \"eUrls,
|
||||
$vars->{'lsearch'} = \&lsearch,
|
||||
$vars->{'header_done'} = (@_),
|
||||
$bug{'resolution'} = ResolutionIDToName($bug{'resolution_id'});
|
||||
|
||||
quietly_check_login();
|
||||
my $assignedtoid = $bug{'assigned_to'};
|
||||
my $reporterid = $bug{'reporter'};
|
||||
my $qacontactid = $bug{'qa_contact'};
|
||||
|
||||
my $id = $::FORM{'id'};
|
||||
|
||||
if (!defined($id)) {
|
||||
$template->process("bug/choose.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
exit;
|
||||
$bug{'assigned_to_email'} = DBID_to_name($assignedtoid);
|
||||
$bug{'assigned_to'} = DBID_to_real_or_loginname($bug{'assigned_to'});
|
||||
$bug{'reporter'} = DBID_to_real_or_loginname($bug{'reporter'});
|
||||
|
||||
print qq{<FORM NAME="changeform" METHOD="POST" ACTION="process_bug.cgi">\n};
|
||||
|
||||
# foreach my $i (sort(keys(%bug))) {
|
||||
# my $q = value_quote($bug{$i});
|
||||
# print qq{<INPUT TYPE="HIDDEN" NAME="orig-$i" VALUE="$q">\n};
|
||||
# }
|
||||
|
||||
$bug{'long_desc'} = GetLongDescriptionAsHTML($id);
|
||||
my $longdesclength = length($bug{'long_desc'});
|
||||
|
||||
GetVersionTable();
|
||||
|
||||
|
||||
|
||||
#
|
||||
# These should be read from the database ...
|
||||
#
|
||||
|
||||
my $platform_popup = make_options(\@::legal_platform, $bug{'rep_platform'});
|
||||
my $priority_popup = make_options(\@::legal_priority, $bug{'priority'});
|
||||
my $sev_popup = make_options(\@::legal_severity, $bug{'bug_severity'});
|
||||
|
||||
|
||||
my $component_popup = make_options($::components{$bug{'product'}},
|
||||
$bug{'component'});
|
||||
|
||||
my $ccSet = new RelationSet;
|
||||
$ccSet->mergeFromDB("select who from cc where bug_id=$id");
|
||||
my @ccList = $ccSet->toArrayOfStrings();
|
||||
my $cc_element = "<INPUT TYPE=HIDDEN NAME=cc VALUE=\"\">";
|
||||
if (scalar(@ccList) > 0) {
|
||||
$cc_element = "<SELECT NAME=cc MULTIPLE SIZE=5>\n";
|
||||
foreach my $ccName ( @ccList ) {
|
||||
$cc_element .= "<OPTION VALUE=\"$ccName\">$ccName\n";
|
||||
}
|
||||
$cc_element .= "</SELECT><BR>\n" .
|
||||
"<INPUT TYPE=CHECKBOX NAME=removecc>Remove selected CCs<br>\n";
|
||||
}
|
||||
|
||||
my $URL = value_quote($bug{'bug_file_loc'});
|
||||
|
||||
if (defined $URL && $URL ne "none" && $URL ne "NULL" && $URL ne "") {
|
||||
$URL = "<B><A HREF=\"$URL\">URL:</A></B>";
|
||||
} else {
|
||||
$URL = "<B>URL:</B>";
|
||||
}
|
||||
|
||||
#
|
||||
# Make a list of products the user has access to
|
||||
#
|
||||
|
||||
my (@prodlist, $product_popup);
|
||||
foreach my $p (sort(keys %::versions)) {
|
||||
if ($p eq $bug{'product'}) {
|
||||
# if it's the product the bug is already in, it's ALWAYS in
|
||||
# the popup, period, whether the user can see it or not, and
|
||||
# regardless of the disallownew setting.
|
||||
push(@prodlist, $p);
|
||||
next;
|
||||
}
|
||||
|
||||
my %user = %{$vars->{'user'}};
|
||||
my %bug;
|
||||
|
||||
# Populate the bug hash with the info we get directly from the DB.
|
||||
my $query = "
|
||||
SELECT
|
||||
bugs.bug_id,
|
||||
product,
|
||||
version,
|
||||
rep_platform,
|
||||
op_sys,
|
||||
bug_status,
|
||||
resolution,
|
||||
priority,
|
||||
bug_severity,
|
||||
component,
|
||||
assigned_to,
|
||||
reporter,
|
||||
bug_file_loc,
|
||||
short_desc,
|
||||
target_milestone,
|
||||
qa_contact,
|
||||
status_whiteboard, ";
|
||||
|
||||
if ($::driver eq 'mysql') {
|
||||
$query .= "
|
||||
date_format(creation_ts, '%Y-%m-%d %H:%i'),
|
||||
groupset,
|
||||
delta_ts, ";
|
||||
} elsif ($::driver eq 'Pg') {
|
||||
$query .= "
|
||||
TO_CHAR(creation_ts, 'YYYY-MM-DD HH24:MI:SS'),
|
||||
groupset,
|
||||
TO_CHAR(delta_ts, 'YYYYMMDDHH24MISS'), ";
|
||||
if (defined $::proddesc{$p} && $::proddesc{$p} eq '0') {
|
||||
# Special hack. If we stuffed a "0" into proddesc, that means
|
||||
# that disallownew was set for this bug, and so we don't want
|
||||
# to allow people to specify that product here.
|
||||
next;
|
||||
}
|
||||
|
||||
$query .= "
|
||||
SUM(votes.count)
|
||||
FROM
|
||||
bugs LEFT JOIN votes USING(bug_id)
|
||||
WHERE
|
||||
bugs.bug_id = $id
|
||||
GROUP BY
|
||||
bugs.bug_id,
|
||||
product,
|
||||
version,
|
||||
rep_platform,
|
||||
op_sys,
|
||||
bug_status,
|
||||
resolution,
|
||||
priority,
|
||||
bug_severity,
|
||||
component,
|
||||
assigned_to,
|
||||
reporter,
|
||||
bug_file_loc,
|
||||
short_desc,
|
||||
target_milestone,
|
||||
qa_contact,
|
||||
status_whiteboard,
|
||||
creation_ts,
|
||||
groupset,
|
||||
delta_ts ";
|
||||
|
||||
SendSQL($query);
|
||||
|
||||
my $value;
|
||||
my @row = FetchSQLData();
|
||||
foreach my $field ("bug_id", "product", "version", "rep_platform",
|
||||
"op_sys", "bug_status", "resolution", "priority",
|
||||
"bug_severity", "component", "assigned_to", "reporter",
|
||||
"bug_file_loc", "short_desc", "target_milestone",
|
||||
"qa_contact", "status_whiteboard", "creation_ts",
|
||||
"groupset", "delta_ts", "votes")
|
||||
if(Param("usebuggroupsentry")
|
||||
&& GroupExists($p)
|
||||
&& !UserInGroup($p))
|
||||
{
|
||||
$value = shift(@row);
|
||||
$bug{$field} = defined($value) ? $value : "";
|
||||
# If we're using bug groups to restrict entry on products, and
|
||||
# this product has a bug group, and the user is not in that
|
||||
# group, we don't want to include that product in this list.
|
||||
next;
|
||||
}
|
||||
push(@prodlist, $p);
|
||||
}
|
||||
|
||||
# General arrays of info about the database state
|
||||
GetVersionTable();
|
||||
# If the user has access to multiple products, display a popup, otherwise
|
||||
# display the current product.
|
||||
|
||||
# Fiddle the product list.
|
||||
my $seen_curr_prod;
|
||||
my @prodlist;
|
||||
|
||||
foreach my $product (@::enterable_products) {
|
||||
if ($product eq $bug{'product'}) {
|
||||
# if it's the product the bug is already in, it's ALWAYS in
|
||||
# the popup, period, whether the user can see it or not, and
|
||||
# regardless of the disallownew setting.
|
||||
$seen_curr_prod = 1;
|
||||
push(@prodlist, $product);
|
||||
next;
|
||||
}
|
||||
if (1 < @prodlist) {
|
||||
$product_popup = "<SELECT NAME=product>" .
|
||||
make_options(\@prodlist, $bug{'product'}) .
|
||||
"</SELECT>";
|
||||
}
|
||||
else {
|
||||
$product_popup = $bug{'product'} .
|
||||
"<INPUT TYPE=\"HIDDEN\" NAME=\"product\" VALUE=\"$bug{'product'}\">";
|
||||
}
|
||||
|
||||
if (Param("usebuggroupsentry")
|
||||
&& GroupExists($product)
|
||||
&& !UserInGroup($product))
|
||||
{
|
||||
# If we're using bug groups to restrict entry on products, and
|
||||
# this product has a bug group, and the user is not in that
|
||||
# group, we don't want to include that product in this list.
|
||||
next;
|
||||
}
|
||||
print "
|
||||
<INPUT TYPE=HIDDEN NAME=\"delta_ts\" VALUE=\"$bug{'delta_ts'}\">
|
||||
<INPUT TYPE=HIDDEN NAME=\"longdesclength\" VALUE=\"$longdesclength\">
|
||||
<INPUT TYPE=HIDDEN NAME=\"id\" VALUE=$id>
|
||||
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR>
|
||||
<TD ALIGN=RIGHT><B>Bug#:</B></TD><TD><A HREF=\"" . Param('urlbase') . "show_bug.cgi?id=$bug{'bug_id'}\">$bug{'bug_id'}</A></TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi#rep_platform\">Platform:</A></B></TD>
|
||||
<TD><SELECT NAME=rep_platform>$platform_popup</SELECT></TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B>Reporter:</B></TD><TD>$bug{'reporter'}</TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=RIGHT><B>Product:</B></TD>
|
||||
<TD>$product_popup</TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B>OS:</B></TD>
|
||||
<TD><SELECT NAME=op_sys>" .
|
||||
make_options(\@::legal_opsys, $bug{'op_sys'}) .
|
||||
"</SELECT></TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT NOWRAP><b>Add CC:</b></TD>
|
||||
<TD><INPUT NAME=newcc SIZE=30 VALUE=\"\"></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"describecomponents.cgi?product=" .
|
||||
url_quote($bug{'product'}) . "\">Component:</A></B></TD>
|
||||
<TD><SELECT NAME=component>$component_popup</SELECT></TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B>Version:</B></TD>
|
||||
<TD><SELECT NAME=version>" .
|
||||
make_options($::versions{$bug{'product'}}, $bug{'version'}) .
|
||||
"</SELECT></TD>
|
||||
<TD> </TD>
|
||||
<TD ROWSPAN=4 ALIGN=RIGHT VALIGN=TOP><B>CC:</B></TD>
|
||||
<TD ROWSPAN=4 VALIGN=TOP> $cc_element </TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi\">Status:</A></B></TD>
|
||||
<TD>$bug{'bug_status'}</TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi#priority\">Priority:</A></B></TD>
|
||||
<TD><SELECT NAME=priority>$priority_popup</SELECT></TD>
|
||||
<TD> </TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi\">Resolution:</A></B></TD>
|
||||
<TD>$bug{'resolution'}</TD>
|
||||
<TD> </TD>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi#severity\">Severity:</A></B></TD>
|
||||
<TD><SELECT NAME=bug_severity>$sev_popup</SELECT></TD>
|
||||
<TD> </TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.cgi#assigned_to\">Assigned To:
|
||||
</A></B></TD>
|
||||
<TD>$bug{'assigned_to'}</TD>
|
||||
<TD> </TD>";
|
||||
|
||||
push(@prodlist, $product);
|
||||
if (Param("usetargetmilestone")) {
|
||||
my $url = "";
|
||||
if (defined $::milestoneurl{$bug{'product'}}) {
|
||||
$url = $::milestoneurl{$bug{'product'}};
|
||||
}
|
||||
|
||||
# The current product is part of the popup, even if new bugs are no longer
|
||||
# allowed for that product
|
||||
if (!$seen_curr_prod) {
|
||||
push (@prodlist, $bug{'product'});
|
||||
@prodlist = sort @prodlist;
|
||||
if ($url eq "") {
|
||||
$url = "notargetmilestone.html";
|
||||
}
|
||||
if ($bug{'target_milestone'} eq "") {
|
||||
$bug{'target_milestone'} = " ";
|
||||
}
|
||||
print "
|
||||
<TD ALIGN=RIGHT><A href=\"$url\"><B>Target Milestone:</B></A></TD>
|
||||
<TD><SELECT NAME=target_milestone>" .
|
||||
make_options($::target_milestone{$bug{'product'}},
|
||||
$bug{'target_milestone'}) .
|
||||
"</SELECT></TD>
|
||||
<TD> </TD>";
|
||||
} else { print "<TD></TD><TD></TD><TD> </TD>"; }
|
||||
|
||||
$vars->{'product'} = \@prodlist;
|
||||
$vars->{'rep_platform'} = \@::legal_platform;
|
||||
$vars->{'priority'} = \@::legal_priority;
|
||||
$vars->{'bug_severity'} = \@::legal_severity;
|
||||
$vars->{'op_sys'} = \@::legal_opsys;
|
||||
$vars->{'bug_status'} = \@::legal_bug_status;
|
||||
print "
|
||||
</TR>";
|
||||
|
||||
# Hack - this array contains "" for some reason. See bug 106589.
|
||||
shift @::settable_resolution;
|
||||
$vars->{'resolution'} = \@::settable_resolution;
|
||||
if (Param("useqacontact")) {
|
||||
my $name = $bug{'qa_contact'} > 0 ? DBID_to_name($bug{'qa_contact'}) : "";
|
||||
print "
|
||||
<TR>
|
||||
<TD ALIGN=\"RIGHT\"><B>QA Contact:</B>
|
||||
<TD COLSPAN=7>
|
||||
<INPUT NAME=qa_contact VALUE=\"" .
|
||||
value_quote($name) .
|
||||
"\" SIZE=60></TD>
|
||||
</TR>";
|
||||
}
|
||||
|
||||
$vars->{'component_'} = $::components{$bug{'product'}};
|
||||
$vars->{'version'} = $::versions{$bug{'product'}};
|
||||
$vars->{'target_milestone'} = $::target_milestone{$bug{'product'}};
|
||||
$bug{'milestoneurl'} = $::milestoneurl{$bug{'product'}} ||
|
||||
"notargetmilestone.html";
|
||||
|
||||
$vars->{'use_votes'} = $::prodmaxvotes{$bug{'product'}};
|
||||
print "
|
||||
<TR>
|
||||
<TD ALIGN=\"RIGHT\">$URL
|
||||
<TD COLSPAN=7>
|
||||
<INPUT NAME=bug_file_loc VALUE=\"" . value_quote($bug{'bug_file_loc'}) . "\" SIZE=60></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=\"RIGHT\"><B>Summary:</B>
|
||||
<TD COLSPAN=7>
|
||||
<INPUT NAME=short_desc VALUE=\"" .
|
||||
value_quote($bug{'short_desc'}) .
|
||||
"\" SIZE=60></TD>
|
||||
</TR>";
|
||||
|
||||
# Add additional, calculated fields to the bug hash
|
||||
if (@::legal_keywords) {
|
||||
$vars->{'use_keywords'} = 1;
|
||||
if (Param("usestatuswhiteboard")) {
|
||||
print "
|
||||
<TR>
|
||||
<TD ALIGN=\"RIGHT\"><B>Status Whiteboard:</B>
|
||||
<TD COLSPAN=7>
|
||||
<INPUT NAME=status_whiteboard VALUE=\"" .
|
||||
value_quote($bug{'status_whiteboard'}) .
|
||||
"\" SIZE=60></TD>
|
||||
</TR>";
|
||||
}
|
||||
|
||||
SendSQL("SELECT keyworddefs.name
|
||||
FROM keyworddefs, keywords
|
||||
WHERE keywords.bug_id = $id
|
||||
AND keyworddefs.id = keywords.keywordid
|
||||
ORDER BY keyworddefs.name");
|
||||
my @keywords;
|
||||
while (MoreSQLData()) {
|
||||
push(@keywords, FetchOneColumn());
|
||||
}
|
||||
|
||||
$bug{'keywords'} = \@keywords;
|
||||
}
|
||||
|
||||
# Attachments
|
||||
$bug{'attachments'} = Attachment::query($id);
|
||||
|
||||
# Dependencies
|
||||
if (@::legal_keywords) {
|
||||
SendSQL("SELECT keyworddefs.name
|
||||
FROM keyworddefs, keywords
|
||||
WHERE keywords.bug_id = $id AND keyworddefs.id = keywords.keywordid
|
||||
ORDER BY keyworddefs.name");
|
||||
my @list;
|
||||
SendSQL("SELECT dependson FROM dependencies WHERE
|
||||
blocked = $id ORDER BY dependson");
|
||||
while (MoreSQLData()) {
|
||||
my ($i) = FetchSQLData();
|
||||
push(@list, FetchOneColumn());
|
||||
}
|
||||
my $value = value_quote(join(', ', @list));
|
||||
print qq{
|
||||
<TR>
|
||||
<TD ALIGN=right><B><A HREF="describekeywords.cgi">Keywords:</A></B>
|
||||
<TD COLSPAN=7><INPUT NAME="keywords" VALUE="$value" SIZE=60></TD>
|
||||
</TR>
|
||||
};
|
||||
}
|
||||
|
||||
print "</TABLE>\n";
|
||||
|
||||
# Display attachments for this bug (if any).
|
||||
&Attachment::list($id);
|
||||
|
||||
sub EmitDependList {
|
||||
my ($desc, $myfield, $targetfield) = (@_);
|
||||
print "<th align=right>$desc:</th><td>";
|
||||
my @list;
|
||||
SendSQL("select $targetfield from dependencies where
|
||||
$myfield = $id order by $targetfield");
|
||||
while (MoreSQLData()) {
|
||||
my ($i) = (FetchSQLData());
|
||||
push(@list, $i);
|
||||
print GetBugLink($i, $i);
|
||||
print " ";
|
||||
}
|
||||
print "</td><td><input name=$targetfield value=\"" .
|
||||
join(',', @list) . "\"></td>\n";
|
||||
}
|
||||
|
||||
$bug{'dependson'} = \@list;
|
||||
if (Param("usedependencies")) {
|
||||
print "<table><tr>\n";
|
||||
EmitDependList("Bug $id depends on", "blocked", "dependson");
|
||||
print qq{
|
||||
<td rowspan=2><a href="showdependencytree.cgi?id=$id">Show dependency tree</a>
|
||||
};
|
||||
if (Param("webdotbase") ne "") {
|
||||
print qq{
|
||||
<br><a href="showdependencygraph.cgi?id=$id">Show dependency graph</a>
|
||||
};
|
||||
}
|
||||
print "</td></tr><tr>";
|
||||
EmitDependList("Bug $id blocks", "dependson", "blocked");
|
||||
print "</tr></table>\n";
|
||||
}
|
||||
|
||||
my @list2;
|
||||
SendSQL("SELECT blocked FROM dependencies WHERE
|
||||
dependson = $id ORDER BY blocked");
|
||||
if ($::prodmaxvotes{$bug{'product'}}) {
|
||||
print qq{
|
||||
<table><tr>
|
||||
<th><a href="votehelp.html">Votes:</a></th>
|
||||
<td>
|
||||
$bug{'votes'}
|
||||
<a href="showvotes.cgi?bug_id=$id">Show votes for this bug</a>
|
||||
<a href="showvotes.cgi?voteon=$id">Vote for this bug</a>
|
||||
</td>
|
||||
</tr></table>
|
||||
};
|
||||
}
|
||||
|
||||
print "
|
||||
<br>
|
||||
<B>Additional Comments:</B>
|
||||
<BR>
|
||||
<TEXTAREA WRAP=HARD NAME=comment ROWS=10 COLS=80></TEXTAREA><BR>";
|
||||
|
||||
|
||||
if ($::usergroupset ne '0' || $bug{'groupset'} ne '0') {
|
||||
SendSQL("select bit, name, description, (bit & $bug{'groupset'} != 0), " .
|
||||
"(bit & $::usergroupset != 0) from groups where isbuggroup != 0 " .
|
||||
# Include active groups as well as inactive groups to which
|
||||
# the bug already belongs. This way the bug can be removed
|
||||
# from an inactive group but can only be added to active ones.
|
||||
"and ((isactive = 1 and (bit & $::usergroupset != 0)) or " .
|
||||
"(bit & $bug{'groupset'} != 0)) " .
|
||||
"order by description");
|
||||
# We only print out a header bit for this section if there are any
|
||||
# results.
|
||||
my $groupFound = 0;
|
||||
my $inAllGroups = 1;
|
||||
while (MoreSQLData()) {
|
||||
my ($i) = FetchSQLData();
|
||||
push(@list2, $i);
|
||||
my ($bit, $name, $description, $ison, $ingroup) = (FetchSQLData());
|
||||
# For product groups, we only want to display the checkbox if either
|
||||
# (1) The bit is already set, or
|
||||
# (2) The user is in the group, but either:
|
||||
# (a) The group is a product group for the current product, or
|
||||
# (b) The group name isn't a product name
|
||||
# This measns that all product groups will be skipped, but non-product
|
||||
# bug groups will still be displayed.
|
||||
if($ison || ($ingroup && (($name eq $bug{'product'}) ||
|
||||
(!defined $::proddesc{$name})))) {
|
||||
if(!$groupFound) {
|
||||
print "<br><b>Only users in the selected groups can view this bug:</b><br>\n";
|
||||
print "<font size=\"-1\">(Unchecking all boxes makes this a public bug.)</font><br><br>\n";
|
||||
$groupFound = 1;
|
||||
}
|
||||
if(!$ingroup) {
|
||||
$inAllGroups = 0;
|
||||
}
|
||||
# Modifying this to use checkboxes instead
|
||||
my $checked = $ison ? " CHECKED" : "";
|
||||
my $disabled = $ingroup ? "" : " DISABLED=\"disabled\"";
|
||||
# indent these a bit
|
||||
print " ";
|
||||
print "<input type=checkbox name=\"bit-$bit\" value=1$checked$disabled>\n";
|
||||
print "$description<br>\n";
|
||||
}
|
||||
}
|
||||
if (!$inAllGroups) {
|
||||
print "<b>Only members of a group can change the visibility of a bug for that group</b><br>";
|
||||
}
|
||||
|
||||
$bug{'blocked'} = \@list2;
|
||||
# If the bug is restricted to a group, display checkboxes that allow
|
||||
# the user to set whether or not the reporter, assignee, QA contact,
|
||||
# and cc list can see the bug even if they are not members of all
|
||||
# groups to which the bug is restricted.
|
||||
if ( $bug{'groupset'} != 0 ) {
|
||||
# Determine whether or not the bug is always accessible by the reporter,
|
||||
# QA contact, and/or users on the cc: list.
|
||||
SendSQL("SELECT reporter_accessible , assignee_accessible ,
|
||||
qacontact_accessible , cclist_accessible
|
||||
FROM bugs
|
||||
WHERE bug_id = $id
|
||||
");
|
||||
my ($reporter_accessible, $assignee_accessible, $qacontact_accessible, $cclist_accessible) = FetchSQLData();
|
||||
|
||||
# Groups
|
||||
my @groups;
|
||||
if ($::usergroupset ne '0' || $bug{'groupset'} ne '0') {
|
||||
my $bug_groupset = $bug{'groupset'};
|
||||
|
||||
if ($::driver eq 'mysql') {
|
||||
SendSQL("select bit, name, description, (bit & $bug{'groupset'} != 0), " .
|
||||
"(bit & $::usergroupset != 0) from groups where isbuggroup != 0 " .
|
||||
# Include active groups as well as inactive groups to which
|
||||
# the bug already belongs. This way the bug can be removed
|
||||
# from an inactive group but can only be added to active ones.
|
||||
"and ((isactive = 1 or (bit & $bug{'groupset'} != 0)) or " .
|
||||
"(bit & $bug{'groupset'} != 0)) " .
|
||||
"order by description");
|
||||
} elsif ($::driver eq 'Pg') {
|
||||
SendSQL("select group_bit, name, description, (group_bit & int8($bug{'groupset'}) != 0), " .
|
||||
"(group_bit & int8($::usergroupset) != 0) from groups where isbuggroup != 0 " .
|
||||
# Include active groups as well as inactive groups to which
|
||||
# the bug already belongs. This way the bug can be removed
|
||||
# from an inactive group but can only be added to active ones.
|
||||
"and ((isactive = 1 or (group_bit & int8($bug{'groupset'}) != 0)) or " .
|
||||
"(group_bit & int8($bug{'groupset'}) != 0)) " .
|
||||
"order by description");
|
||||
}
|
||||
# Convert boolean data about which roles always have access to the bug
|
||||
# into "checked" attributes for the HTML checkboxes by which users
|
||||
# set and change these values.
|
||||
my $reporter_checked = $reporter_accessible ? " checked" : "";
|
||||
my $assignee_checked = $assignee_accessible ? " checked" : "";
|
||||
my $qacontact_checked = $qacontact_accessible ? " checked" : "";
|
||||
my $cclist_checked = $cclist_accessible ? " checked" : "";
|
||||
|
||||
$user{'inallgroups'} = 1;
|
||||
# Display interface for changing the values.
|
||||
print qq|
|
||||
<p>
|
||||
<b>But users in the roles selected below can always view this bug:</b><br>
|
||||
<small>(Does not take effect unless the bug is restricted to at least one group.)</small>
|
||||
</p>
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my ($bit, $name, $description, $ison, $ingroup) = FetchSQLData();
|
||||
# For product groups, we only want to display the checkbox if either
|
||||
# (1) The bit is already set, or
|
||||
# (2) The user is in the group, but either:
|
||||
# (a) The group is a product group for the current product, or
|
||||
# (b) The group name isn't a product name
|
||||
# This means that all product groups will be skipped, but
|
||||
# non-product bug groups will still be displayed.
|
||||
if($ison ||
|
||||
($ingroup && (($name eq $bug{'product'}) ||
|
||||
(!defined $::proddesc{$name}))))
|
||||
{
|
||||
$user{'inallgroups'} &= $ingroup;
|
||||
<p>
|
||||
<input type="checkbox" name="reporter_accessible" value="1" $reporter_checked>Reporter
|
||||
<input type="checkbox" name="assignee_accessible" value="1" $assignee_checked>Assignee
|
||||
<input type="checkbox" name="qacontact_accessible" value="1" $qacontact_checked>QA Contact
|
||||
<input type="checkbox" name="cclist_accessible" value="1" $cclist_checked>CC List
|
||||
</p>
|
||||
|;
|
||||
}
|
||||
}
|
||||
|
||||
push (@groups, { "bit" => $bit,
|
||||
"ison" => $ison,
|
||||
"ingroup" => $ingroup,
|
||||
"description" => $description });
|
||||
|
||||
|
||||
|
||||
|
||||
print "<br>
|
||||
<INPUT TYPE=radio NAME=knob VALUE=none CHECKED>
|
||||
Leave as <b>$bug{'bug_status'} $bug{'resolution'}</b><br>";
|
||||
|
||||
|
||||
# knum is which knob number we're generating, in javascript terms.
|
||||
|
||||
my $knum = 1;
|
||||
|
||||
my $status = $bug{'bug_status'};
|
||||
|
||||
# In the below, if the person hasn't logged in ($::userid == 0), then
|
||||
# we treat them as if they can do anything. That's because we don't
|
||||
# know why they haven't logged in; it may just be because they don't
|
||||
# use cookies. Display everything as if they have all the permissions
|
||||
# in the world; their permissions will get checked when they log in
|
||||
# and actually try to make the change.
|
||||
|
||||
my $canedit = UserInGroup("editbugs") || ($::userid == 0);
|
||||
my $canconfirm;
|
||||
|
||||
if ($status eq $::unconfirmedstate) {
|
||||
$canconfirm = UserInGroup("canconfirm") || ($::userid == 0);
|
||||
if ($canedit || $canconfirm) {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=confirm>";
|
||||
print "Confirm bug (change status to <b>NEW</b>)<br>";
|
||||
$knum++;
|
||||
}
|
||||
}
|
||||
|
||||
my $movers = Param("movers");
|
||||
$movers =~ s/\s?,\s?/|/g;
|
||||
$movers =~ s/@/\@/g;
|
||||
|
||||
if ($canedit || $::userid == $assignedtoid ||
|
||||
$::userid == $reporterid || $::userid == $qacontactid) {
|
||||
if (IsOpenedState($status)) {
|
||||
if ($status ne "ASSIGNED") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=accept>";
|
||||
my $extra = "";
|
||||
if ($status eq $::unconfirmedstate && ($canconfirm || $canedit)) {
|
||||
$extra = "confirm bug, ";
|
||||
}
|
||||
print "Accept bug (${extra}change status to <b>ASSIGNED</b>)<br>";
|
||||
$knum++;
|
||||
}
|
||||
if ($bug{'resolution'} ne "") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=clearresolution>\n";
|
||||
print "Clear the resolution (remove the current resolution of\n";
|
||||
print "<b>$bug{'resolution'}</b>)<br>\n";
|
||||
$knum++;
|
||||
}
|
||||
my $resolution_popup = make_options(\@::settable_normal_resolution,
|
||||
$bug{'resolution'});
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=resolve>
|
||||
Resolve bug, changing <A HREF=\"bug_status.cgi\">resolution</A> to
|
||||
<SELECT NAME=resolution
|
||||
ONCHANGE=\"document.changeform.knob\[$knum\].checked=true\">
|
||||
$resolution_popup</SELECT><br>\n";
|
||||
$knum++;
|
||||
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=duplicate>
|
||||
Resolve bug, mark it as ";
|
||||
|
||||
if (@::settable_dupe_resolution == 1) {
|
||||
print $::settable_dupe_resolution[0] . " ";
|
||||
} else {
|
||||
my $resolution_popup = make_options(\@::settable_dupe_resolution);
|
||||
print "<select name=\"dupe_resolution\" onchange=\"if (this.value != '') {document.changeform.knob\[$knum\].checked=true}\">" .
|
||||
"$resolution_popup</select>";
|
||||
}
|
||||
|
||||
# If the bug is restricted to a group, display checkboxes that allow
|
||||
# the user to set whether or not the reporter
|
||||
# and cc list can see the bug even if they are not members of all
|
||||
# groups to which the bug is restricted.
|
||||
if ($bug{'groupset'} != 0) {
|
||||
$bug{'inagroup'} = 1;
|
||||
print "of bug #
|
||||
<INPUT NAME=dup_id SIZE=6 ONCHANGE=\"if (this.value != '') {document.changeform.knob\[$knum\].checked=true}\"><br>\n";
|
||||
$knum++;
|
||||
|
||||
# Determine whether or not the bug is always accessible by the
|
||||
# reporter, QA contact, and/or users on the cc: list.
|
||||
SendSQL("SELECT reporter_accessible, cclist_accessible
|
||||
FROM bugs
|
||||
WHERE bug_id = $id
|
||||
");
|
||||
($bug{'reporter_accessible'},
|
||||
$bug{'cclist_accessible'}) = FetchSQLData();
|
||||
my $assign_element = "<INPUT NAME=\"assigned_to\" SIZE=32 ONCHANGE=\"if ((this.value != ".SqlQuote($bug{'assigned_to_email'}) .") && (this.value != '')) { document.changeform.knob\[$knum\].checked=true; }\" VALUE=\"$bug{'assigned_to_email'}\">";
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=reassign>
|
||||
<A HREF=\"bug_status.cgi#assigned_to\">Reassign</A> bug to
|
||||
$assign_element
|
||||
<br>\n";
|
||||
if ($status eq $::unconfirmedstate && ($canconfirm || $canedit)) {
|
||||
print " <INPUT TYPE=checkbox NAME=andconfirm> and confirm bug (change status to <b>NEW</b>)<BR>";
|
||||
}
|
||||
$knum++;
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=reassignbycomponent>
|
||||
Reassign bug to owner ";
|
||||
if (Param("useqacontact")) { print "and QA contact "; }
|
||||
print "of selected component<br>\n";
|
||||
if ($status eq $::unconfirmedstate && ($canconfirm || $canedit)) {
|
||||
print " <INPUT TYPE=checkbox NAME=compconfirm> and confirm bug (change status to <b>NEW</b>)<BR>";
|
||||
}
|
||||
$knum++;
|
||||
} elsif ( Param("move-enabled") && lsearch(\@::settable_moved_resolution, $bug{'resolution'}) != -1) {
|
||||
if ( (defined $::COOKIE{"Bugzilla_login"})
|
||||
&& ($::COOKIE{"Bugzilla_login"} =~ /($movers)/) ){
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=reopen> Reopen bug<br>\n";
|
||||
$knum++;
|
||||
if ($status eq "RESOLVED") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=verify>
|
||||
Mark bug as <b>VERIFIED</b><br>\n";
|
||||
$knum++;
|
||||
}
|
||||
if ($status ne "CLOSED") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=close>
|
||||
Mark bug as <b>CLOSED</b><br>\n";
|
||||
$knum++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=reopen> Reopen bug<br>\n";
|
||||
$knum++;
|
||||
if ($status eq "RESOLVED") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=verify>
|
||||
Mark bug as <b>VERIFIED</b><br>\n";
|
||||
$knum++;
|
||||
}
|
||||
if ($status ne "CLOSED") {
|
||||
print "<INPUT TYPE=radio NAME=knob VALUE=close>
|
||||
Mark bug as <b>CLOSED</b><br>\n";
|
||||
$knum++;
|
||||
}
|
||||
}
|
||||
$vars->{'groups'} = \@groups;
|
||||
|
||||
my $movers = Param("movers");
|
||||
$user{'canmove'} = Param("move-enabled")
|
||||
&& (defined $::COOKIE{"Bugzilla_login"})
|
||||
&& ($::COOKIE{"Bugzilla_login"} =~ /\Q$movers\E/);
|
||||
|
||||
# User permissions
|
||||
|
||||
# In the below, if the person hasn't logged in ($::userid == 0), then
|
||||
# we treat them as if they can do anything. That's because we don't
|
||||
# know why they haven't logged in; it may just be because they don't
|
||||
# use cookies. Display everything as if they have all the permissions
|
||||
# in the world; their permissions will get checked when they log in
|
||||
# and actually try to make the change.
|
||||
$user{'canedit'} = $::userid == 0
|
||||
|| $::userid == $bug{'reporter'}
|
||||
|| $::userid == $bug{'qa_contact'}
|
||||
|| $::userid == $bug{'assigned_to'}
|
||||
|| UserInGroup("editbugs");
|
||||
$user{'canconfirm'} = ($::userid == 0) || UserInGroup("canconfirm");
|
||||
|
||||
# Bug states
|
||||
$bug{'isunconfirmed'} = ($bug{'bug_status'} eq $::unconfirmedstate);
|
||||
$bug{'isopened'} = IsOpenedState($bug{'bug_status'});
|
||||
|
||||
# People involved with the bug
|
||||
$bug{'assigned_to_email'} = DBID_to_name($bug{'assigned_to'});
|
||||
$bug{'assigned_to'} = DBID_to_real_or_loginname($bug{'assigned_to'});
|
||||
$bug{'reporter'} = DBID_to_real_or_loginname($bug{'reporter'});
|
||||
$bug{'qa_contact'} = $bug{'qa_contact'} > 0 ?
|
||||
DBID_to_name($bug{'qa_contact'}) : "";
|
||||
|
||||
my $ccset = new RelationSet;
|
||||
$ccset->mergeFromDB("SELECT who FROM cc WHERE bug_id=$id");
|
||||
|
||||
my @cc = $ccset->toArrayOfStrings();
|
||||
$bug{'cc'} = \@cc if $cc[0];
|
||||
|
||||
# Next bug in list (if there is one)
|
||||
my @bug_list;
|
||||
if ($::COOKIE{"BUGLIST"} && $id)
|
||||
{
|
||||
@bug_list = split(/:/, $::COOKIE{"BUGLIST"});
|
||||
}
|
||||
$vars->{'bug_list'} = \@bug_list;
|
||||
|
||||
$bug{'comments'} = GetComments($bug{'bug_id'});
|
||||
|
||||
# This is length in number of comments
|
||||
$bug{'longdesclength'} = scalar(@{$bug{'comments'}});
|
||||
|
||||
# Add the bug and user hashes to the variables
|
||||
$vars->{'bug'} = \%bug;
|
||||
$vars->{'user'} = \%user;
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("bug/edit.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
}
|
||||
|
||||
print "
|
||||
<INPUT TYPE=\"submit\" VALUE=\"Commit\">
|
||||
<INPUT TYPE=\"reset\" VALUE=\"Reset\">
|
||||
<INPUT TYPE=\"hidden\" name=\"form_name\" VALUE=\"process_bug\">
|
||||
<P>
|
||||
<FONT size=\"+1\"><B>
|
||||
<A HREF=\"show_activity.cgi?id=$id\">View Bug Activity</A>
|
||||
|
|
||||
<A HREF=\"long_list.cgi?buglist=$id\">Format For Printing</A>
|
||||
</B></FONT>
|
||||
";
|
||||
|
||||
if ( Param("move-enabled") && (defined $::COOKIE{"Bugzilla_login"}) && ($::COOKIE{"Bugzilla_login"} =~ /($movers)/) ){
|
||||
print qq{ <font size="+1"><B> | </B></font>
|
||||
<input type="submit" name="action" value="} .
|
||||
Param("move-button-text") . qq{">\n};
|
||||
|
||||
if (@::settable_moved_resolution == 1) {
|
||||
print qq{<input type="hidden" name="move_resolution" value="$::settable_moved_resolution[0]">};
|
||||
}
|
||||
else {
|
||||
my $resolution_popup = make_options(\@::settable_moved_resolution);
|
||||
print qq{Resolution: <select name="move_resolution">$resolution_popup</select>};
|
||||
}
|
||||
}
|
||||
|
||||
print "<BR></FORM>";
|
||||
|
||||
print qq|
|
||||
<table><tr><td align=left><B><a name="c0" href="#c0">Description:</a></B></td>
|
||||
<td align=right width=100%>Opened: $bug{'creation_ts'}</td></tr></table>
|
||||
<HR>
|
||||
|;
|
||||
print $bug{'long_desc'};
|
||||
print "
|
||||
<HR>\n";
|
||||
|
||||
# To add back option of editing the long description, insert after the above
|
||||
# long_list.cgi line:
|
||||
# <A HREF=\"edit_desc.cgi?id=$id\">Edit Long Description</A>
|
||||
|
||||
navigation_header();
|
||||
|
||||
PutFooter();
|
||||
|
||||
1;
|
||||
|
||||
126
mozilla/webtools/bugzilla/bug_status.html → mozilla/webtools/bugzilla/bug_status.cgi
Executable file → Normal file
126
mozilla/webtools/bugzilla/bug_status.html → mozilla/webtools/bugzilla/bug_status.cgi
Executable file → Normal file
@@ -1,38 +1,43 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
#!/usr/bonsaitools/bin/perl -wT
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
#
|
||||
# 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 Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Matthew Tuck <matty@chariot.net.au>
|
||||
|
||||
<!--
|
||||
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 Netscape Communications
|
||||
Corporation. Portions created by Netscape are
|
||||
Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
use diagnostics;
|
||||
use strict;
|
||||
use lib ".";
|
||||
|
||||
Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
-->
|
||||
require "CGI.pl";
|
||||
|
||||
<head>
|
||||
<TITLE>A Bug's Life Cycle</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
# Silliness
|
||||
my $silly = $::queryable_resolution;
|
||||
|
||||
<h1 ALIGN=CENTER>A Bug's Life Cycle</h1>
|
||||
ConnectToDatabase();
|
||||
GetVersionTable();
|
||||
|
||||
The <B>status</B> and <B>resolution</B> field define and track the
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
PutHeader("A Bug's Life Cycle");
|
||||
|
||||
print qq{The <B>status</B> and <B>resolution</B> field define and track the
|
||||
life cycle of a bug.
|
||||
|
||||
<a name="status"></a>
|
||||
@@ -96,29 +101,22 @@ certain status transitions are allowed.
|
||||
</DL>
|
||||
|
||||
<TD>
|
||||
<DL>
|
||||
<DT><B>FIXED</B>
|
||||
<DD> A fix for this bug is checked into the tree and tested.
|
||||
<DT><B>INVALID</B>
|
||||
<DD> The problem described is not a bug
|
||||
<DT><B>WONTFIX</B>
|
||||
<DD> The problem described is a bug which will never be fixed.
|
||||
<DT><B>LATER</B>
|
||||
<DD> The problem described is a bug which will not be fixed in this
|
||||
version of the product.
|
||||
<DT><B>REMIND</B>
|
||||
<DD> The problem described is a bug which will probably not be fixed in this
|
||||
version of the product, but might still be.
|
||||
<DT><B>DUPLICATE</B>
|
||||
<DD> The problem is a duplicate of an existing bug. Marking a bug
|
||||
duplicate requires the bug# of the duplicating bug and will at
|
||||
least put that bug number in the description field.
|
||||
<DT><B>WORKSFORME</B>
|
||||
<DD> All attempts at reproducing this bug were futile, reading the
|
||||
code produces no clues as to why this behavior would occur. If
|
||||
more information appears later, please re-assign the bug, for
|
||||
now, file it.
|
||||
</DL>
|
||||
<DL>};
|
||||
|
||||
SendSQL("SELECT name, description FROM resolutions ORDER BY sortkey, name");
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my ($name, $description) = FetchSQLData();
|
||||
if (lsearch(\@::queryable_resolution, $name) != -1) {
|
||||
$name = html_quote($name);
|
||||
$description = html_quote($description);
|
||||
|
||||
print "<dt><b>$name</b>\n";
|
||||
print "<dd> $description\n";
|
||||
}
|
||||
}
|
||||
|
||||
print qq{</DL>
|
||||
</TABLE>
|
||||
|
||||
<H1>Other Fields</H1>
|
||||
@@ -186,21 +184,19 @@ operating systems include:
|
||||
<LI> Linux
|
||||
</UL>
|
||||
|
||||
Note that the operating system implies the platform, but not always.
|
||||
For example, Linux can run on PC and Macintosh and others.
|
||||
<p>Note that the operating system implies the platform, but not always.
|
||||
For example, Linux can run on PC and Macintosh and others.</p>
|
||||
|
||||
<h2><a name="assigned_to">Assigned To</a></h2>
|
||||
|
||||
This is the person in charge of resolving the bug. Every time this
|
||||
field changes, the status changes to <B>NEW</B> to make it easy to see
|
||||
which new bugs have appeared on a person's list.
|
||||
<p>This is the person in charge of resolving the bug. Every time this
|
||||
field changes, the status changes to <b>NEW</b> to make it easy to see
|
||||
which new bugs have appeared on a person's list.</p>
|
||||
|
||||
The default status for queries is set to NEW, ASSIGNED and REOPENED. When
|
||||
<p>The default status for queries is set to NEW, ASSIGNED and REOPENED. When
|
||||
searching for bugs that have been resolved or verified, remember to set the
|
||||
status field appropriately.
|
||||
status field appropriately.</p>
|
||||
|
||||
<hr>
|
||||
<!-- hhmts start -->
|
||||
Last modified: Sun Apr 14 12:51:23 EST 2002
|
||||
<!-- hhmts end -->
|
||||
</body> </html>
|
||||
};
|
||||
|
||||
PutFooter();
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,392 +1,281 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
||||
<title>Bug Writing Guidelines</title>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<h1>Bug Writing Guidelines</h1>
|
||||
</center>
|
||||
|
||||
<h3>Why You Should Read This</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>Simply put, the more effectively you report a bug, the more
|
||||
likely an engineer will actually fix it.</p>
|
||||
|
||||
<p>These guidelines are a general
|
||||
tutorial to teach novice and intermediate bug reporters how to compose effective bug reports. Not every sentence may precisely apply to
|
||||
your software project.</p>
|
||||
</blockquote>
|
||||
|
||||
<h3>How to Write a Useful Bug Report</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>Useful bug reports are ones that get bugs fixed. A useful bug
|
||||
report normally has two qualities:</p>
|
||||
|
||||
<ol>
|
||||
<li><b>Reproducible.</b> If an engineer can't see the bug herself to prove that it exists, she'll probably stamp your bug report "WORKSFORME" or "INVALID" and move on to the next bug. Every detail you can provide helps.<br>
|
||||
<br>
|
||||
</li>
|
||||
|
||||
<li><b>Specific.</b> The quicker the engineer can isolate the bug
|
||||
to a specific area, the more likely she'll expediently fix it.
|
||||
(If a programmer or tester has to decypher a bug, they may spend
|
||||
more time cursing the submitter than solving the problem.)
|
||||
<br>
|
||||
<br>
|
||||
[ <a href="#tips" name="Anchor">Tell Me More</a> ]
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>Let's say the application you're testing is a web browser. You
|
||||
crash at foo.com, and want to write up a bug report:</p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>BAD:</b> "My browser crashed. I think I was on www.foo.com. I play golf with Bill Gates, so you better fix this problem, or I'll report you to him. By the way, your Back icon looks like a squashed rodent. UGGGLY. And my grandmother's home page is all messed up in your browser. Thx 4 UR help."
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>GOOD:</b> "I crashed each time I went to www.foo.com, using
|
||||
the 2002-02-25 build on a Windows 2000 system. I also
|
||||
rebooted into Linux, and reproduced this problem using the 2002-02-24
|
||||
Linux build.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It again crashed each time upon drawing the Foo banner at the top
|
||||
of the page. I broke apart the page, and discovered that the
|
||||
following image link will crash the application reproducibly,
|
||||
unless you remove the "border=0" attribute:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<tt><IMG SRC="http://www.foo.com/images/topics/topicfoos.gif"
|
||||
width="34" height="44" border="0" alt="News"></tt>
|
||||
</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>How to Enter your Useful Bug Report into Bugzilla:</h3>
|
||||
|
||||
<blockquote>
|
||||
<p>Before you enter your bug, use Bugzilla's
|
||||
<a href="query.cgi">search page</a> to determine whether the defect you've discovered is a known, already-reported bug. If your bug is the 37th duplicate of a known issue, you're more likely to annoy the engineer. (Annoyed
|
||||
engineers fix fewer bugs.)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Next, be sure to reproduce your bug using a recent
|
||||
build. Engineers tend to be most interested in problems affecting
|
||||
the code base that they're actively working on. After all, the bug you're reporting
|
||||
may already be fixed.
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you've discovered a new bug using a current build, report it in
|
||||
Bugzilla:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>From your Bugzilla main page, choose
|
||||
"<a href="enter_bug.cgi">Enter a new bug</a>".</li>
|
||||
|
||||
<li>Select the product that you've found a bug in.</li>
|
||||
|
||||
<li>Enter your e-mail address, password, and press the "Login"
|
||||
button. (If you don't yet have a password, leave the password field empty,
|
||||
and press the "E-mail me a password" button instead.
|
||||
You'll quickly receive an e-mail message with your password.)</li>
|
||||
</ol>
|
||||
|
||||
<p>Now, fill out the form. Here's what it all means:</p>
|
||||
|
||||
<p><b>Where did you find the bug?</b></p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Product: In which product did you find the bug?</b><br>
|
||||
You just specified this on the last page, so you can't edit it here.</p>
|
||||
|
||||
<p><b>Version: In which product version did you find the
|
||||
bug?</b><br>
|
||||
(If applicable)</p>
|
||||
|
||||
<p><b>Component: In which component does the bug exist?</b><br>
|
||||
Bugzilla requires that you select a component to enter a bug. (Not sure which to choose?
|
||||
Click on the Component link. You'll see a description of each component, to help you make the best choice.)</p>
|
||||
|
||||
<p><b>OS: On which Operating System (OS) did you find this bug?</b>
|
||||
(e.g. Linux, Windows 2000, Mac OS 9.)<br>
|
||||
If you know the bug happens on all OSs, choose 'All'. Otherwise,
|
||||
select the OS that you found the bug on, or "Other" if your OS
|
||||
isn't listed.</p>
|
||||
</blockquote>
|
||||
|
||||
<p><b>How important is the bug?</b></p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Severity: How damaging is the bug?</b><br>
|
||||
This item defaults to 'normal'. If you're not sure what severity your bug deserves, click on the Severity link.
|
||||
You'll see a description of each severity rating. <br>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Who will be following up on the bug?</b></p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Assigned To: Which engineer should be responsible for fixing
|
||||
this bug?</b><br>
|
||||
Bugzilla will automatically assign the bug to a default engineer
|
||||
upon submitting a bug report. If you'd prefer to directly assign the bug to
|
||||
someone else, enter their e-mail address into this field. (To see the list of
|
||||
default engineers for each component, click on the Component
|
||||
link.)</p>
|
||||
|
||||
<p><b>Cc: Who else should receive e-mail updates on changes to this
|
||||
bug?</b><br>
|
||||
List the full e-mail addresses of other individuals who should
|
||||
receive an e-mail update upon every change to the bug report. You
|
||||
can enter as many e-mail addresses as you'd like, separated by spaces or commas, as long as those
|
||||
people have Bugzilla accounts.</p>
|
||||
</blockquote>
|
||||
|
||||
<p><b>What else can you tell the engineer about the bug?</b></p>
|
||||
|
||||
<blockquote>
|
||||
|
||||
<p><b>Summary:</b> <b>How would you describe the bug, in
|
||||
approximately 60 or fewer characters?</b><br>
|
||||
A good summary should <b>quickly and uniquely identify a bug
|
||||
report</b>. Otherwise, an engineer cannot meaningfully identify
|
||||
your bug by its summary, and will often fail to pay attention to
|
||||
your bug report when skimming through a 10 page bug list.<br>
|
||||
<br>
|
||||
A useful summary might be
|
||||
"<tt>PCMCIA install fails on Tosh Tecra 780DVD w/ 3c589C</tt>".
|
||||
"<tt>Software fails</tt>" or "<tt>install problem</tt>" would be
|
||||
examples of a bad summary.<br>
|
||||
<br>
|
||||
[ <a href="#summary">Tell Me More</a> ]<br>
|
||||
<br>
|
||||
<b>Description: </b><br>
|
||||
Please provide a detailed problem report in this field.
|
||||
Your bug's recipients will most likely expect the following information:</p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>Overview Description:</b> More detailed expansion of
|
||||
summary.</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
Drag-selecting any page crashes Mac builds in NSGetFactory
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Steps to Reproduce:</b> Minimized, easy-to-follow steps that will
|
||||
trigger the bug. Include any special setup steps.</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1) View any web page. (I used the default sample page,
|
||||
resource:/res/samples/test0.html)
|
||||
|
||||
2) Drag-select the page. (Specifically, while holding down
|
||||
the mouse button, drag the mouse pointer downwards from any
|
||||
point in the browser's content region to the bottom of the
|
||||
browser's content region.)
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
<b>Actual Results:</b> What the application did after performing
|
||||
the above steps.
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
The application crashed. Stack crawl appended below from MacsBug.
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Expected Results:</b> What the application should have done,
|
||||
were the bug not present.</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
The window should scroll downwards. Scrolled content should be selected.
|
||||
(Or, at least, the application should not crash.)
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Build Date & Platform:</b> Date and platform of the build
|
||||
that you first encountered the bug in.</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
Build 2002-03-15 on Mac OS 9.0
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Additional Builds and Platforms:</b> Whether or not the bug
|
||||
takes place on other platforms (or browsers, if applicable).</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
- Also Occurs On
|
||||
Mozilla (2002-03-15 build on Windows NT 4.0)
|
||||
|
||||
- Doesn't Occur On
|
||||
Mozilla (2002-03-15 build on Red Hat Linux; feature not supported)
|
||||
Internet Explorer 5.0 (shipping build on Windows NT 4.0)
|
||||
Netscape Communicator 4.5 (shipping build on Mac OS 9.0)
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Additional Information:</b> Any other debugging information.
|
||||
For crashing bugs:</p>
|
||||
|
||||
<ul>
|
||||
<li><b>Win32:</b> if you receive a Dr. Watson error, please note
|
||||
the type of the crash, and the module that the application crashed
|
||||
in. (e.g. access violation in apprunner.exe)</li>
|
||||
|
||||
<li><b>Mac OS:</b> if you're running MacsBug, please provide the
|
||||
results of a <b>how</b> and an <b>sc</b>:</li>
|
||||
</ul>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
*** MACSBUG STACK CRAWL OF CRASH (Mac OS)
|
||||
Calling chain using A6/R1 links
|
||||
Back chain ISA Caller
|
||||
00000000 PPC 0BA85E74
|
||||
03AEFD80 PPC 0B742248
|
||||
03AEFD30 PPC 0B50FDDC NSGetFactory+027FC
|
||||
PowerPC unmapped memory exception at 0B512BD0 NSGetFactory+055F0
|
||||
</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<p>You're done!<br>
|
||||
<br>
|
||||
After double-checking your entries for any possible errors, press
|
||||
the "Commit" button, and your bug report will now be in the
|
||||
Bugzilla database.<br>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<hr>
|
||||
<h3>More Information on Writing Good Bugs</h3>
|
||||
|
||||
<blockquote>
|
||||
<p><b><a name="tips"></a> 1. General Tips for a Useful Bug
|
||||
Report</b>
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
<b>Use an explicit structure, so your bug reports are easy to
|
||||
skim.</b> Bug report users often need immediate access to specific
|
||||
sections of your bug. If your Bugzilla installation supports the
|
||||
Bugzilla Helper, use it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Avoid cuteness if it costs clarity.</b> Nobody will be laughing
|
||||
at your funny bug title at 3:00 AM when they can't remember how to
|
||||
find your bug.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>One bug per report.</b> Completely different people typically
|
||||
fix, verify, and prioritize different bugs. If you mix a handful of
|
||||
bugs into a single report, the right people probably won't discover
|
||||
your bugs in a timely fashion, or at all. Certain bugs are also
|
||||
more important than others. It's impossible to prioritize a bug
|
||||
report when it contains four different issues, all of differing
|
||||
importance.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>No bug is too trivial to report.</b> Unless you're reading the
|
||||
source code, you can't see actual software bugs, like a dangling
|
||||
pointer -- you'll see their visible manifestations, such as the
|
||||
segfault when the application finally crashes. Severe software
|
||||
problems can manifest themselves in superficially trivial ways.
|
||||
File them anyway.<br>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p><b><a name="summary"></a>2. How and Why to Write Good Bug Summaries</b>
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p><b>You want to make a good first impression on the bug
|
||||
recipient.</b> Just like a New York Times headline guides readers
|
||||
towards a relevant article from dozens of choices, will your bug summary
|
||||
suggest that your bug report is worth reading from dozens or hundreds of
|
||||
choices?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Conversely, a vague bug summary like <tt>install problem</tt> forces anyone
|
||||
reviewing installation bugs to waste time opening up your bug to
|
||||
determine whether it matters.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Your bug will often be searched by its summary.</b> Just as
|
||||
you'd find web pages with Google by searching by keywords through
|
||||
intuition, so will other people locate your bugs. Descriptive bug
|
||||
summaries are naturally keyword-rich, and easier to find.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, you'll find a bug titled "<tt>Dragging icons from List View to
|
||||
gnome-terminal doesn't paste path</tt>" if you search on "List",
|
||||
"terminal", or "path". Those search keywords wouldn't have found a
|
||||
bug titled "<tt>Dragging icons
|
||||
doesn't paste</tt>".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ask yourself, "Would someone understand my bug from just this
|
||||
summary?" If so, you've written a fine summary.
|
||||
</p>
|
||||
|
||||
<p><b>Don't write titles like these:</b></p>
|
||||
|
||||
<ol>
|
||||
<li>"Can't install" - Why can't you install? What happens when you
|
||||
try to install?</li>
|
||||
<li>"Severe Performance Problems" - ...and they occur when you do
|
||||
what?</li>
|
||||
<li>"back button does not work" - Ever? At all?</li>
|
||||
</ol>
|
||||
|
||||
<p><b>Good bug titles:</b></p>
|
||||
<ol>
|
||||
<li>"1.0 upgrade installation fails if Mozilla M18 package present"
|
||||
- Explains problem and the context.</li>
|
||||
<li>"RPM 4 installer crashes if launched on Red Hat 6.2 (RPM 3)
|
||||
system" - Explains what happens, and the context.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<p>(Written and maintained by
|
||||
<a href="http://www.prometheus-music.com/eli">Eli Goldberg</a>. Claudius
|
||||
Gayle, Gervase Markham, Peter Mock, Chris Pratt, Tom Schutter and Chris Yeh also
|
||||
contributed significant changes. Constructive
|
||||
<a href="mailto:eli@prometheus-music.com">suggestions</a> welcome.)</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<META NAME="GENERATOR" Content="Symantec Visual Page 1.0">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<TITLE>Bug Writing Guidelines</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
|
||||
|
||||
<H1 ALIGN="CENTER">bug writing guidelines</H1>
|
||||
<P ALIGN="CENTER"><FONT SIZE="2"><B>(Please send feedback/update requests to </B></FONT><A
|
||||
HREF="mailto:eli@prometheus-music.com"><FONT SIZE="2"><B>Eli Goldberg</B></FONT></A><FONT
|
||||
SIZE="2"><B>)</B></FONT></P>
|
||||
<P><FONT SIZE="4"><B><BR>
|
||||
Why You Should Read This</B></FONT>
|
||||
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>Simply put, the more effectively you report a bug, the more likely an engineer
|
||||
will actually fix it. <BR>
|
||||
<A HREF="http://bugzilla.mozilla.org"><BR>
|
||||
</A>These bug writing guidelines are an attempt at a general tutorial on writing
|
||||
effective bug reports for novice bug writers; not every sentence may precisely apply
|
||||
to your software project.
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P><FONT SIZE="4"><B><BR>
|
||||
How to Write a Useful Bug Report</B></FONT>
|
||||
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>Useful bug reports are ones that get bugs fixed. A useful bug report normally
|
||||
has two qualities:
|
||||
|
||||
<OL>
|
||||
<LI><B>Reproducible.</B> If an engineer can't see it or conclusively prove that it
|
||||
exists, the engineer will probably stamp it "WORKSFORME" or "INVALID",
|
||||
and move on to the next bug. Every detail you can provide helps. <BR>
|
||||
<BR>
|
||||
|
||||
<LI><B>Specific.</B> The quicker the engineer can isolate the issue to a specific
|
||||
problem, the more likely it'll be expediently fixed.<B> </B>(If a programmer or tester
|
||||
has to decypher a bug, they spend more time cursing the submitter than fixing or
|
||||
testing the problem.)
|
||||
</OL>
|
||||
|
||||
<P>Let's say the application you're testing is a web browser. You crash at foo.com,
|
||||
and want to write up a bug report:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>BAD:</B> "My browser crashed. I think I was on foo.com. My computer uses
|
||||
Windows. I think that this is a really bad problem and you should fix it now. By
|
||||
the way, your icons really suck. Nobody will use your software if you keep those
|
||||
ugly icons. Oh, and my grandmother's home page doesn't look right, either, it's all
|
||||
messed up. Good luck."<BR>
|
||||
<BR>
|
||||
<B>GOOD: </B>"I crashed each time when I went to foo.com, using the 10.28.99
|
||||
build on a Win NT 4.0 (Service Pack 5) system. I also rebooted into Linux, and reproduced
|
||||
this problem using the 10.28.99 Linux build.<BR>
|
||||
<BR>
|
||||
It again crashed each time upon drawing the Foo banner at the top of the page. I
|
||||
broke apart the page, and discovered that the following image link will crash the
|
||||
application reproducibly, unless you remove the "border=0" attribute:<BR>
|
||||
<BR>
|
||||
<FONT SIZE="2"><TT><IMG SRC="http://foo.com/images/topics/topicfoos.gif"
|
||||
width=34 height=44 border=0 alt="News"></TT>"</FONT>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P><FONT SIZE="4"><B><BR>
|
||||
<BR>
|
||||
How to Enter your Useful Bug Report into Bugzilla</B>:</FONT>
|
||||
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>Before you enter your bug, use the Bugzilla Query Page to determine whether the
|
||||
defect you've discovered is a known bug, and has already been reported. (If your
|
||||
bug is the 37th duplicate of a known issue, you're more likely to annoy the engineer.
|
||||
Annoyed engineers fix fewer bugs.)<BR>
|
||||
<BR>
|
||||
Next, be sure that you've reproduced your bug using a recent build. (Engineers tend
|
||||
to be most interested in problems afflicting the code base that they're actively
|
||||
working on, rather than those in a code base that's hundreds of bug fixes obsolete.)<BR>
|
||||
<BR>
|
||||
If you've discovered a new bug using a current build, report it in Bugzilla:
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<OL>
|
||||
<OL>
|
||||
<LI>From your Bugzilla main page, choose "Enter a new bug".
|
||||
<LI>Select the product that you've found a bug in.
|
||||
<LI>Enter your E-mail address, Password, and press the "Login" button.
|
||||
(If you don't yet have a password, leave the password text box empty, and press the
|
||||
"E-mail me a password" button instead. You'll receive an E-mail message
|
||||
with your password shortly.)
|
||||
</OL>
|
||||
<P>Now, fill out the form. Here's what it all means:
|
||||
</OL>
|
||||
|
||||
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>Where did you find the bug?</B>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>Product: In which product did you find the bug?</B><BR>
|
||||
You just filled this out on the last page.</P>
|
||||
<P><B>Version: In which product version did you find the bug?</B><BR>
|
||||
If applicable.</P>
|
||||
<P><B>Component: In which component does the bug exist?</B><BR>
|
||||
Bugzilla requires that you select a component to enter a bug. (If they all look meaningless,
|
||||
click on the Component link, which links to descriptions of each component, to help
|
||||
you make the best choice.)</P>
|
||||
<P><B>Platform: On which hardware platform did you find this bug?</B><FONT SIZE="2"><B>
|
||||
</B>(e.g. Macintosh, SGI, Sun, PC.) </FONT><BR>
|
||||
If you know the bug happens on all hardware platforms, choose 'All'. Otherwise, select
|
||||
the platform that you found the bug on, or "Other" if your platform isn't
|
||||
listed.</P>
|
||||
<P><B>OS: On which Operating System (OS) did you find this bug?</B> <FONT SIZE="2">(e.g.
|
||||
Linux, Windows NT, Mac OS 8.5.)</FONT><BR>
|
||||
If you know the bug happens on all OSs, choose 'All'. Otherwise, select the OS that
|
||||
you found the bug on, or "Other" if your OS isn't listed.</P>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B><BR>
|
||||
How important is the bug?</B>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>Severity: How damaging is the bug?</B><BR>
|
||||
This item defaults to 'normal'. (To determine the most appropriate severity for a
|
||||
particular bug, click on the Severity link for a full explanation of each choice,
|
||||
from Critical to Enhancement.)
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B><BR>
|
||||
Who will be following up on the bug?</B>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>Assigned To: Which engineer should be responsible for fixing this bug?</B><BR>
|
||||
Bugzilla will automatically assign the bug to a default engineer upon submitting
|
||||
a bug report; the text box exists to allow you to manually assign it to a different
|
||||
engineer. (To see the list of default engineers for each component, click on the
|
||||
Component link.)</P>
|
||||
<P><B>Cc: Who else should receive e-mail updates on changes to this bug? </B><BR>
|
||||
List the full e-mail addresses of other individuals who should receive an e-mail
|
||||
update upon every change to the bug report. You can enter as many e-mail addresses
|
||||
as you'd like; e-mail addresses must be separated by commas, with no spaces between
|
||||
the addresses.
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B><BR>
|
||||
What else can you tell the engineer about the bug?</B></P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>URL: On what URL did you discover this bug?</B><BR>
|
||||
If you encountered the bug on a particular URL, please provide it (or, them) here.
|
||||
If you've isolated the bug to a specific HTML snippet, please also provide a URL
|
||||
for that, too.</P>
|
||||
|
||||
<P><B>Summary:</B> <B>How would you describe the bug, in approximately 60 or fewer
|
||||
characters?</B><BR>
|
||||
A good summary should <U>quickly and uniquely identify a bug report</U>. Otherwise,
|
||||
developers cannot meaningfully query by bug summary, and will often fail to pay attention
|
||||
to your bug report when reviewing a 10 page bug list.<BR>
|
||||
<BR>
|
||||
A summary of "PCMCIA install fails on Tosh Tecra 780DVD w/ 3c589C" is a
|
||||
useful title. "Software fails" or "install problem" would be
|
||||
examples of a bad title.</P>
|
||||
|
||||
<P><BR>
|
||||
<B>Description: What else can you tell the engineer about this bug? </B><BR>
|
||||
Please provide as detailed of a problem diagnosis in this field as possible. <BR>
|
||||
<BR>
|
||||
Where applicable, using the following bug report template will help ensure that all
|
||||
relevant information comes through:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P><B>Overview Description:</B> More detailed expansion of summary.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2">Drag-selecting any page crashes Mac builds in NSGetFactory</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Steps to Reproduce: </B>The minimal set of steps necessary to trigger the bug.
|
||||
Include any special setup steps.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2">1) View any web page. (I used the default sample page,
|
||||
resource:/res/samples/test0.html)
|
||||
2) Drag-select the page. (Specifically, while holding down the
|
||||
mouse button, drag the mouse pointer downwards from any point in
|
||||
the browser's content region to the bottom of the browser's
|
||||
content region.)</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Actual Results:</B> What the application did after performing the above steps.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2">The application crashed. Stack crawl appended below from MacsBug.</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Expected Results:</B> What the application should have done, were the bug not
|
||||
present.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2">The window should scroll downwards. Scrolled content should
|
||||
be selected. (Or, at least, the application should not crash.)</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Build Date & Platform:</B> Date and platform of the build that you first
|
||||
encountered the bug in.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2">11/2/99 build on Mac OS (Checked Viewer & Apprunner)</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Additional Builds and Platforms:</B> Whether or not the bug takes place on
|
||||
other platforms or browsers.
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<PRE><FONT SIZE="2"> - Occurs On
|
||||
Seamonkey (11/2/99 build on Windows NT 4.0)
|
||||
|
||||
- Doesn't Occur On
|
||||
Seamonkey (11/4/99 build on Red Hat Linux; feature not supported)
|
||||
Internet Explorer 5.0 (RTM build on Windows NT 4.0)
|
||||
Netscape Communicator 4.5 (RTM build on Mac OS)</FONT>
|
||||
</PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P><B>Additional Information:</B> Any other debugging information. For crashing bugs:
|
||||
|
||||
<UL>
|
||||
<LI><B>Win32:</B> if you receive a Dr. Watson error, please note the type of the
|
||||
crash, and the module that the application crashed in. (e.g. access violation in
|
||||
apprunner.exe)
|
||||
<LI><B>Mac OS:</B> if you're running MacsBug, please provide the results of a <B><TT>how</TT></B>
|
||||
and an <B><TT>sc</TT></B>.
|
||||
<LI><B>Unix: </B>please provide a minimized stack trace, which can be generated by
|
||||
typing <B><TT>gdb apprunner core</TT></B> into a shell prompt.
|
||||
</UL>
|
||||
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>
|
||||
<PRE><FONT SIZE="2">*** MACSBUG STACK CRAWL OF CRASH (Mac OS)
|
||||
|
||||
Calling chain using A6/R1 links
|
||||
Back chain ISA Caller
|
||||
00000000 PPC 0BA85E74
|
||||
03AEFD80 PPC 0B742248
|
||||
03AEFD30 PPC 0B50FDDC NSGetFactory+027FC
|
||||
PowerPC unmapped memory exception at 0B512BD0 NSGetFactory+055F0</FONT></PRE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<P>You're done! <BR>
|
||||
<BR>
|
||||
After double-checking your entries for any possible errors, press the "Commit"
|
||||
button, and your bug report will now be in the Bugzilla database.<BR>
|
||||
<I><BR>
|
||||
<BR>
|
||||
</I><FONT SIZE="2">(Thanks to Claudius Gayle, Peter Mock, Chris Pratt, Tom Schutter,
|
||||
and Chris Yeh for contributing to this document. Constructive </FONT><A HREF="mailto:eli@prometheus-music.com"><FONT
|
||||
SIZE="2">suggestions</FONT></A><FONT SIZE="2"> welcome.)</FONT>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
</BODY>
|
||||
|
||||
</HTML>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
maintainer CDATA #REQUIRED
|
||||
exporter CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT bug (bug_id, (bug_status, product, priority, version, rep_platform, assigned_to, delta_ts, component, reporter, target_milestone?, bug_severity, creation_ts, qa_contact?, op_sys, resolution?, bug_file_loc?, short_desc?, keywords*, status_whiteboard?, dependson*, blocks*, cc*, long_desc*, attachment*)?)>
|
||||
<!ELEMENT bug (bug_id, (exporter?, urlbase?, bug_status, product, priority, version, rep_platform, assigned_to, delta_ts, component, reporter, target_milestone?, bug_severity, creation_ts, qa_contact?, op_sys, resolution?, bug_file_loc?, short_desc?, keywords*, status_whiteboard?, dependson*, blocks*, cc*, long_desc*, attachment*)?)>
|
||||
<!ATTLIST bug
|
||||
error (NotFound | NotPermitted | InvalidBugId) #IMPLIED
|
||||
>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,15 +25,45 @@ use strict;
|
||||
|
||||
use lib qw(.);
|
||||
|
||||
use vars qw(
|
||||
@legal_keywords
|
||||
$buffer
|
||||
$template
|
||||
$vars
|
||||
);
|
||||
sub sillyness { # shut up "used only once" warnings
|
||||
my $zz = @::legal_keywords;
|
||||
$zz = $::buffer;
|
||||
}
|
||||
|
||||
require "CGI.pl";
|
||||
|
||||
# Use the template toolkit (http://www.template-toolkit.org/) to generate
|
||||
# the user interface (HTML pages and mail messages) using templates in the
|
||||
# "template/" subdirectory.
|
||||
use Template;
|
||||
|
||||
# Create the global template object that processes templates and specify
|
||||
# configuration parameters that apply to all templates processed in this script.
|
||||
my $template = Template->new(
|
||||
{
|
||||
# Colon-separated list of directories containing templates.
|
||||
INCLUDE_PATH => "template/custom:template/default",
|
||||
# Allow templates to be specified with relative paths.
|
||||
RELATIVE => 1,
|
||||
PRE_CHOMP => 1,
|
||||
});
|
||||
|
||||
# Define the global variables and functions that will be passed to the UI
|
||||
# template. Individual functions add their own values to this hash before
|
||||
# sending them to the templates they process.
|
||||
my $vars =
|
||||
{
|
||||
# Function for retrieving global parameters.
|
||||
'Param' => \&Param,
|
||||
|
||||
# Function for processing global parameters that contain references
|
||||
# to other global parameters.
|
||||
'PerformSubsts' => \&PerformSubsts,
|
||||
|
||||
# Function to search an array for a value
|
||||
'lsearch' => \&lsearch,
|
||||
};
|
||||
|
||||
print "Content-type: text/html\n";
|
||||
|
||||
# The master list not only says what fields are possible, but what order
|
||||
@@ -119,6 +149,7 @@ $vars->{buffer} = $::buffer;
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
print "Content-type: text/html\n\n";
|
||||
$template->process("list/change-columns.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("buglist/colchange.tmpl", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
||||
|
||||
@@ -88,11 +88,16 @@ sub collect_stats {
|
||||
push @row, FetchOneColumn();
|
||||
}
|
||||
|
||||
foreach my $resolution ('FIXED', 'INVALID', 'WONTFIX', 'LATER', 'REMIND', 'DUPLICATE', 'WORKSFORME', 'MOVED') {
|
||||
foreach my $resolution (@::queryable_resolution) {
|
||||
if( $product eq "-All-" ) {
|
||||
SendSQL("select count(resolution) from bugs where resolution='$resolution'");
|
||||
SendSQL("select count(resolution_id) from bugs, resolutions " .
|
||||
"where bugs.resolution_id = resolutions.id " .
|
||||
"and resolutions.name='$resolution'");
|
||||
} else {
|
||||
SendSQL("select count(resolution) from bugs where resolution='$resolution' and product='$product'");
|
||||
SendSQL("select count(resolution_id) from bugs, resolutions " .
|
||||
"where bugs.resolution_id = resolutions.id " .
|
||||
"and resolutions.name='$resolution' " .
|
||||
"and product='$product'");
|
||||
}
|
||||
|
||||
push @row, FetchOneColumn();
|
||||
@@ -104,7 +109,9 @@ sub collect_stats {
|
||||
#
|
||||
# Do not edit me! This file is generated.
|
||||
#
|
||||
# fields: DATE|NEW|ASSIGNED|REOPENED|UNCONFIRMED|RESOLVED|VERIFIED|CLOSED|FIXED|INVALID|WONTFIX|LATER|REMIND|DUPLICATE|WORKSFORME|MOVED
|
||||
FIN
|
||||
print DATA "# fields: DATE|NEW|ASSIGNED|REOPENED|UNCONFIRMED|RESOLVED|VERIFIED|CLOSED|" . join('|', @::queryable_resolution);
|
||||
print DATA <<FIN;
|
||||
# Product: $product
|
||||
# Created: $when
|
||||
FIN
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html><head>
|
||||
<HTML><head>
|
||||
|
||||
<!--
|
||||
The contents of this file are subject to the Mozilla Public
|
||||
@@ -22,18 +21,15 @@
|
||||
Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
-->
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>Understanding the UNCONFIRMED state, and other recent changes</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Understanding the UNCONFIRMED state, and other recent changes</h1>
|
||||
|
||||
<p>
|
||||
[This document is aimed primarily at people who have used Bugzilla
|
||||
before the UNCONFIRMED state was implemented. It might be helpful for
|
||||
newer users as well.]
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
@@ -43,67 +39,60 @@ bug is real. Very busy engineers will probably generally ignore
|
||||
UNCONFIRMED that have been assigned to them, until they have been
|
||||
confirmed in one way or another. (Engineers with more time will
|
||||
hopefully glance over their UNCONFIRMED bugs regularly.)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <a href="bug_status.html">page describing bug fields</a> has been
|
||||
|
||||
The <a href="bug_status.cgi">page describing bug fields</a> has been
|
||||
updated to include UNCONFIRMED.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
There are two basic ways that a bug can become confirmed (and enter
|
||||
the NEW) state.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li> A user with the appropriate permissions (see below for more on
|
||||
permissions) decides that the bug is a valid one, and confirms
|
||||
it. We hope to gather a small army of responsible volunteers
|
||||
to regularly go through bugs for us.</li>
|
||||
<li> The bug gathers a certain number of votes. <b>Any</b> valid Bugzilla user may vote for
|
||||
to regularly go through bugs for us.
|
||||
<li> The bug gathers a certain number of votes. <B>Any</B> valid Bugzilla user may vote for
|
||||
bugs (each user gets a certain number of bugs); any UNCONFIRMED bug which
|
||||
gets enough votes becomes automatically confirmed, and enters the NEW state.</li>
|
||||
gets enough votes becomes automatically confirmed, and enters the NEW state.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
One implication of this is that it is worth your time to search the
|
||||
bug system for duplicates of your bug to vote on them, before
|
||||
submitting your own bug. If we can spread around knowledge of this
|
||||
fact, it ought to help cut down the number of duplicate bugs in the
|
||||
system.
|
||||
</p>
|
||||
|
||||
<h2>Permissions.</h2>
|
||||
|
||||
<p>
|
||||
Users now have a certain set of permissions. To see your permissions,
|
||||
check out the
|
||||
<a href="userprefs.cgi?bank=permissions">user preferences</a> page.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
If you have the "Can confirm a bug" permission, then you will be able
|
||||
to move UNCONFIRMED bugs into the NEW state.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
If you have the "Can edit all aspects of any bug" permission, then you
|
||||
can tweak anything about any bug. If not, you may only edit those
|
||||
bugs that you have submitted, or that you have assigned to you (or
|
||||
qa-assigned to you). However, anyone may add a comment to any bug.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
Some people (initially, the initial owners and initial qa-contacts for
|
||||
components in the system) have the ability to give the above two
|
||||
permissions to other people. So, if you really feel that you ought to
|
||||
have one of these permissions, a good person to ask (via private
|
||||
email, please!) is the person who is assigned a relevant bug.
|
||||
</p>
|
||||
|
||||
<h2>Other details.</h2>
|
||||
|
||||
<p>
|
||||
An initial stab was taken to decide who would be given which of the
|
||||
above permissions. This was determined by some simple heurstics of
|
||||
who was assigned bugs, and who the default owners of bugs were, and a
|
||||
@@ -111,58 +100,54 @@ look at people who seem to have submitted several bugs that appear to
|
||||
have been interesting and valid. Inevitably, we have failed to give
|
||||
someone the permissions they deserve. Please don't take it
|
||||
personally; just bear with us as we shake out the new system.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
People with one of the two bits above can easily confirm their own
|
||||
bugs, so bugs they submit will actually start out in the NEW state.
|
||||
They can override this when submitting a bug.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
People can ACCEPT or RESOLVE a bug assigned to them, even if they
|
||||
aren't allowed to confirm it. However, the system remembers, and if
|
||||
the bug gets REOPENED or reassigned to someone else, it will revert
|
||||
back to the UNCONFIRMED state. If the bug has ever been confirmed,
|
||||
then REOPENing or reassigning will cause it to go to the NEW or
|
||||
REOPENED state.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
Note that only some products support the UNCONFIRMED state. In other
|
||||
products, all new bugs will automatically start in the NEW state.
|
||||
</p>
|
||||
|
||||
<h2>Things still to be done.</h2>
|
||||
|
||||
<p>
|
||||
There probably ought to be a way to get a bug back into the
|
||||
UNCONFIRMED state, but there isn't yet.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
If a person has submitted several bugs that get confirmed, then this
|
||||
is probably a person who understands the system well, and deserves the
|
||||
"Can confirm a bug" permission. This kind of person should be
|
||||
detected and promoted automatically.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
There should also be a way to automatically promote people to get the
|
||||
"Can edit all aspects of any bug" permission.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
The "enter a new bug" page needs to be revamped with easy ways for new
|
||||
people to educate themselves on the benefit of searching for a bug
|
||||
like the one they're about to submit and voting on it, rather than
|
||||
adding a new useless duplicate.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<p>
|
||||
<!-- hhmts start -->
|
||||
Last modified: Sun Apr 14 12:55:14 EST 2002
|
||||
Last modified: Wed Feb 16 21:04:56 2000
|
||||
<!-- hhmts end -->
|
||||
</p>
|
||||
</body> </html>
|
||||
|
||||
@@ -1,303 +0,0 @@
|
||||
#!/usr/local/bin/python
|
||||
# -*- mode: python -*-
|
||||
|
||||
"""
|
||||
jb2bz.py - a nonce script to import bugs from JitterBug to Bugzilla
|
||||
Written by Tom Emerson, tree@basistech.com
|
||||
|
||||
This script is provided in the hopes that it will be useful. No
|
||||
rights reserved. No guarantees expressed or implied. Use at your own
|
||||
risk. May be dangerous if swallowed. If it doesn't work for you, don't
|
||||
blame me. It did what I needed it to do.
|
||||
|
||||
This code requires a recent version of Andy Dustman's MySQLdb interface,
|
||||
|
||||
http://sourceforge.net/projects/mysql-python
|
||||
|
||||
Share and enjoy.
|
||||
"""
|
||||
|
||||
import rfc822, mimetools, multifile, mimetypes
|
||||
import sys, re, glob, StringIO, os, stat, time
|
||||
import MySQLdb, getopt
|
||||
|
||||
# mimetypes doesn't include everything we might encounter, yet.
|
||||
if not mimetypes.types_map.has_key('.doc'):
|
||||
mimetypes.types_map['.doc'] = 'application/msword'
|
||||
|
||||
if not mimetypes.encodings_map.has_key('.bz2'):
|
||||
mimetypes.encodings_map['.bz2'] = "bzip2"
|
||||
|
||||
bug_status='NEW'
|
||||
component="default"
|
||||
version=""
|
||||
product="" # this is required, the rest of these are defaulted as above
|
||||
|
||||
"""
|
||||
Each bug in JitterBug is stored as a text file named by the bug number.
|
||||
Additions to the bug are indicated by suffixes to this:
|
||||
|
||||
<bug>
|
||||
<bug>.followup.*
|
||||
<bug>.reply.*
|
||||
<bug>.notes
|
||||
|
||||
The dates on the files represent the respective dates they were created/added.
|
||||
|
||||
All <bug>s and <bug>.reply.*s include RFC 822 mail headers. These could include
|
||||
MIME file attachments as well that would need to be extracted.
|
||||
|
||||
There are other additions to the file names, such as
|
||||
|
||||
<bug>.notify
|
||||
|
||||
which are ignored.
|
||||
|
||||
Bugs in JitterBug are organized into directories. At Basis we used the following
|
||||
naming conventions:
|
||||
|
||||
<product>-bugs Open bugs
|
||||
<product>-requests Open Feature Requests
|
||||
<product>-resolved Bugs/Features marked fixed by engineering, but not verified
|
||||
<product>-verified Resolved defects that have been verified by QA
|
||||
|
||||
where <product> is either:
|
||||
|
||||
<product-name>
|
||||
|
||||
or
|
||||
|
||||
<product-name>-<version>
|
||||
"""
|
||||
|
||||
def process_notes_file(current, fname):
|
||||
try:
|
||||
new_note = {}
|
||||
notes = open(fname, "r")
|
||||
s = os.fstat(notes.fileno())
|
||||
|
||||
new_note['text'] = notes.read()
|
||||
new_note['timestamp'] = time.gmtime(s[stat.ST_MTIME])
|
||||
|
||||
notes.close()
|
||||
|
||||
current['notes'].append(new_note)
|
||||
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
def process_reply_file(current, fname):
|
||||
new_note = {}
|
||||
reply = open(fname, "r")
|
||||
msg = rfc822.Message(reply)
|
||||
new_note['text'] = "%s\n%s" % (msg['From'], msg.fp.read())
|
||||
new_note['timestamp'] = rfc822.parsedate_tz(msg['Date'])
|
||||
current["notes"].append(new_note)
|
||||
|
||||
def add_notes(current):
|
||||
"""Add any notes that have been recorded for the current bug."""
|
||||
process_notes_file(current, "%d.notes" % current['number'])
|
||||
|
||||
for f in glob.glob("%d.reply.*" % current['number']):
|
||||
process_reply_file(current, f)
|
||||
|
||||
for f in glob.glob("%d.followup.*" % current['number']):
|
||||
process_reply_file(current, f)
|
||||
|
||||
def maybe_add_attachment(current, file, submsg):
|
||||
"""Adds the attachment to the current record"""
|
||||
cd = submsg["Content-Disposition"]
|
||||
m = re.search(r'filename="([^"]+)"', cd)
|
||||
if m == None:
|
||||
return
|
||||
attachment_filename = m.group(1)
|
||||
if (submsg.gettype() == 'application/octet-stream'):
|
||||
# try get a more specific content-type for this attachment
|
||||
type, encoding = mimetypes.guess_type(m.group(1))
|
||||
if type == None:
|
||||
type = submsg.gettype()
|
||||
else:
|
||||
type = submsg.gettype()
|
||||
|
||||
try:
|
||||
data = StringIO.StringIO()
|
||||
mimetools.decode(file, data, submsg.getencoding())
|
||||
except:
|
||||
return
|
||||
|
||||
current['attachments'].append( ( attachment_filename, type, data.getvalue() ) )
|
||||
|
||||
def process_mime_body(current, file, submsg):
|
||||
data = StringIO.StringIO()
|
||||
mimetools.decode(file, data, submsg.getencoding())
|
||||
current['description'] = data.getvalue()
|
||||
|
||||
|
||||
|
||||
def process_text_plain(msg, current):
|
||||
print "Processing: %d" % current['number']
|
||||
current['description'] = msg.fp.read()
|
||||
|
||||
def process_multi_part(file, msg, current):
|
||||
print "Processing: %d" % current['number']
|
||||
mf = multifile.MultiFile(file)
|
||||
mf.push(msg.getparam("boundary"))
|
||||
while mf.next():
|
||||
submsg = mimetools.Message(file)
|
||||
if submsg.has_key("Content-Disposition"):
|
||||
maybe_add_attachment(current, mf, submsg)
|
||||
else:
|
||||
# This is the message body itself (always?), so process
|
||||
# accordingly
|
||||
process_mime_body(current, mf, submsg)
|
||||
|
||||
def process_jitterbug(filename):
|
||||
current = {}
|
||||
current['number'] = int(filename)
|
||||
current['notes'] = []
|
||||
current['attachments'] = []
|
||||
current['description'] = ''
|
||||
current['date-reported'] = ()
|
||||
current['short-description'] = ''
|
||||
|
||||
file = open(filename, "r")
|
||||
msg = mimetools.Message(file)
|
||||
|
||||
msgtype = msg.gettype()
|
||||
|
||||
add_notes(current)
|
||||
current['date-reported'] = rfc822.parsedate_tz(msg['Date'])
|
||||
current['short-description'] = msg['Subject']
|
||||
|
||||
if msgtype[:5] == 'text/':
|
||||
process_text_plain(msg, current)
|
||||
elif msgtype[:10] == "multipart/":
|
||||
process_multi_part(file, msg, current)
|
||||
else:
|
||||
# Huh? This should never happen.
|
||||
print "Unknown content-type: %s" % msgtype
|
||||
sys.exit(1)
|
||||
|
||||
# At this point we have processed the message: we have all of the notes and
|
||||
# attachments stored, so it's time to add things to the database.
|
||||
# The schema for JitterBug 2.14 can be found at:
|
||||
#
|
||||
# http://www.trilobyte.net/barnsons/html/dbschema.html
|
||||
#
|
||||
# The following fields need to be provided by the user:
|
||||
#
|
||||
# bug_status
|
||||
# product
|
||||
# version
|
||||
# reporter
|
||||
# component
|
||||
# resolution
|
||||
|
||||
# change this to the user_id of the Bugzilla user who is blessed with the
|
||||
# imported defects
|
||||
reporter=6
|
||||
|
||||
# the resolution will need to be set manually
|
||||
resolution=""
|
||||
|
||||
db = MySQLdb.connect(db='bugs',user='root',host='localhost')
|
||||
cursor = db.cursor()
|
||||
|
||||
cursor.execute( "INSERT INTO bugs SET " \
|
||||
"bug_id=%s," \
|
||||
"bug_severity='normal'," \
|
||||
"bug_status=%s," \
|
||||
"creation_ts=%s," \
|
||||
"short_desc=%s," \
|
||||
"product=%s," \
|
||||
"rep_platform='All'," \
|
||||
"assigned_to=%s,"
|
||||
"reporter=%s," \
|
||||
"version=%s," \
|
||||
"component=%s," \
|
||||
"resolution=%s",
|
||||
[ current['number'],
|
||||
bug_status,
|
||||
time.strftime("%Y-%m-%d %H:%M:%S", current['date-reported'][:9]),
|
||||
current['short-description'],
|
||||
product,
|
||||
reporter,
|
||||
reporter,
|
||||
version,
|
||||
component,
|
||||
resolution] )
|
||||
|
||||
# This is the initial long description associated with the bug report
|
||||
cursor.execute( "INSERT INTO longdescs VALUES (%s,%s,%s,%s)",
|
||||
[ current['number'],
|
||||
reporter,
|
||||
time.strftime("%Y-%m-%d %H:%M:%S", current['date-reported'][:9]),
|
||||
current['description'] ] )
|
||||
|
||||
# Add whatever notes are associated with this defect
|
||||
for n in current['notes']:
|
||||
cursor.execute( "INSERT INTO longdescs VALUES (%s,%s,%s,%s)",
|
||||
[current['number'],
|
||||
reporter,
|
||||
time.strftime("%Y-%m-%d %H:%M:%S", n['timestamp'][:9]),
|
||||
n['text']])
|
||||
|
||||
# add attachments associated with this defect
|
||||
for a in current['attachments']:
|
||||
cursor.execute( "INSERT INTO attachments SET " \
|
||||
"bug_id=%s, creation_ts=%s, description='', mimetype=%s," \
|
||||
"filename=%s, thedata=%s, submitter_id=%s",
|
||||
[ current['number'],
|
||||
time.strftime("%Y-%m-%d %H:%M:%S", current['date-reported'][:9]),
|
||||
a[1], a[0], a[2], reporter ])
|
||||
|
||||
cursor.close()
|
||||
db.close()
|
||||
|
||||
def usage():
|
||||
print """Usage: jb2bz.py [OPTIONS] Product
|
||||
|
||||
Where OPTIONS are one or more of the following:
|
||||
|
||||
-h This help information.
|
||||
-s STATUS One of UNCONFIRMED, NEW, ASSIGNED, REOPENED, RESOLVED, VERIFIED, CLOSED
|
||||
(default is NEW)
|
||||
-c COMPONENT The component to attach to each bug as it is important. This should be
|
||||
valid component for the Product.
|
||||
-v VERSION Version to assign to these defects.
|
||||
|
||||
Product is the Product to assign these defects to.
|
||||
|
||||
All of the JitterBugs in the current directory are imported, including replies, notes,
|
||||
attachments, and similar noise.
|
||||
"""
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def main():
|
||||
global bug_status, component, version, product
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hs:c:v:")
|
||||
|
||||
for o,a in opts:
|
||||
if o == "-s":
|
||||
if a in ('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED'):
|
||||
bug_status = a
|
||||
elif o == '-c':
|
||||
component = a
|
||||
elif o == '-v':
|
||||
version = a
|
||||
elif o == '-h':
|
||||
usage()
|
||||
|
||||
if len(args) != 1:
|
||||
sys.stderr.write("Must specify the Product.\n")
|
||||
sys.exit(1)
|
||||
|
||||
product = args[0]
|
||||
|
||||
for bug in filter(lambda x: re.match(r"\d+$", x), glob.glob("*")):
|
||||
process_jitterbug(bug)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -30,14 +30,29 @@ use strict;
|
||||
use lib qw(.);
|
||||
|
||||
require "CGI.pl";
|
||||
require "globals.pl";
|
||||
|
||||
# Shut up misguided -w warnings about "used only once":
|
||||
use vars qw(
|
||||
%FORM
|
||||
$template
|
||||
$vars
|
||||
);
|
||||
use vars %::FORM;
|
||||
|
||||
# Use the template toolkit (http://www.template-toolkit.org/)
|
||||
use Template;
|
||||
|
||||
# Create the global template object that processes templates
|
||||
my $template = Template->new(
|
||||
{
|
||||
# Colon-separated list of directories containing templates.
|
||||
INCLUDE_PATH => "template/custom:template/default",
|
||||
RELATIVE => 1,
|
||||
PRE_CHOMP => 1,
|
||||
});
|
||||
|
||||
# Define the global variables and functions that will be passed to the UI
|
||||
# template.
|
||||
my $vars =
|
||||
{
|
||||
'Param' => \&Param,
|
||||
'PerformSubsts' => \&PerformSubsts,
|
||||
};
|
||||
|
||||
ConnectToDatabase();
|
||||
|
||||
@@ -64,13 +79,12 @@ my $realname = trim($::FORM{'realname'});
|
||||
if (defined($login)) {
|
||||
# We've been asked to create an account.
|
||||
CheckEmailSyntax($login);
|
||||
trick_taint($login);
|
||||
$vars->{'login'} = $login;
|
||||
|
||||
if (!ValidateNewUser($login)) {
|
||||
if (DBname_to_id($login) != 0) {
|
||||
# Account already exists
|
||||
$template->process("account/exists.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("admin/account_exists.tmpl", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error());
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -78,11 +92,12 @@ if (defined($login)) {
|
||||
my $password = InsertNewUser($login, $realname);
|
||||
MailPassword($login, $password);
|
||||
|
||||
$template->process("account/created.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("admin/account_created.tmpl", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error());
|
||||
exit;
|
||||
}
|
||||
|
||||
# Show the standard "would you like to create an account?" form.
|
||||
$template->process("account/create.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
$template->process("admin/create_account.tmpl", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/* 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 Netscape Communications
|
||||
* Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s): Myk Melez <myk@mozilla.org>
|
||||
*/
|
||||
|
||||
/* Right align bug IDs. */
|
||||
.bz_id_column { text-align: right; }
|
||||
|
||||
/* Style bug rows according to severity. */
|
||||
.bz_blocker { color: red; font-weight: bold; }
|
||||
.bz_critical { color: red; }
|
||||
.bz_enhancement { font-style: italic; }
|
||||
|
||||
/* Style secure bugs if the installation is not using bug groups.
|
||||
* Installations that *are* using bug groups are likely to be using
|
||||
* them for almost all bugs, in which case special styling is not
|
||||
* informative and generally a nuisance.
|
||||
*/
|
||||
.bz_secure { color: black; background-color: lightgrey; }
|
||||
|
||||
/* Align columns in the "change multiple bugs" form to the right. */
|
||||
table#form tr th { text-align: right; }
|
||||
|
||||
@@ -54,7 +54,18 @@ sub WriteParams {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# If Bugzilla has been upgraded since the last time parameters were edited,
|
||||
# and some parameters have been removed in the new version of Bugzilla,
|
||||
# remove them from the parameters file.
|
||||
foreach my $item (keys %::param) {
|
||||
if (!grep($_ eq $item, @::param_list) && $item ne "version") {
|
||||
print "The <em>$item</em> parameter is no longer used in Bugzilla
|
||||
and has been removed from your parameters file.<br>";
|
||||
delete $::param{$item};
|
||||
}
|
||||
}
|
||||
mkdir("data", 0777);
|
||||
chmod 0777, "data";
|
||||
my $tmpname = "data/params.$$";
|
||||
open(FID, ">$tmpname") || die "Can't create $tmpname";
|
||||
my $v = $::param{'version'};
|
||||
@@ -65,7 +76,7 @@ sub WriteParams {
|
||||
print FID "1;\n";
|
||||
close FID;
|
||||
rename $tmpname, "data/params" || die "Can't rename $tmpname to data/params";
|
||||
ChmodDataFile('data/params', 0666);
|
||||
chmod 0666, "data/params";
|
||||
}
|
||||
|
||||
|
||||
@@ -144,6 +155,17 @@ DefParam("cookiepath",
|
||||
"t",
|
||||
"/");
|
||||
|
||||
DefParam("preferlists",
|
||||
"If this is on, Bugzilla will display most selection options as selection lists. If this is off, Bugzilla will use radio buttons and checkboxes instead.",
|
||||
"b",
|
||||
1);
|
||||
|
||||
DefParam("capitalizelists",
|
||||
"If this is on, Bugzilla will capitalize list entries, checkboxes, and radio buttons. If this is off, Bugzilla will leave these items untouched.",
|
||||
"b",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("usequip",
|
||||
"If this is on, Bugzilla displays a silly quip at the beginning of buglists, and lets users add to the list of quips.",
|
||||
"b",
|
||||
@@ -173,6 +195,27 @@ DefParam("queryagainstshadowdb",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("usedespot",
|
||||
"If this is on, then we are using the Despot system to control our database of users. Bugzilla won't ever write into the user database, it will let the Despot code maintain that. And Bugzilla will send the user over to Despot URLs if they need to change their password. Also, in that case, Bugzilla will treat the passwords stored in the database as being crypt'd, not plaintext.",
|
||||
"b",
|
||||
0);
|
||||
|
||||
DefParam("despotbaseurl",
|
||||
"The base URL for despot. Used only if <b>usedespot</b> is turned on, above.",
|
||||
"t",
|
||||
"http://cvs-mirror.mozilla.org/webtools/despot/despot.cgi",
|
||||
\&check_despotbaseurl);
|
||||
|
||||
|
||||
sub check_despotbaseurl {
|
||||
my ($url) = (@_);
|
||||
if ($url !~ /^http.*cgi$/) {
|
||||
return "must be a legal URL, that starts with http and ends with .cgi";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
# Adding in four parameters for LDAP authentication. -JMR, 7/28/00
|
||||
DefParam("useLDAP",
|
||||
"Turn this on to use an LDAP directory for user authentication ".
|
||||
@@ -203,18 +246,113 @@ DefParam("LDAPmailattribute",
|
||||
#End of LDAP parameters
|
||||
|
||||
|
||||
DefParam("headerhtml",
|
||||
"Additional HTML to add to the HEAD area of documents, eg. links to stylesheets.",
|
||||
"l",
|
||||
'');
|
||||
|
||||
DefParam("bodyhtml",
|
||||
"Additional parameters to add to the BODY tag at the beginning of documents, eg. background image/colors, link colors, etc",
|
||||
"l",
|
||||
'BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"');
|
||||
|
||||
DefParam("footerhtml",
|
||||
"HTML to add to the bottom of every page. By default it displays the blurbhtml, and %commandmenu%, a menu of useful commands. You probably really want either bannerhtml or footerhtml to include %commandmenu%.",
|
||||
"l",
|
||||
'<TABLE BORDER="0"><TR><TD BGCOLOR="#000000" VALIGN="TOP">
|
||||
<TABLE BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%" BGCOLOR="lightyellow">
|
||||
<TR><TD>
|
||||
%blurbhtml%
|
||||
<BR>
|
||||
%commandmenu%
|
||||
</TD></TR></TABLE></TD></TR></TABLE>');
|
||||
|
||||
DefParam("errorhtml",
|
||||
"This is what is printed out when a form is improperly filled out. %errormsg% is replaced by the actual error itself; %<i>anythingelse</i>% gets replaced by the definition of that parameter (as defined on this page).",
|
||||
"l",
|
||||
qq{<TABLE CELLPADDING=20><TR><TD BGCOLOR="#ff0000">
|
||||
<FONT SIZE="+2">%errormsg%</FONT></TD></TR></TABLE>
|
||||
<P>Please press <B>Back</B> and try again.<P>});
|
||||
|
||||
|
||||
|
||||
DefParam("bannerhtml",
|
||||
"The html that gets emitted at the head of every Bugzilla page.
|
||||
Anything of the form %<i>word</i>% gets replaced by the defintion of that
|
||||
word (as defined on this page).",
|
||||
"l",
|
||||
q{<TABLE BGCOLOR="#000000" WIDTH="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
|
||||
<TR><TD><A HREF="http://www.mozilla.org/"><IMG
|
||||
SRC="http://www.mozilla.org/images/mozilla-banner.gif" ALT=""
|
||||
BORDER=0 WIDTH=600 HEIGHT=58></A></TD></TR></TABLE>
|
||||
<CENTER><FONT SIZE=-1>Bugzilla version %version%
|
||||
</FONT></CENTER>});
|
||||
|
||||
DefParam("blurbhtml",
|
||||
"A blurb that appears as part of the header of every Bugzilla page. This is a place to put brief warnings, pointers to one or two related pages, etc.",
|
||||
"l",
|
||||
"This is <B>Bugzilla</B>: the Mozilla bug system. For more
|
||||
information about what Bugzilla is and what it can do, see
|
||||
<A HREF=\"http://www.mozilla.org/\">mozilla.org</A>'s
|
||||
<A HREF=\"http://www.mozilla.org/bugs/\"><B>bug pages</B></A>.");
|
||||
|
||||
|
||||
DefParam("mostfreqhtml",
|
||||
"The HTML which appears at the top of the list of most-frequently-reported bugs. Use it to explain the page, set a maintainer etc.",
|
||||
"l",
|
||||
q{
|
||||
<br><p>
|
||||
|
||||
<b>What are "most frequent bugs"?</b>
|
||||
|
||||
<blockquote>The Most Frequent Bugs page lists the known open bugs which
|
||||
are reported most frequently in recent builds of Mozilla. It is automatically
|
||||
generated from the Bugzilla database every 24 hours, by counting the number
|
||||
of direct and indirect duplicates of bugs.
|
||||
This information is provided in order to assist in minimizing
|
||||
the amount of duplicate bugs entered into Bugzilla which in turn cuts down
|
||||
on development time.
|
||||
</blockquote>
|
||||
|
||||
<b>How do I use this list?</b>
|
||||
|
||||
<ul>
|
||||
<li>Review the most frequent bugs list.</li>
|
||||
<li>If problem is listed:</li>
|
||||
|
||||
<ul>
|
||||
<li>Click on Bug # link to confirm that you have found the same bug and comment
|
||||
if you have additional information. Or move on with your testing
|
||||
of the product.</li>
|
||||
</ul>
|
||||
|
||||
<li>If problem not listed:</li>
|
||||
|
||||
<ul>
|
||||
<li>Go to the <a href="query.cgi">Bugzilla Query/Search</a>
|
||||
page to try and locate a similar bug that has already been written.</li>
|
||||
<li>If you find your bug in Bugzilla, feel free to comment with any new or
|
||||
additional data you may have.</li>
|
||||
<li>If you cannot find your problem already documented in Bugzilla, go to the
|
||||
<a href="http://www.mozilla.org/quality/help/bug-form.html">Bugzilla Helper</a> and post a new bug.</li>
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
});
|
||||
|
||||
DefParam("mostfreqthreshold",
|
||||
"The minimum number of duplicates a bug needs to show up on the <A HREF=\"duplicates.cgi\">most frequently reported bugs page</a>. If you have a large database and this page takes a long time to load, try increasing this number.",
|
||||
"t",
|
||||
"2");
|
||||
|
||||
|
||||
DefParam("mybugstemplate",
|
||||
"This is the URL to use to bring up a simple 'all of my bugs' list for a user. %userid% will get replaced with the login name of a user.",
|
||||
"t",
|
||||
"buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=%userid%&emailtype1=exact&emailassigned_to1=1&emailreporter1=1");
|
||||
"buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=%userid%&emailtype1=exact&emailassigned_to1=1&emailreporter1=1");
|
||||
|
||||
|
||||
|
||||
DefParam("shutdownhtml",
|
||||
"If this field is non-empty, then Bugzilla will be completely disabled and this text will be displayed instead of all the Bugzilla pages.",
|
||||
"l",
|
||||
@@ -330,7 +468,7 @@ You will get this message once a day until you've dealt with these bugs!
|
||||
DefParam("defaultquery",
|
||||
"This is the default query that initially comes up when you submit a bug. It's in URL parameter format, which makes it hard to read. Sorry!",
|
||||
"t",
|
||||
"bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailqa_contact2=1&order=%22Importance%22");
|
||||
"bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=%22Importance%22");
|
||||
|
||||
|
||||
DefParam("letsubmitterchoosepriority",
|
||||
@@ -401,43 +539,14 @@ DefParam("usedependencies",
|
||||
1);
|
||||
|
||||
DefParam("webdotbase",
|
||||
"It is possible to show graphs of dependent bugs. You may set this parameter to
|
||||
any of the following:
|
||||
<ul>
|
||||
<li>A complete file path to \'dot\' (part of <a
|
||||
href=\"http://www.graphviz.org\">GraphViz</a>) will generate the graphs
|
||||
locally.</li>
|
||||
<li>A URL prefix pointing to an installation of the <a
|
||||
href=\"http://www.research.att.com/~north/cgi-bin/webdot.cgi\">webdot
|
||||
package</a> will generate the graphs remotely.</li>
|
||||
<li>A blank value will disable dependency graphing.</li>
|
||||
</ul>
|
||||
The default value is a publically-accessible webdot server.",
|
||||
"This is the URL prefix that is common to all requests for webdot. The <a href=\"http://www.research.att.com/~north/cgi-bin/webdot.cgi\">webdot package</a> is a very swell thing that generates pictures of graphs. If you have an installation of bugsplat that hides behind a firewall, then to get graphs to work, you will have to install a copy of webdot behind your firewall, and change this path to match. Also, webdot has some trouble with software domain names, so you may have to play games and hack the %urlbase% part of this. If this all seems like too much trouble, you can set this paramater to be the empty string, which will cause the graphing feature to be disabled entirely.",
|
||||
"t",
|
||||
"http://www.research.att.com/~north/cgi-bin/webdot.cgi/%urlbase%",
|
||||
\&check_webdotbase);
|
||||
"http://www.research.att.com/~north/cgi-bin/webdot.cgi/%urlbase%");
|
||||
|
||||
sub check_webdotbase {
|
||||
my ($value) = (@_);
|
||||
$value = trim($value);
|
||||
if ($value eq "") {
|
||||
return "";
|
||||
}
|
||||
if($value !~ /^https?:/) {
|
||||
if(! -x $value) {
|
||||
return "The file path \"$value\" is not a valid executable. Please specify the complete file path to 'dot' if you intend to generate graphs locally.";
|
||||
}
|
||||
# Check .htaccess allows access to generated images
|
||||
if(-e "data/webdot/.htaccess") {
|
||||
open HTACCESS, "data/webdot/.htaccess";
|
||||
if(! grep(/png/,<HTACCESS>)) {
|
||||
print "Dependency graph images are not accessible.\nDelete data/webdot/.htaccess and re-run checksetup.pl to rectify.\n";
|
||||
}
|
||||
close HTACCESS;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
DefParam("entryheaderhtml",
|
||||
"This is a special header for the bug entry page. The text will be printed after the page header, before the bug entry form. It is meant to be a place to put pointers to intructions on how to enter bugs.",
|
||||
"l",
|
||||
'<A HREF="bugwritinghelp.html">Bug writing guidelines</A>');
|
||||
|
||||
DefParam("expectbigqueries",
|
||||
"If this is on, then we will tell mysql to <tt>set option SQL_BIG_TABLES=1</tt> before doing queries on bugs. This will be a little slower, but one will not get the error <tt>The table ### is full</tt> for big queries that require a big temporary table.",
|
||||
@@ -484,12 +593,6 @@ DefParam("allowbugdeletion",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("allowemailchange",
|
||||
q{Users can change their own email address through the preferences. Note that the change is validated by emailing both addresses, so switching this option on will not let users use an invalid address.},
|
||||
"b",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("allowuserdeletion",
|
||||
q{The pages to edit users can also let you delete a user. But there is no code that goes and cleans up any references to that user in other tables, so such deletions are kinda scary. So, you have to turn on this option before any such deletions will ever happen.},
|
||||
"b",
|
||||
|
||||
@@ -19,12 +19,8 @@
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Bradley Baetz <bbaetz@student.usyd.edu.au>
|
||||
|
||||
use vars qw(
|
||||
%FORM
|
||||
$userid
|
||||
);
|
||||
use vars %::FORM;
|
||||
|
||||
use diagnostics;
|
||||
use strict;
|
||||
@@ -36,93 +32,120 @@ require "CGI.pl";
|
||||
ConnectToDatabase();
|
||||
GetVersionTable();
|
||||
|
||||
if (!defined $::FORM{'product'}) {
|
||||
# Reference to a subset of %::proddesc, which the user is allowed to see
|
||||
my %products;
|
||||
quietly_check_login();
|
||||
|
||||
if (Param("usebuggroups")) {
|
||||
# OK, now only add products the user can see
|
||||
confirm_login();
|
||||
foreach my $p (@::legal_product) {
|
||||
if (!GroupExists($p) || UserInGroup($p)) {
|
||||
$products{$p} = $::proddesc{$p};
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
%products = %::proddesc;
|
||||
}
|
||||
######################################################################
|
||||
# Begin Data/Security Validation
|
||||
######################################################################
|
||||
|
||||
my $prodsize = scalar(keys %products);
|
||||
if ($prodsize == 0) {
|
||||
DisplayError("Either no products have been defined ".
|
||||
"or you have not been given access to any.\n");
|
||||
exit;
|
||||
}
|
||||
elsif ($prodsize > 1) {
|
||||
$::vars->{'proddesc'} = \%products;
|
||||
$::vars->{'target'} = "describecomponents.cgi";
|
||||
$::vars->{'title'} = "Bugzilla component description";
|
||||
$::vars->{'h2'} =
|
||||
"Please specify the product whose components you want described.";
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
$::template->process("global/choose-product.html.tmpl", $::vars)
|
||||
|| ThrowTemplateError($::template->error());
|
||||
exit;
|
||||
}
|
||||
|
||||
$::FORM{'product'} = (keys %::proddesc)[0];
|
||||
# If this installation uses bug groups to restrict access to products,
|
||||
# only show the user products that don't have their own bug group or
|
||||
# those whose bug group the user is a member of. Otherwise, if this
|
||||
# installation doesn't use bug groups, show the user all legal products.
|
||||
my @products;
|
||||
if ( Param("usebuggroups") ) {
|
||||
@products = grep( !GroupExists($_) || UserInGroup($_) , @::legal_product );
|
||||
} else {
|
||||
@products = @::legal_product;
|
||||
}
|
||||
|
||||
my $product = $::FORM{'product'};
|
||||
if ( defined $::FORM{'product'} ) {
|
||||
# Make sure the user specified a valid product name. Note that
|
||||
# if the user specifies a valid product name but is not authorized
|
||||
# to access that product, they will receive a different error message
|
||||
# which could enable people guessing product names to determine
|
||||
# whether or not certain products exist in Bugzilla, even if they
|
||||
# cannot get any other information about that product.
|
||||
grep( $::FORM{'product'} eq $_ , @::legal_product )
|
||||
|| DisplayError("The product name is invalid.")
|
||||
&& exit;
|
||||
|
||||
# Make sure the user specified a valid product name. Note that
|
||||
# if the user specifies a valid product name but is not authorized
|
||||
# to access that product, they will receive a different error message
|
||||
# which could enable people guessing product names to determine
|
||||
# whether or not certain products exist in Bugzilla, even if they
|
||||
# cannot get any other information about that product.
|
||||
grep($product eq $_ , @::legal_product)
|
||||
|| DisplayError("The product name is invalid.")
|
||||
&& exit;
|
||||
|
||||
# Make sure the user is authorized to access this product.
|
||||
if (Param("usebuggroups") && GroupExists($product) && !$::userid) {
|
||||
confirm_login();
|
||||
UserInGroup($product)
|
||||
# Make sure the user is authorized to access this product.
|
||||
if ( Param("usebuggroups") && GroupExists($::FORM{'product'}) ) {
|
||||
UserInGroup($::FORM{'product'})
|
||||
|| DisplayError("You are not authorized to access that product.")
|
||||
&& exit;
|
||||
&& exit;
|
||||
}
|
||||
}
|
||||
|
||||
######################################################################
|
||||
# End Data/Security Validation
|
||||
######################################################################
|
||||
|
||||
my @components;
|
||||
SendSQL("SELECT value, initialowner, initialqacontact, description FROM " .
|
||||
"components WHERE program = " . SqlQuote($product) . " ORDER BY " .
|
||||
"value");
|
||||
while (MoreSQLData()) {
|
||||
my ($name, $initialowner, $initialqacontact, $description) =
|
||||
FetchSQLData();
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
my %component;
|
||||
my $product = $::FORM{'product'};
|
||||
if (!defined $product || lsearch(\@products, $product) < 0) {
|
||||
|
||||
$component{'name'} = $name;
|
||||
$component{'initialowner'} = $initialowner ?
|
||||
DBID_to_name($initialowner) : '';
|
||||
$component{'initialqacontact'} = $initialqacontact ?
|
||||
DBID_to_name($initialqacontact) : '';
|
||||
$component{'description'} = $description;
|
||||
|
||||
push @components, \%component;
|
||||
PutHeader("Bugzilla component description");
|
||||
print "
|
||||
<FORM>
|
||||
Please specify the product whose components you want described.
|
||||
<P>
|
||||
Product: <SELECT NAME=product>
|
||||
";
|
||||
print make_options(\@products);
|
||||
print "
|
||||
</SELECT>
|
||||
<P>
|
||||
<INPUT TYPE=\"submit\" VALUE=\"Submit\">
|
||||
</FORM>
|
||||
";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
$::vars->{'product'} = $product;
|
||||
$::vars->{'components'} = \@components;
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
$::template->process("reports/components.html.tmpl", $::vars)
|
||||
|| ThrowTemplateError($::template->error());
|
||||
PutHeader("Bugzilla component description", "Bugzilla component description",
|
||||
$product);
|
||||
|
||||
print "
|
||||
<TABLE>
|
||||
<tr>
|
||||
<th align=left>Component</th>
|
||||
<th align=left>Default owner</th>
|
||||
";
|
||||
|
||||
my $emailsuffix = Param("emailsuffix");
|
||||
my $useqacontact = Param("useqacontact");
|
||||
|
||||
my $cols = 2;
|
||||
if ($useqacontact) {
|
||||
print "<th align=left>Default qa contact</th>";
|
||||
$cols++;
|
||||
}
|
||||
|
||||
my $colbut1 = $cols - 1;
|
||||
|
||||
print "</tr>";
|
||||
|
||||
SendSQL("select value, initialowner, initialqacontact, description from components where program = " . SqlQuote($product) . " order by value");
|
||||
|
||||
my @data;
|
||||
while (MoreSQLData()) {
|
||||
push @data, [FetchSQLData()];
|
||||
}
|
||||
foreach (@data) {
|
||||
my ($component, $initialownerid, $initialqacontactid, $description) = @$_;
|
||||
|
||||
my ($initialowner, $initialqacontact) = ($initialownerid ? DBID_to_name ($initialownerid) : '',
|
||||
$initialqacontactid ? DBID_to_name ($initialqacontactid) : '');
|
||||
|
||||
print qq|
|
||||
<tr><td colspan=$cols><hr></td></tr>
|
||||
<tr><td rowspan=2><a name="|
|
||||
.value_quote($component).
|
||||
qq|">$component</a></td>
|
||||
<td><a href="mailto:$initialowner$emailsuffix">$initialowner</a></td>
|
||||
|;
|
||||
if ($useqacontact) {
|
||||
print qq|
|
||||
<td><a href="mailto:$initialqacontact$emailsuffix">$initialqacontact</a></td>
|
||||
|;
|
||||
}
|
||||
print "</tr><tr><td colspan=$colbut1>$description</td></tr>\n";
|
||||
}
|
||||
|
||||
print "<tr><td colspan=$cols><hr></td></tr></table>\n";
|
||||
|
||||
PutFooter();
|
||||
|
||||
@@ -19,40 +19,74 @@
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Contributor(s): Gervase Markham <gerv@gerv.net>
|
||||
|
||||
use diagnostics;
|
||||
use strict;
|
||||
use lib ".";
|
||||
|
||||
use lib qw(.);
|
||||
|
||||
require "CGI.pl";
|
||||
|
||||
# Use the global template variables.
|
||||
use vars qw($vars $template);
|
||||
|
||||
ConnectToDatabase();
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
PutHeader("Bugzilla keyword description");
|
||||
|
||||
my $tableheader = qq{
|
||||
<TABLE BORDER=1 CELLPADDING=4 CELLSPACING=0>
|
||||
<TR BGCOLOR="#6666FF">
|
||||
<TH ALIGN="left">Name</TH>
|
||||
<TH ALIGN="left">Description</TH>
|
||||
<TH ALIGN="left">Bugs</TH>
|
||||
</TR>
|
||||
};
|
||||
|
||||
print $tableheader;
|
||||
my $line_count = 0;
|
||||
my $max_table_size = 50;
|
||||
|
||||
SendSQL("SELECT keyworddefs.name, keyworddefs.description,
|
||||
COUNT(keywords.bug_id), keywords.bug_id
|
||||
FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id=keywords.keywordid
|
||||
GROUP BY keyworddefs.id
|
||||
ORDER BY keyworddefs.name");
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my ($name, $description, $bugs, $onebug) = FetchSQLData();
|
||||
if ($bugs && $onebug) {
|
||||
# This 'onebug' stuff is silly hackery for old versions of
|
||||
# MySQL that seem to return a count() of 1 even if there are
|
||||
# no matching. So, we ask for an actual bug number. If it
|
||||
# can't find any bugs that match the keyword, then we set the
|
||||
# count to be zero, ignoring what it had responded.
|
||||
my $q = url_quote($name);
|
||||
$bugs = qq{<A HREF="buglist.cgi?keywords=$q">$bugs</A>};
|
||||
} else {
|
||||
$bugs = "none";
|
||||
}
|
||||
if ($line_count == $max_table_size) {
|
||||
print "</table>\n$tableheader";
|
||||
$line_count = 0;
|
||||
}
|
||||
$line_count++;
|
||||
print qq{
|
||||
<TR>
|
||||
<TH><a name="}
|
||||
.value_quote($name).
|
||||
qq{">$name</A></TH>
|
||||
<TD>$description</TD>
|
||||
<TD ALIGN="right">$bugs</TD>
|
||||
</TR>
|
||||
};
|
||||
}
|
||||
|
||||
print "</TABLE><P>\n";
|
||||
|
||||
quietly_check_login();
|
||||
|
||||
SendSQL("SELECT keyworddefs.name, keyworddefs.description,
|
||||
COUNT(keywords.bug_id)
|
||||
FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id=keywords.keywordid
|
||||
GROUP BY keyworddefs.id, keyworddefs.name, keyworddefs.description, keywords.bug_id
|
||||
ORDER BY keyworddefs.name");
|
||||
|
||||
my @keywords;
|
||||
|
||||
while (MoreSQLData()) {
|
||||
my ($name, $description, $bugs) = FetchSQLData();
|
||||
|
||||
push (@keywords, { name => $name,
|
||||
description => $description,
|
||||
bugcount => $bugs });
|
||||
if (UserInGroup("editkeywords")) {
|
||||
print "<p><a href=editkeywords.cgi>Edit keywords</a><p>\n";
|
||||
}
|
||||
|
||||
$vars->{'keywords'} = \@keywords;
|
||||
$vars->{'caneditkeywords'} = UserInGroup("editkeywords");
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
$template->process("reports/keywords.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
PutFooter();
|
||||
|
||||
@@ -62,19 +62,19 @@ rpms:
|
||||
|
||||
openjade
|
||||
jadetex
|
||||
docbook-dtds
|
||||
docbook-dtd41-sgml
|
||||
docbook-style-dsssl
|
||||
docbook-dtd31-sgml
|
||||
docbook-style-dsssl-doc
|
||||
docbook-utils
|
||||
xemacs
|
||||
psgml
|
||||
sgml-tools
|
||||
sgml-common
|
||||
|
||||
Set up environment:
|
||||
|
||||
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.
|
||||
in your .bashrc add this line (after installing above RPMS):
|
||||
export SGML_CATALOG_FILES=/etc/sgml/catalog
|
||||
|
||||
Download "ldp.dsl" from the Resources page on linuxdoc.org. This is the
|
||||
stylesheet I use to get the HTML and text output. It works well, and has a
|
||||
@@ -83,67 +83,59 @@ 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
|
||||
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets-1.62/html/docbook.dsl" CDATA
|
||||
dsssl>
|
||||
...and...
|
||||
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets/print/docbook.dsl" CDATA
|
||||
<!ENTITY docbook.dsl SYSTEM "../dsssl-stylesheets-1.62/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.
|
||||
|
||||
You know, this sure looks awful involved. Anyway, once you have this in
|
||||
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 SGML/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.
|
||||
thing just works, and generally includes PSGML mode by default. You can
|
||||
download psgml at http://www.sourceforge.net/projects/psgml.
|
||||
|
||||
==========
|
||||
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.
|
||||
You MUST have DocBook 4.1 set up correctly in order for this to work.
|
||||
Substitute your own path to "ldp.dsl" for "$LDP_HOME". Additionally,
|
||||
there is now a dependency on "xml.dcl" since we converted the Guide
|
||||
to XML. Note that below, it is hard-coded to
|
||||
/usr/share/doc/openjade-1.3/pubtext/xml.dcl. Modify it to point to
|
||||
openjade's xml.dcl on your system.
|
||||
|
||||
|
||||
To create HTML documentation:
|
||||
bash$ cd html
|
||||
bash$ jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
|
||||
$JADE_PUB/xml.dcl ../sgml/Bugzilla-Guide.sgml
|
||||
bash$ jade -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
|
||||
/usr/share/doc/openjade-1.3/pubtext/xml.dcl ../sgml/Bugzilla-Guide.sgml
|
||||
|
||||
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 ../sgml/Bugzilla-Guide.sgml >Bugzilla-Guide.html
|
||||
bash$ jade -V nochunks -t sgml -i html -d $LDP_HOME/ldp.dsl\#html \
|
||||
/usr/share/doc/openjade-1.3/pubtext/xml.dcl ../sgml/Bugzilla-Guide.sgml
|
||||
|
||||
To create TXT documentation as a single big TXT file:
|
||||
bash$ cd txt
|
||||
bash$ lynx -dump -nolist ../html/Bugzilla-Guide.html >Bugzilla-Guide.txt
|
||||
|
||||
|
||||
## Change for XML
|
||||
There's a small change in how you use Jade now that we've converted the
|
||||
Bugzilla Guide to XML from SGML. Now call Jade this way to compile HTML
|
||||
documentation:
|
||||
|
||||
(I need to remove the hard-coded path to xml.dcl for openjade)
|
||||
|
||||
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.
|
||||
barnboy@trilobyte.net
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
>About This Guide</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="aboutthisguide.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="about">Chapter 1. About This Guide</H1
|
||||
NAME="about"
|
||||
>Chapter 1. About This Guide</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -104,11 +103,21 @@ HREF="credits.html"
|
||||
></DT
|
||||
><DT
|
||||
>1.6. <A
|
||||
HREF="contributors.html"
|
||||
>Contributors</A
|
||||
></DT
|
||||
><DT
|
||||
>1.7. <A
|
||||
HREF="feedback.html"
|
||||
>Feedback</A
|
||||
></DT
|
||||
><DT
|
||||
>1.8. <A
|
||||
HREF="translations.html"
|
||||
>Translations</A
|
||||
></DT
|
||||
><DT
|
||||
>1.7. <A
|
||||
>1.9. <A
|
||||
HREF="conventions.html"
|
||||
>Document Conventions</A
|
||||
></DT
|
||||
@@ -120,7 +129,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -132,7 +140,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -141,7 +148,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -150,7 +156,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="aboutthisguide.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Purpose and Scope of this Guide</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,16 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="aboutthisguide">1.1. Purpose and Scope of this Guide</H1
|
||||
NAME="aboutthisguide"
|
||||
>1.1. Purpose and Scope of this Guide</A
|
||||
></H1
|
||||
><P
|
||||
> This document was started on September 17, 2000 by Matthew P.
|
||||
Barnson after a great deal of procrastination updating the
|
||||
Bugzilla FAQ, which I left untouched for nearly half a year.
|
||||
After numerous complete rewrites and reformatting, it is the
|
||||
document you see today.
|
||||
</P
|
||||
><P
|
||||
> Bugzilla is simply the best piece of bug-tracking software the
|
||||
world has ever seen. This document is intended to be the
|
||||
@@ -83,7 +89,7 @@ NAME="aboutthisguide">1.1. Purpose and Scope of this Guide</H1
|
||||
><P
|
||||
> This release of the Bugzilla Guide is the
|
||||
<EM
|
||||
>2.16</EM
|
||||
>2.14</EM
|
||||
> release. It is so named that it
|
||||
may match the current version of Bugzilla. The numbering
|
||||
tradition stems from that used for many free software projects,
|
||||
@@ -105,24 +111,37 @@ NAME="aboutthisguide">1.1. Purpose and Scope of this Guide</H1
|
||||
> Newer revisions of the Bugzilla Guide follow the numbering
|
||||
conventions of the main-tree Bugzilla releases, available at
|
||||
<A
|
||||
HREF="http://www.bugzilla.org/"
|
||||
HREF="http://www.mozilla.org/projects/bugzilla"
|
||||
TARGET="_top"
|
||||
>http://www.bugzilla.org/</A
|
||||
>http://www.mozilla.org/projects/bugzilla</A
|
||||
>. Intermediate releases will have
|
||||
a minor revision number following a period. The current version
|
||||
of Bugzilla, as of this writing (April 2nd, 2002) is 2.16; if
|
||||
of Bugzilla, as of this writing (August 10, 2001) is 2.14; if
|
||||
something were seriously wrong with that edition of the Guide,
|
||||
subsequent releases would receive an additional dotted-decimal
|
||||
digit to indicate the update (2.16.1, 2.16.2, etc.).
|
||||
digit to indicate the update (2.14.1, 2.14.2, etc.).
|
||||
Got it? Good.
|
||||
</P
|
||||
><P
|
||||
> I wrote this in response to the enormous demand for decent
|
||||
Bugzilla documentation. I have incorporated instructions from
|
||||
the Bugzilla README, Frequently Asked Questions, Database Schema
|
||||
Document, and various mailing lists to create it. Chances are,
|
||||
there are glaring errors in this documentation; please contact
|
||||
<TT
|
||||
CLASS="email"
|
||||
><<A
|
||||
HREF="mailto:barnboy@trilobyte.net"
|
||||
>barnboy@trilobyte.net</A
|
||||
>></TT
|
||||
> to correct them.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -134,7 +153,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -143,7 +161,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -152,7 +169,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -168,7 +184,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Administering Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="postinstall-check.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="administration">Chapter 4. Administering Bugzilla</H1
|
||||
NAME="administration"
|
||||
>Chapter 4. Administering Bugzilla</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -99,6 +98,30 @@ HREF="useradmin.html#defaultuser"
|
||||
HREF="useradmin.html#manageusers"
|
||||
>Managing Other Users</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.2.2.1. <A
|
||||
HREF="useradmin.html#login"
|
||||
>Logging In</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.2. <A
|
||||
HREF="useradmin.html#createnewusers"
|
||||
>Creating new users</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.3. <A
|
||||
HREF="useradmin.html#disableusers"
|
||||
>Disabling Users</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.4. <A
|
||||
HREF="useradmin.html#modifyusers"
|
||||
>Modifying Users</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
@@ -175,7 +198,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -187,7 +209,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -196,7 +217,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -205,7 +225,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="postinstall-check.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Bonsai</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="bonsai">5.1. Bonsai</H1
|
||||
NAME="bonsai"
|
||||
>5.1. Bonsai</A
|
||||
></H1
|
||||
><P
|
||||
>Bonsai is a web-based tool for managing <A
|
||||
HREF="cvs.html"
|
||||
@@ -98,7 +97,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -110,7 +108,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -119,7 +116,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -128,7 +124,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -144,7 +139,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>BSD Installation Notes</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="osx.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="bsdinstall">3.4. BSD Installation Notes</H1
|
||||
NAME="bsdinstall"
|
||||
>3.4. BSD Installation Notes</A
|
||||
></H1
|
||||
><P
|
||||
> For instructions on how to set up Bugzilla on FreeBSD, NetBSD, OpenBSD, BSDi, etc. please
|
||||
consult <A
|
||||
@@ -87,7 +86,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -99,7 +97,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="osx.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -108,7 +105,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -117,7 +113,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -133,7 +128,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Hacking Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="quicksearch.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="bzhacking">D.5. Hacking Bugzilla</H1
|
||||
NAME="bzhacking"
|
||||
>D.5. Hacking Bugzilla</A
|
||||
></H1
|
||||
><P
|
||||
> The following is a guide for reviewers when checking code into Bugzilla's
|
||||
CVS repostory at mozilla.org. If you wish to submit patches to Bugzilla,
|
||||
@@ -86,7 +85,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN2436">D.5.1. Things that have caused problems and should be avoided</H2
|
||||
NAME="AEN2504"
|
||||
>D.5.1. Things that have caused problems and should be avoided</A
|
||||
></H2
|
||||
><P
|
||||
></P
|
||||
><OL
|
||||
@@ -180,7 +181,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN2450">D.5.2. Coding Style for Bugzilla</H2
|
||||
NAME="AEN2518"
|
||||
>D.5.2. Coding Style for Bugzilla</A
|
||||
></H2
|
||||
><P
|
||||
> While it's true that not all of the code currently in Bugzilla adheres to
|
||||
this (or any) styleguide, it is something that is being worked toward. Therefore,
|
||||
@@ -214,7 +217,7 @@ CLASS="command"
|
||||
> Whitespace
|
||||
</P
|
||||
><P
|
||||
> Bugzilla's preferred indentation is 4 spaces (no tabs, please).
|
||||
> Bugzilla's prefered indentation is 4 spaces (no tabs, please).
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
@@ -430,7 +433,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -442,7 +444,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="quicksearch.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -451,7 +452,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -460,7 +460,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -476,7 +475,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Command-line Bugzilla Queries</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="setperl.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="quicksearch.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="cmdline">D.3. Command-line Bugzilla Queries</H1
|
||||
NAME="cmdline"
|
||||
>D.3. Command-line Bugzilla Queries</A
|
||||
></H1
|
||||
><P
|
||||
> Users can query Bugzilla from the command line using this suite
|
||||
of utilities.
|
||||
@@ -207,7 +206,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -219,7 +217,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="setperl.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -228,7 +225,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -237,7 +233,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="quicksearch.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -253,7 +248,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Contributors</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="feedback.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="contributors">1.6. Contributors</H1
|
||||
NAME="contributors"
|
||||
>1.6. Contributors</A
|
||||
></H1
|
||||
><P
|
||||
> Thanks go to these people for significant contributions to this
|
||||
documentation (in no particular order):
|
||||
@@ -88,7 +87,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -100,7 +98,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -109,7 +106,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -118,7 +114,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="feedback.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -134,7 +129,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Document Conventions</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,14 +70,18 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="conventions">1.7. Document Conventions</H1
|
||||
NAME="conventions"
|
||||
>1.9. Document Conventions</A
|
||||
></H1
|
||||
><P
|
||||
> This document uses the following conventions
|
||||
</P
|
||||
><DIV
|
||||
CLASS="informaltable"
|
||||
><A
|
||||
NAME="AEN91"><P
|
||||
NAME="AEN129"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
@@ -127,7 +128,7 @@ ALT="Caution"></TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Don't run with scissors!</P
|
||||
>Warnings.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
@@ -163,7 +164,7 @@ ALT="Tip"></TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Warm jar lids under the hot tap to loosen them.</P
|
||||
>Hint.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
@@ -199,7 +200,7 @@ ALT="Note"></TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Dear John...</P
|
||||
>Note.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
@@ -235,7 +236,7 @@ ALT="Warning"></TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Read this or the cat gets it.</P
|
||||
>Warning.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
@@ -400,7 +401,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -412,7 +412,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -421,7 +420,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -430,7 +428,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -446,7 +443,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Copyright Information</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="aboutthisguide.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="disclaimer.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,9 +70,13 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="copyright">1.2. Copyright Information</H1
|
||||
NAME="copyright"
|
||||
>1.2. Copyright Information</A
|
||||
></H1
|
||||
><A
|
||||
NAME="AEN39"><TABLE
|
||||
NAME="AEN70"
|
||||
></A
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
CELLSPACING="0"
|
||||
@@ -96,7 +97,7 @@ VALIGN="TOP"
|
||||
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 the section entitled "GNU Free
|
||||
Documentation License".
|
||||
Documentation LIcense".
|
||||
</P
|
||||
></TD
|
||||
><TD
|
||||
@@ -111,7 +112,7 @@ ALIGN="RIGHT"
|
||||
VALIGN="TOP"
|
||||
>--<SPAN
|
||||
CLASS="attribution"
|
||||
>Copyright (c) 2000-2002 Matthew P. Barnson and The Bugzilla Team</SPAN
|
||||
>Copyright (c) 2000-2001 Matthew P. Barnson</SPAN
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
@@ -121,7 +122,7 @@ WIDTH="10%"
|
||||
><P
|
||||
> If you have any questions regarding this document, its
|
||||
copyright, or publishing this document in non-electronic form,
|
||||
please contact The Bugzilla Team.
|
||||
please contact Matthew P. Barnson.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
@@ -129,7 +130,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -141,7 +141,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="aboutthisguide.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -150,7 +149,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -159,7 +157,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="disclaimer.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -175,7 +172,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Credits</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -16,8 +16,8 @@ REL="PREVIOUS"
|
||||
TITLE="New Versions"
|
||||
HREF="newversions.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Translations"
|
||||
HREF="translations.html"></HEAD
|
||||
TITLE="Contributors"
|
||||
HREF="contributors.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="newversions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -59,8 +57,7 @@ WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="N"
|
||||
HREF="contributors.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="credits">1.5. Credits</H1
|
||||
NAME="credits"
|
||||
>1.5. Credits</A
|
||||
></H1
|
||||
><P
|
||||
> The people listed below have made enormous contributions to the
|
||||
creation of this Guide, through their dedicated hacking efforts,
|
||||
@@ -82,14 +81,6 @@ NAME="credits">1.5. Credits</H1
|
||||
</P
|
||||
><P
|
||||
> <A
|
||||
HREF="mailto://mbarnson@sisna.com"
|
||||
TARGET="_top"
|
||||
>Matthew P. Barnson</A
|
||||
>
|
||||
for pulling together the Bugzilla Guide and shepherding it to 2.14.
|
||||
</P
|
||||
><P
|
||||
> <A
|
||||
HREF="mailto://terry@mozilla.org"
|
||||
TARGET="_top"
|
||||
>Terry Weissman</A
|
||||
@@ -132,21 +123,12 @@ TARGET="_top"
|
||||
> netscape.public.mozilla.webtools</A
|
||||
> newsgroup. Without your discussions, insight, suggestions, and patches, this could never have happened.
|
||||
</P
|
||||
><P
|
||||
> Thanks also go to the following people for significant contributions
|
||||
to this documentation (in no particular order):
|
||||
</P
|
||||
><P
|
||||
> Zach Liption, Andrew Pearson, Spencer Smith, Eric Hanson, Kevin Brannen,
|
||||
Ron Teitelbaum, Jacob Steenhagen, Joe Robins.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -158,7 +140,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="newversions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -167,7 +148,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -175,8 +155,7 @@ WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="N"
|
||||
HREF="contributors.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -192,14 +171,13 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Translations</TD
|
||||
>Contributors</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
|
||||
@@ -1,306 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Template Customisation</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Administering Bugzilla"
|
||||
HREF="administration.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Bugzilla Security"
|
||||
HREF="security.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Integrating Bugzilla with Third-Party Tools"
|
||||
HREF="integration.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 5. Administering Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="cust-templates">5.7. Template Customisation</H1
|
||||
><P
|
||||
> One of the large changes for 2.16 was the templatisation of the
|
||||
entire user-facing UI, using the
|
||||
<A
|
||||
HREF="http://www.template-toolkit.org"
|
||||
TARGET="_top"
|
||||
>Template Toolkit</A
|
||||
>.
|
||||
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.
|
||||
</P
|
||||
><P
|
||||
> Templatisation also makes localised versions of Bugzilla possible,
|
||||
for the first time. In the future, a Bugzilla installation may
|
||||
have templates installed for multiple localisations, and select
|
||||
which ones to use based on the user's browser language setting.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN1611">5.7.1. What to Edit</H2
|
||||
><P
|
||||
> There are several ways to take advantage of Bugzilla's templates,
|
||||
and which you use depends on what you want to do. The Bugzilla
|
||||
template directory structure is that there's a top level directory,
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>template</TT
|
||||
>, which contains a directory for
|
||||
each installed localisation. The default English templates are
|
||||
therefore in <TT
|
||||
CLASS="filename"
|
||||
>en</TT
|
||||
>. Underneath that, there
|
||||
are two directories - <TT
|
||||
CLASS="filename"
|
||||
>default</TT
|
||||
> and
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>custom</TT
|
||||
>. The <TT
|
||||
CLASS="filename"
|
||||
>default</TT
|
||||
>
|
||||
directory contains all the templates shipped with Bugzilla.
|
||||
</P
|
||||
><P
|
||||
> One method of making customisations is to directly edit the templates
|
||||
in <TT
|
||||
CLASS="filename"
|
||||
>template/en/default</TT
|
||||
>. This is probably the
|
||||
best method for small changes, because if you then execute a
|
||||
<B
|
||||
CLASS="command"
|
||||
>cvs update</B
|
||||
>, any template fixes will get
|
||||
automagically merged into your modified versions.
|
||||
</P
|
||||
><P
|
||||
> The other method is to copy the templates into
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>template/en/custom</TT
|
||||
>. This method is better if
|
||||
you 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.
|
||||
</P
|
||||
><P
|
||||
> 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
|
||||
<A
|
||||
HREF="http://www.template-toolkit.org"
|
||||
TARGET="_top"
|
||||
>Template Toolkit home
|
||||
page </A
|
||||
>.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN1626">5.7.2. Particular Templates</H2
|
||||
><P
|
||||
> There are a few templates you may be particularly interested in
|
||||
customising for your installation.
|
||||
</P
|
||||
><P
|
||||
> <B
|
||||
CLASS="command"
|
||||
>global/header.html.tmpl</B
|
||||
> and
|
||||
<B
|
||||
CLASS="command"
|
||||
>global/footer.html.tmpl</B
|
||||
>:
|
||||
These define the header and footer that go on all Bugzilla pages.
|
||||
Editing these is a way to quickly get a distinctive look and
|
||||
feel for your Bugzilla installation.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN1632">5.7.3. Template Formats</H2
|
||||
><P
|
||||
> 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 <TT
|
||||
CLASS="filename"
|
||||
>&format=simple</TT
|
||||
> to a buglist.cgi
|
||||
URL on your Bugzilla installation.) This
|
||||
mechanism, called template 'formats', is extensible.
|
||||
</P
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
><P
|
||||
> Write your template in whatever markup or text style is appropriate.
|
||||
</P
|
||||
><P
|
||||
> You now need to decide what content type you want your template
|
||||
served as. Open up the localconfig file and find the $contenttypes
|
||||
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.
|
||||
</P
|
||||
><P
|
||||
> Save the template as <TT
|
||||
CLASS="filename"
|
||||
><stubname>-<formatname>.<contenttypetag>.tmpl</TT
|
||||
>.
|
||||
Try out the template by calling the CGI as
|
||||
<TT
|
||||
CLASS="filename"
|
||||
><cginame>.cgi?format=<formatname></TT
|
||||
> .
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Bugzilla Security</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Integrating Bugzilla with Third-Party Tools</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>CVS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bonsai.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="scm.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="cvs">5.2. CVS</H1
|
||||
NAME="cvs"
|
||||
>5.2. CVS</A
|
||||
></H1
|
||||
><P
|
||||
>CVS integration is best accomplished, at this point, using
|
||||
the Bugzilla Email Gateway. There have been some files
|
||||
@@ -112,7 +111,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -124,7 +122,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bonsai.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -133,7 +130,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -142,7 +138,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="scm.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -158,7 +153,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>The Bugzilla Database</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="downloadlinks.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="dbschema.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="appendix"
|
||||
><H1
|
||||
><A
|
||||
NAME="database">Appendix C. The Bugzilla Database</H1
|
||||
NAME="database"
|
||||
>Appendix C. The Bugzilla Database</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -127,7 +126,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -139,7 +137,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="downloadlinks.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -148,7 +145,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -157,7 +153,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="dbschema.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>MySQL Bugzilla Database Introduction</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="dbschema.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="granttables.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="dbdoc">C.2. MySQL Bugzilla Database Introduction</H1
|
||||
NAME="dbdoc"
|
||||
>C.2. MySQL Bugzilla Database Introduction</A
|
||||
></H1
|
||||
><P
|
||||
> This information comes straight from my life. I was forced to learn how
|
||||
Bugzilla organizes database because of nitpicky requests from users for tiny
|
||||
@@ -138,7 +137,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN2272">C.2.1. Bugzilla Database Basics</H2
|
||||
NAME="AEN2340"
|
||||
>C.2.1. Bugzilla Database Basics</A
|
||||
></H2
|
||||
><P
|
||||
> If you were like me, at this point you're totally clueless
|
||||
about the internals of MySQL, and if it weren't for this
|
||||
@@ -259,7 +260,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN2301">C.2.1.1. Bugzilla Database Tables</H3
|
||||
NAME="AEN2369"
|
||||
>C.2.1.1. Bugzilla Database Tables</A
|
||||
></H3
|
||||
><P
|
||||
> Imagine your MySQL database as a series of
|
||||
spreadsheets, and you won't be too far off. If you use this
|
||||
@@ -514,7 +517,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -526,7 +528,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="dbschema.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -535,7 +536,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -544,7 +544,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="granttables.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -560,7 +559,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Database Schema Chart</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="dbdoc.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,13 +70,18 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="dbschema">C.1. Database Schema Chart</H1
|
||||
NAME="dbschema"
|
||||
>C.1. Database Schema Chart</A
|
||||
></H1
|
||||
><P
|
||||
> <DIV
|
||||
CLASS="mediaobject"
|
||||
><P
|
||||
><IMG
|
||||
SRC="../images/dbschema.jpg"><DIV
|
||||
SRC="../images/dbschema.jpg"
|
||||
ALT="Database Relationships"
|
||||
></IMG
|
||||
><DIV
|
||||
CLASS="caption"
|
||||
><P
|
||||
>Bugzilla database relationships chart</P
|
||||
@@ -94,7 +96,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -106,7 +107,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -115,7 +115,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -124,7 +123,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="dbdoc.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -140,7 +138,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Disclaimer</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="newversions.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="disclaimer">1.3. Disclaimer</H1
|
||||
NAME="disclaimer"
|
||||
>1.3. Disclaimer</A
|
||||
></H1
|
||||
><P
|
||||
> No liability for the contents of this document can be accepted.
|
||||
Use the concepts, examples, and other content at your own risk.
|
||||
@@ -92,7 +91,7 @@ NAME="disclaimer">1.3. Disclaimer</H1
|
||||
</P
|
||||
><P
|
||||
> Naming of particular products or brands should not be seen as
|
||||
endorsements, with the exception of the term "GNU/Linux". We
|
||||
endorsements, with the exception of the term "GNU/Linux". I
|
||||
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
|
||||
@@ -101,7 +100,8 @@ NAME="disclaimer">1.3. Disclaimer</H1
|
||||
><P
|
||||
> 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!
|
||||
Heaven knows it's saved my bacon time after time; if you
|
||||
implement any suggestion in this Guide, implement this one!
|
||||
</P
|
||||
><P
|
||||
> Although the Bugzilla development team has taken great care to
|
||||
@@ -122,7 +122,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -134,7 +133,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -143,7 +141,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -152,7 +149,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="newversions.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -168,7 +164,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Software Download Links</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="faq.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="appendix"
|
||||
><H1
|
||||
><A
|
||||
NAME="downloadlinks">Appendix B. Software Download Links</H1
|
||||
NAME="downloadlinks"
|
||||
>Appendix B. Software Download Links</A
|
||||
></H1
|
||||
><P
|
||||
> All of these sites are current as of April, 2001. Hopefully
|
||||
they'll stay current for a while.
|
||||
@@ -179,7 +178,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -191,7 +189,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="faq.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -200,7 +197,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -209,7 +205,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>ERRATA</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="errata">3.1. ERRATA</H1
|
||||
NAME="errata"
|
||||
>3.1. ERRATA</A
|
||||
></H1
|
||||
><P
|
||||
>Here are some miscellaneous notes about possible issues you
|
||||
main run into when you begin your Bugzilla installation.
|
||||
@@ -127,7 +126,7 @@ CLASS="filename"
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> Release Notes for Bugzilla 2.16 are available at
|
||||
> Release Notes for Bugzilla 2.14 are available at
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>docs/rel_notes.txt</TT
|
||||
@@ -217,7 +216,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -229,7 +227,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -238,7 +235,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -247,7 +243,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -263,7 +258,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -1,390 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Optional Additional Configuration</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Installation"
|
||||
HREF="installation.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Step-by-step Install"
|
||||
HREF="stepbystep.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Win32 Installation Notes"
|
||||
HREF="win32.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 4. Installation</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="extraconfig">4.2. Optional Additional Configuration</H1
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN836">4.2.1. Dependency Charts</H2
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
><P
|
||||
>(To be written...</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN840">4.2.2. Bug Graphs</H2
|
||||
><P
|
||||
>As long as you installed the GD and Graph::Base Perl modules you
|
||||
might as well turn on the nifty Bugzilla bug reporting graphs.</P
|
||||
><P
|
||||
>Add a cron entry like this to run
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>collectstats.pl</TT
|
||||
>
|
||||
daily at 5 after midnight:
|
||||
<P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
><TBODY
|
||||
><TR
|
||||
><TD
|
||||
> <TT
|
||||
CLASS="computeroutput"
|
||||
> <TT
|
||||
CLASS="prompt"
|
||||
>bash#</TT
|
||||
>
|
||||
|
||||
<B
|
||||
CLASS="command"
|
||||
>crontab -e</B
|
||||
>
|
||||
</TT
|
||||
>
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <TT
|
||||
CLASS="computeroutput"
|
||||
>5 0 * * * cd <your-bugzilla-directory> ;
|
||||
./collectstats.pl</TT
|
||||
>
|
||||
</TD
|
||||
></TR
|
||||
></TBODY
|
||||
></TABLE
|
||||
><P
|
||||
></P
|
||||
>
|
||||
</P
|
||||
><P
|
||||
>After two days have passed you'll be able to view bug graphs from
|
||||
the Bug Reports page.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN853">4.2.3. The Whining Cron</H2
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
><P
|
||||
> This can be done by
|
||||
adding the following command as a daily crontab entry (for help on that
|
||||
see that crontab man page):
|
||||
<P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
><TBODY
|
||||
><TR
|
||||
><TD
|
||||
> <TT
|
||||
CLASS="computeroutput"
|
||||
> <B
|
||||
CLASS="command"
|
||||
>cd <your-bugzilla-directory> ;
|
||||
./whineatnews.pl</B
|
||||
>
|
||||
</TT
|
||||
>
|
||||
</TD
|
||||
></TR
|
||||
></TBODY
|
||||
></TABLE
|
||||
><P
|
||||
></P
|
||||
>
|
||||
</P
|
||||
><DIV
|
||||
CLASS="tip"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="tip"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/tip.gif"
|
||||
HSPACE="5"
|
||||
ALT="Tip"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Depending on your system, crontab may have several manpages.
|
||||
The following command should lead you to the most useful page for
|
||||
this purpose:
|
||||
<TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
>man 5 crontab</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
>
|
||||
</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="bzldap">4.2.4. LDAP Authentication</H2
|
||||
><P
|
||||
> <DIV
|
||||
CLASS="warning"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="warning"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/warning.gif"
|
||||
HSPACE="5"
|
||||
ALT="Warning"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
><P
|
||||
>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
|
||||
<A
|
||||
HREF="http://www.mozilla.org/directory/"
|
||||
TARGET="_top"
|
||||
>available for
|
||||
download</A
|
||||
> from mozilla.org.
|
||||
</P
|
||||
><P
|
||||
> 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.)
|
||||
</P
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Step-by-step Install</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Win32 Installation Notes</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
>Feedback</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="contributors.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="feedback">1.7. Feedback</H1
|
||||
NAME="feedback"
|
||||
>1.7. Feedback</A
|
||||
></H1
|
||||
><P
|
||||
> I welcome feedback on this document. Without your submissions
|
||||
and input, this Guide cannot continue to exist. Please mail
|
||||
@@ -99,7 +98,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -111,7 +109,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="contributors.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -120,7 +117,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -129,7 +125,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="translations.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -145,7 +140,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
741
mozilla/webtools/bugzilla/docs/html/future.html
Normal file
741
mozilla/webtools/bugzilla/docs/html/future.html
Normal file
@@ -0,0 +1,741 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>The Future of Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Tinderbox/Tinderbox2"
|
||||
HREF="tinderbox.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Bugzilla Variants and Competitors"
|
||||
HREF="variants.html"></HEAD
|
||||
><BODY
|
||||
CLASS="chapter"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="future"
|
||||
>Chapter 6. The Future of Bugzilla</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="synopsis"
|
||||
>Bugzilla's Future. Much of this is the present, now.</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><P
|
||||
> Bugzilla's future is a constantly-changing thing, as various developers
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"scratch an itch"</SPAN
|
||||
> when it comes to functionality.
|
||||
Thus this section is very malleable, subject to change without notice, etc.
|
||||
You'll probably also notice the lack of formatting. I apologize that it's
|
||||
not quite as readable as the rest of the Guide.
|
||||
</P
|
||||
><P
|
||||
> <P
|
||||
CLASS="literallayout"
|
||||
><br>
|
||||
Bugzilla Blue Sky<br>
|
||||
<br>
|
||||
Customisability<br>
|
||||
<br>
|
||||
One of the major stumbling blocks of Bugzilla has been that it is too<br>
|
||||
rigid and does not adapt itself well enough to the needs of an<br>
|
||||
organisation. This has led to organisations making changes to the<br>
|
||||
Bugzilla code that need to be redone each new version of Bugzilla.<br>
|
||||
Bugzilla should attempt to move away from this to a world where this<br>
|
||||
doesn't need to occur.<br>
|
||||
<br>
|
||||
Most of the subsections in this section are currently explicit design<br>
|
||||
goals for the "Bugzilla 3" rewrite. This does not necessarily mean<br>
|
||||
that they will not occur before them in Bugzilla 2, but most are<br>
|
||||
significant undertakings.<br>
|
||||
<br>
|
||||
Field Customisation<br>
|
||||
<br>
|
||||
Many installations wish to customise the fields that appear on bug<br>
|
||||
reports. Current versions of Bugzilla offer limited<br>
|
||||
customisability. In particular, some fields can be turned off.<br>
|
||||
<br>
|
||||
However, many administrators wish to add their own fields, and rename<br>
|
||||
or otherwise modify existing fields. An architecture that supports<br>
|
||||
this would be extraordinarily useful.<br>
|
||||
<br>
|
||||
Indeed, many fields work similarly and could be abstracted into "field<br>
|
||||
types", so that an administrator need write little or no code to<br>
|
||||
support the new fields they desire.<br>
|
||||
<br>
|
||||
Possible field types include text (eg status whiteboard), numbers,<br>
|
||||
dates (eg report time), accounts (eg reporter, qa, cc), inter-bug<br>
|
||||
relationships (dependencies, duplicates), option groups (platform, os,<br>
|
||||
severity, priority, target milestone, version) etc.<br>
|
||||
<br>
|
||||
Ideally an administrator could configure their fields through a<br>
|
||||
Bugzilla interface that requires no code to be added. However, it is<br>
|
||||
highly unlikely this ideal will never be met, and in a similar way<br>
|
||||
that office applications have scripting languages, Bugzilla should<br>
|
||||
allow new field types to be written.<br>
|
||||
<br>
|
||||
Similarly, a common desire is for resolutions to be added or removed.<br>
|
||||
<br>
|
||||
Allocations<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Option Groups<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Relations<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Database Integrity<br>
|
||||
<br>
|
||||
Furthermore, it is desirable for administrators to be able to specify<br>
|
||||
rules that must or should apply between the fields on a bug report.<br>
|
||||
<br>
|
||||
For example, you might wish to specify that a bug with status ASSIGNED<br>
|
||||
must have a target milestone field that that is not untargetted. Or<br>
|
||||
that a bug with a certain number of votes should get ASSIGNED. Or<br>
|
||||
that the QA contact must be different from the assignee.<br>
|
||||
<br>
|
||||
"Must" relationships could be implemented by refusing to make changes<br>
|
||||
that violate the relationships, or alternatively, automatically<br>
|
||||
updating certain fields in order to satisfy the criteria. Which<br>
|
||||
occurs should be up to the administrator.<br>
|
||||
<br>
|
||||
"Should" relationships could be implemented by a combination of<br>
|
||||
emitting warnings on the process bug page, the same on notification<br>
|
||||
mails, or emitting periodic whine mails about the situation. Again,<br>
|
||||
which occurs should be up to the administrator.<br>
|
||||
<br>
|
||||
It should also be possible for whine mails to be emitted for "must"<br>
|
||||
relationships, as they might become violated through direct database<br>
|
||||
access, Bugzilla bugs, or because they were there before the<br>
|
||||
relationship was enforced.<br>
|
||||
<br>
|
||||
As well as implementing intra-bug constraints, it would be useful to<br>
|
||||
create inter-bug constraints. For example, a bug that is dependent on<br>
|
||||
another bug should not have an earlier milestone or greater priority<br>
|
||||
than that bug.<br>
|
||||
<br>
|
||||
Database Adaptability<br>
|
||||
<br>
|
||||
Often an administrator desires that fields adapt to the values of<br>
|
||||
other fields. For example, the value of a field might determine the<br>
|
||||
possible values of another field or even whether it appears (whether<br>
|
||||
it is "applicable").<br>
|
||||
<br>
|
||||
Limited adaptability is present in Bugzilla 2, and only on the<br>
|
||||
"Product" field:<br>
|
||||
* The possible values of the target milestone, version and component<br>
|
||||
fields depend on the product.<br>
|
||||
* UNCONFIRMED can be turned off for specific products.<br>
|
||||
* Voting can be configured differently or turned off for different<br>
|
||||
products, and there is a separate user vote limits for each<br>
|
||||
product.<br>
|
||||
<br>
|
||||
It would be good if more adaptability was present, both in terms of<br>
|
||||
all fields relying on the product, as well as the ability to adapt<br>
|
||||
based on the value of all fields.<br>
|
||||
<br>
|
||||
Example ???<br>
|
||||
<br>
|
||||
General adaptability raises the issue of circular references between<br>
|
||||
fields causing problems. One possible solution to this is to place<br>
|
||||
the fields in a total ordering and require a field refer only to the<br>
|
||||
previous fields.<br>
|
||||
<br>
|
||||
In Bugzilla 2, changing the product of a bug meant a second page would<br>
|
||||
appear that allowed you to choose a new milestone, component and<br>
|
||||
version, as those fields adapted themselves to the new product. This<br>
|
||||
page could be generalised to support all instances where:<br>
|
||||
* a field value must or might be changed because the possible values<br>
|
||||
have changed<br>
|
||||
* is going to drop off because it it is no longer applicable, and<br>
|
||||
this should be confirmed<br>
|
||||
* must be specified because it is suddenly applicable, and the<br>
|
||||
default value, if one exists, might not be acceptable<br>
|
||||
<br>
|
||||
Database Independence<br>
|
||||
<br>
|
||||
Currently Bugzilla only runs on the MySQL database. It would be<br>
|
||||
desirable for Bugzilla to run on other databases, because:<br>
|
||||
* Organisations may have existing database products they use and<br>
|
||||
would prefer to run a homogenous environment.<br>
|
||||
* Databases each have their own shortcomings, including MySQL. An<br>
|
||||
administrator might choose a database that would work better with<br>
|
||||
their Bugzilla.<br>
|
||||
<br>
|
||||
This raises the possibility that we could use features that are only<br>
|
||||
present in some databases, by appropriately falling back. For<br>
|
||||
example, in the MySQL world, we live without:<br>
|
||||
* record-level locking, instead we use table-level locking<br>
|
||||
* referential and record constraints, instead we checking code<br>
|
||||
* subselects, instead we use multiple queries and redundant "caches"<br>
|
||||
<br>
|
||||
Multiple Front Ends<br>
|
||||
<br>
|
||||
Currently Bugzilla is manipulated via the Web, and notifies via<br>
|
||||
E-Mail. It would be desirable for Bugzilla to easily support various<br>
|
||||
front ends.<br>
|
||||
<br>
|
||||
There is no reason that Bugzilla could not be controlled via a whole<br>
|
||||
range of front ends, including Web, E-Mail, IRC, ICQ, etc, and<br>
|
||||
similarly for how it notifies. It's also possible that we could<br>
|
||||
introduce a special Bugzilla client that uses its own protocol, for<br>
|
||||
maximum user productivity.<br>
|
||||
<br>
|
||||
Indeed a request reply might be returned via a totally different<br>
|
||||
transport method than was use to submit the request.<br>
|
||||
<br>
|
||||
Internationalisation<br>
|
||||
<br>
|
||||
Bugzilla currently supports only English. All of the field names,<br>
|
||||
user instructions, etc are written in English. It would be desirable<br>
|
||||
to allow "language packs" so Bugzilla can be easily used in<br>
|
||||
non-English speaking locales.<br>
|
||||
<br>
|
||||
To a degree field customisation supports this, because administrators<br>
|
||||
could specify their own fields names anyway. However, there will<br>
|
||||
always be some basic facilities not covered by this, and it is<br>
|
||||
desirable that the administrator's interface also is<br>
|
||||
internationalisable.<br>
|
||||
<br>
|
||||
Better Searching<br>
|
||||
<br>
|
||||
General Summary Reports<br>
|
||||
<br>
|
||||
Sometimes, the normal querying page leaves a lot to be desired. There<br>
|
||||
are other facilities already in place or which people have asked for:<br>
|
||||
<br>
|
||||
Most Doomed Reports - All Bugs or All Bugs In A Product, Categorised<br>
|
||||
On Assignee, Shows and Counts Number of Bugs For Each Assignee<br>
|
||||
Most Voted For Bugs - All Bugs, Categorised On Product, Shows Top Ten<br>
|
||||
Bugs Voters Most Want Fixed<br>
|
||||
Number of Open Bugs For An Assignee - Bug List, Categorised On<br>
|
||||
Developers, Counts Number of Bugs In Category<br>
|
||||
<br>
|
||||
The important thing to realise is that people want categorised reports<br>
|
||||
on all sorts of things - a general summary report.<br>
|
||||
<br>
|
||||
In a categorised report, you choose the subset of bugs you wish to<br>
|
||||
operate on (similar to how you would specify a query), and then<br>
|
||||
categorise them on one or more fields.<br>
|
||||
<br>
|
||||
For each category you display the count of the number of things in<br>
|
||||
that category. You can optionally display the bugs themselves, or<br>
|
||||
leave them out, just showing the counts. And you can optionally limit<br>
|
||||
the number of things (bugs or subcategories) that display in each<br>
|
||||
category.<br>
|
||||
<br>
|
||||
Such a mechanism would let you do all of the above and more.<br>
|
||||
Applications of this mechanism would only be recognised once it was<br>
|
||||
implemented.<br>
|
||||
<br>
|
||||
Related Bugs<br>
|
||||
<br>
|
||||
It would be nice to have a field where you could enter other bugs<br>
|
||||
related to the current bug. It would be handy for navigation and<br>
|
||||
possibly even finding duplicates.<br>
|
||||
<br>
|
||||
Column Specification Support<br>
|
||||
<br>
|
||||
Currently bug lists use the columns that you last used. This doesn't<br>
|
||||
work well for "prepackaged queries", where you followed a link. You<br>
|
||||
can probably add a column by specifying a sort column, but this is<br>
|
||||
difficult and suboptimal.<br>
|
||||
<br>
|
||||
Furthermore, I find that when I want to add a column to a bug list,<br>
|
||||
it's usually a one off and I would prefer it to go away for the next<br>
|
||||
query. Hence, it would be nice to specify the columns that appear on<br>
|
||||
the bug list (and general summary report) pages. The default query<br>
|
||||
mechanism should be able to let you specify your default columns.<br>
|
||||
<br>
|
||||
Advanced Querying Redesign<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Keywords<br>
|
||||
<br>
|
||||
People have a need to apply tags to bugs. In the beginning, people<br>
|
||||
placed designators in the summary and status whiteboard. However,<br>
|
||||
these fields were not designed for that, and so there were many flaws<br>
|
||||
with this system:<br>
|
||||
* They pollute the field with information that was never intended to<br>
|
||||
be present.<br>
|
||||
* Removing them with a bulk change is a difficult problem that has<br>
|
||||
too many pitfalls to implement.<br>
|
||||
* You can easily get the capitalisation wrong.<br>
|
||||
<br>
|
||||
Then dependencies were introduced (when?), and people realised that<br>
|
||||
they could use them for "tracking bugs". Again, dependencies were not<br>
|
||||
designed for that, and so there were more flaws, albeit different<br>
|
||||
ones, including:<br>
|
||||
* They aren't really bugs, so it's difficult to distinguish issues<br>
|
||||
from bugs.<br>
|
||||
* They can pollute bugs counts, and you must somehow exclude them<br>
|
||||
from queries.<br>
|
||||
* There is a whole lot of useless information on them. They have an<br>
|
||||
assignee but there is nothing to fix, and that person can get<br>
|
||||
whined at by Bugzilla. They have target milestones which must be<br>
|
||||
manually maintained. And so on.<br>
|
||||
<br>
|
||||
Finally, keywords were introduced (when?) for this purpose to remove<br>
|
||||
the need for these two systems. Unfortunately, the simple keywords<br>
|
||||
implementation was itself lacking in certain features provided by the<br>
|
||||
two previous systems, and has remained almost unchanged since its<br>
|
||||
inception. Furthermore, it could not be forseen that in large<br>
|
||||
installations, the sheer number of keywords could become unwieldly and<br>
|
||||
could lead to a movement back to the other systems.<br>
|
||||
<br>
|
||||
The keywords system was the right idea, however, and it remains so.<br>
|
||||
Fixing the keywords system is one of the most important Bugzilla<br>
|
||||
issues.<br>
|
||||
<br>
|
||||
Bringing Keywords Up To Par<br>
|
||||
<br>
|
||||
For the most part, keywords are very good at what they do. It is easy<br>
|
||||
to add and remove them (unlike summary/whiteboard designators), we can<br>
|
||||
simply see what issues are present on a bug (unlike tracking bugs),<br>
|
||||
and we do not confuse bugs with issues (unlike tracking bugs).<br>
|
||||
<br>
|
||||
However, there are still some "regressions" in the keyword system over<br>
|
||||
previous systems:<br>
|
||||
* Users wish to view the "dependency forest" of a keyword. While a<br>
|
||||
dependency tree is of one bug, a dependency forest is of a bug<br>
|
||||
list, and consists of a dependency tree for each member of the bug<br>
|
||||
list. Users can work around this with tracking bugs by creating a<br>
|
||||
tracking bug and viewing the dependency tree of that tracking bug.<br>
|
||||
* Users wish to specify the keywords that initially apply to a bug,<br>
|
||||
but instead they must edit the bug once it has already been<br>
|
||||
submitted. They can work around this with summary designators,<br>
|
||||
since they specify the summary at reporting time.<br>
|
||||
* Users wish to store or share a bug list that contains a keywords<br>
|
||||
column. Hence they wish to be able to specify what columns appear<br>
|
||||
in the bug list URL, as mentioned earlier. They can work around<br>
|
||||
this using summary designators, since almost all bug lists have a<br>
|
||||
summary column.<br>
|
||||
* Users wish to be able to view keywords on a bug list. However<br>
|
||||
often they are only interested in a small number of keywords.<br>
|
||||
Having a bug list with a keywords column means that all keywords<br>
|
||||
will appear on a bug list. This can take a substantial amount of<br>
|
||||
space where a bug has a lot of keywords, since the table columns<br>
|
||||
in Bugzilla adjust to the largest cell in that column. Hence<br>
|
||||
users wish to be able to specify which keywords should appear in<br>
|
||||
the bug list. In a very real sense, each keyword is a field unto<br>
|
||||
itself. Users can work around this by using summary designators,<br>
|
||||
since they keywords will share the space in the summary column.<br>
|
||||
* Users wish to know when bugs with a specific issue are resolved.<br>
|
||||
Hence they wish to be able to receive notifications on all the<br>
|
||||
bugs with a specific keyword. The introduction a generic watching<br>
|
||||
facility (also for things like watching all bugs in a component)<br>
|
||||
would achieve this. Users can work around this by using tracking<br>
|
||||
bugs, as dependencies have an existing way of detecting fixes to<br>
|
||||
bug a bug was blocked by.<br>
|
||||
<br>
|
||||
Dealing With The Keyword Overload<br>
|
||||
<br>
|
||||
At the time of writing, the mozilla.org installation has approximately<br>
|
||||
100 keywords, and many more would be in use if the keywords system<br>
|
||||
didn't have the problems it does.<br>
|
||||
<br>
|
||||
Such a large number of keywords introduces logistical problems:<br>
|
||||
* It must be easy for someone to learn what a keyword means. If a<br>
|
||||
keyword is buried within a lot of other keywords, it can be<br>
|
||||
difficult to find.<br>
|
||||
* It must be easy to see what keywords are on a bug. If the number<br>
|
||||
of keywords is large, then this can be difficult.<br>
|
||||
<br>
|
||||
These lead some people to feel that there are "too many keywords".<br>
|
||||
<br>
|
||||
These problems are not without solutions however. It is harder to<br>
|
||||
find a list of designators or tracking bugs than it is a list of<br>
|
||||
keywords.<br>
|
||||
<br>
|
||||
The essential problem is it needs to be easy to find the keywords<br>
|
||||
we're interested in through the mass of keywords.<br>
|
||||
<br>
|
||||
Keyword Applicability<br>
|
||||
<br>
|
||||
As has been previously mentioned, it is desirable for fields to be<br>
|
||||
able to adapt to the values of other fields. This is certainly true<br>
|
||||
for keywords. Many keywords are simply not relevant because of the<br>
|
||||
bugs product, component, etc.<br>
|
||||
<br>
|
||||
Hence, by introducing keyword applicability, and not displaying<br>
|
||||
keywords that are not relevant to the current bug, or clearly<br>
|
||||
separating them, we can make the keyword overload problem less<br>
|
||||
significant.<br>
|
||||
<br>
|
||||
Currently when you click on "keywords" on a bug, you get a list of all<br>
|
||||
bugs. It would be desirable to introduce a list of keywords tailored<br>
|
||||
to a specific bug, that reports, in order:<br>
|
||||
* the keywords currently on the bug<br>
|
||||
* the keywords not currently on the bug, but applicable to the bug<br>
|
||||
* optionally, the keywords not applicable to the bug<br>
|
||||
<br>
|
||||
This essentially orders the keywords into three groups, where each<br>
|
||||
group is more important than the previous, and therefore appears<br>
|
||||
closer to the top.<br>
|
||||
<br>
|
||||
Keyword Grouping & Ordering<br>
|
||||
<br>
|
||||
We could further enhance both the global and bug specific keyword list<br>
|
||||
by grouping keywords. We should always have a "flat" view of<br>
|
||||
keywords, but other ways of viewing the keywords would be useful too.<br>
|
||||
<br>
|
||||
If keyword applicability was implemented, we could group keywords<br>
|
||||
based on their "applicability condition". Keywords that apply to all<br>
|
||||
bugs could be separated from keywords that apply to a specific<br>
|
||||
product, both on the global keyword list and the keyword list of a bug<br>
|
||||
that is in that product.<br>
|
||||
<br>
|
||||
We could specify groups of our own. For example, many keywords are in<br>
|
||||
a mutually exclusive group, essentially like radio buttons in a user<br>
|
||||
interface. This creates a natural grouping, although other groupings<br>
|
||||
occur (which depends on your keywords).<br>
|
||||
<br>
|
||||
It is possible that we could use collapsing/expanding operations on<br>
|
||||
"twisties" to only should the groups we are interested in.<br>
|
||||
<br>
|
||||
And instead of grouping keywords, we could order them on some metric<br>
|
||||
of usefulness, such as:<br>
|
||||
* when the keyword was last added to a bug<br>
|
||||
* how many bugs the keyword is on<br>
|
||||
* how many open bugs the keyword is on<br>
|
||||
<br>
|
||||
Opting Out Of Keywords<br>
|
||||
<br>
|
||||
Not all people are going to care about all keywords. Therefore it<br>
|
||||
makes sense that you may wish to specify which keywords you are<br>
|
||||
interested in, either on the bug page, or on notifications.<br>
|
||||
<br>
|
||||
Other keywords will therefore not bother users who are not interested<br>
|
||||
in them.<br>
|
||||
<br>
|
||||
Keyword Security<br>
|
||||
<br>
|
||||
Currently all keywords are available and editable to all people with<br>
|
||||
edit bugs access. This situation is clearly suboptimal.<br>
|
||||
<br>
|
||||
Although relying on good behaviour for people to not do what they<br>
|
||||
shouldn't works reasonably well on the mozilla.org, it is better to<br>
|
||||
enforce that behaviour - it can be breached through malice, accident<br>
|
||||
or ignorance.<br>
|
||||
<br>
|
||||
And in the situation where it is desirable for the presence or absence<br>
|
||||
of a keyword not to be revealed, organisations either need to be<br>
|
||||
content with the divulgence, or not use keywords at all.<br>
|
||||
<br>
|
||||
In the situation where they choose to divulge, introducing the ability<br>
|
||||
to restrict who can see the keyword would also reduce keyword<br>
|
||||
overload.<br>
|
||||
<br>
|
||||
Personal Keywords<br>
|
||||
<br>
|
||||
Keywords join together a set of bugs which would otherwise be<br>
|
||||
unrelated in the bug system.<br>
|
||||
<br>
|
||||
We allow users to store their own queries. However we don't allow<br>
|
||||
them to store their own keywords on a bug. This reduces the<br>
|
||||
usefulness of personal queries, since you cannot join a set of<br>
|
||||
unrelated bugs together in a way that you wish. Lists of bug numbers<br>
|
||||
can work, by they can only be used for small lists, and it is<br>
|
||||
impossible to share a list between multiple queries.<br>
|
||||
<br>
|
||||
Personal keywords are necessary to replace personal tracking bugs, as<br>
|
||||
they would not pollute the keyword space. Indeed, on many<br>
|
||||
installations this could remove some keywords out of the global<br>
|
||||
keyword space.<br>
|
||||
<br>
|
||||
In a similar vein and with similar effects, group keywords could be<br>
|
||||
introduced that are only available to members of a specific group.<br>
|
||||
<br>
|
||||
Keyword Restrictions<br>
|
||||
<br>
|
||||
Keywords are not islands unto themselves. Along with their potential<br>
|
||||
to be involved in the inter-field relationships mentioned earlier,<br>
|
||||
keywords can also be related to other keywords.<br>
|
||||
<br>
|
||||
Essentially, there are two possibilities:<br>
|
||||
* a set of keywords are mutually exclusive<br>
|
||||
* the presence of a keyword implies another keyword must be present<br>
|
||||
<br>
|
||||
Introduction of the ability to specify these restrictions would have<br>
|
||||
benefits.<br>
|
||||
<br>
|
||||
If mutually exclusive keywords were present on a bug, their removal<br>
|
||||
would fix up the database, as well as reducing the number of keywords<br>
|
||||
on that bug.<br>
|
||||
<br>
|
||||
In the situation where a keyword implies another keyword, there are<br>
|
||||
two possiblities as to how to handle the situation.<br>
|
||||
<br>
|
||||
The first is automatically add the keyword. This would fix up the<br>
|
||||
database, but it would increase the number of keywords on a bug.<br>
|
||||
<br>
|
||||
The second is to automatically remove the keyword, and alter queries<br>
|
||||
so they pick up the first keyword as well as the removed keyword.<br>
|
||||
This would fix up the database and reduce the number of keywords on a<br>
|
||||
bug, but it might confuse users who don't see the keyword.<br>
|
||||
Alternatively, the implied keywords could be listed separately.<br>
|
||||
<br>
|
||||
Notifications<br>
|
||||
<br>
|
||||
Every time a bug gets changed notifications get sent out to people<br>
|
||||
letting them know about what changes have been made. This is a<br>
|
||||
significant feature, and all sorts of questions can be raised, but<br>
|
||||
they mainly boil down to when they should be sent and what they should<br>
|
||||
look like.<br>
|
||||
<br>
|
||||
Changes You're Interested In<br>
|
||||
<br>
|
||||
As of version 2.12 users can specify what sort of changes they are<br>
|
||||
interested in receiving notifications for. However, this is still<br>
|
||||
limited. As yet there is no facility to specify which keywords you<br>
|
||||
care about, and whether you care about changes to fields such as the<br>
|
||||
QA contact changes.<br>
|
||||
Furthermore, often an unnecessary comment will go along with a change,<br>
|
||||
either because it is required, or the commenter is ignorant of how the<br>
|
||||
new system works. While explaining why you did something is useful,<br>
|
||||
merely commenting on what you did is not because that information is<br>
|
||||
already accessible view "Bug Activity".<br>
|
||||
<br>
|
||||
Because of this unnecessary comment, a lot of changes that would<br>
|
||||
otherwise not generate notifications for certain people do so, because<br>
|
||||
few people are willing to turn off comments. One way to deal with<br>
|
||||
this problem is to allow people to specify that their comments are<br>
|
||||
purely explanatory, and that anyone who is not interested in the<br>
|
||||
change will not be interested in the comment.<br>
|
||||
<br>
|
||||
Furthermore, one possible rationale for unnecessary comments is that<br>
|
||||
the bug activity does not display on the normal page and hence it is<br>
|
||||
difficult to cross reference comments and actions. Hence, it would be<br>
|
||||
beneficial to be able to do this.<br>
|
||||
<br>
|
||||
Bugs You're Watching<br>
|
||||
<br>
|
||||
Currently to receive a notification about a bug you need to have your<br>
|
||||
name on it. This is suboptimal because you need to know about a bug<br>
|
||||
before you can receive notifications on it. Often you are interested<br>
|
||||
in any bug with a field set to a specific value. For example, you<br>
|
||||
might be interested in all bugs with a specific product, component or<br>
|
||||
keyword.<br>
|
||||
<br>
|
||||
If someone could automatically receive notifications about these bugs,<br>
|
||||
it would make everyone's lives easier. Currently the default assignee<br>
|
||||
and QA contact for a component will automatically receive<br>
|
||||
notifications for<br>
|
||||
<br>
|
||||
Question: This moves half way to a BCC.<br>
|
||||
<br>
|
||||
Bulk Changes<br>
|
||||
<br>
|
||||
A very useful feature of Bugzilla is the ability to perform an action<br>
|
||||
on multiple bugs at once. However, this means that similar<br>
|
||||
notifications are currently generated for each bug modified.<br>
|
||||
<br>
|
||||
This can result in a torrent of notifications that can annoy.<br>
|
||||
<br>
|
||||
Furthermore, since the bugs are all changed close to each other in<br>
|
||||
time, it is easy for someone to mass delete all the notifications<br>
|
||||
generated by a bulk change and miss an unrelated notification in the<br>
|
||||
middle.<br>
|
||||
<br>
|
||||
These factors can lead to a tendency for people to delay bulk changes,<br>
|
||||
or avoid them entirely. This is suboptimal.<br>
|
||||
<br>
|
||||
It would be better if a bulk change generated only one notification<br>
|
||||
mail. This would vastly reduce the annoyance factor, and prevent<br>
|
||||
accidental deletion of notifications.<br>
|
||||
<br>
|
||||
One problem with this change is that some people separate out<br>
|
||||
notifications using filtering. This means that they would no longer<br>
|
||||
be match parts of a bulk change under different filtering rules.<br>
|
||||
<br>
|
||||
One possibility to resolve this is to allow people to specify groups<br>
|
||||
of bugs. All bugs within a group would go into the same<br>
|
||||
notification. The filters could then distinguish the different bug<br>
|
||||
groups.<br>
|
||||
<br>
|
||||
In any case, it is likely there would need to be a transition period<br>
|
||||
to allow people to alter their filters.<br>
|
||||
<br>
|
||||
Nominations<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Linking Bugzilla Installations<br>
|
||||
<br>
|
||||
The first example of linking Bugzilla installations together has is<br>
|
||||
the introduction of bug moving in version 2.12. However, it would be<br>
|
||||
useful to be able to link installations in more ways.<br>
|
||||
* Dependencies and other relationships between bugs in other<br>
|
||||
installations. This is difficult because dependencies are<br>
|
||||
synchronised on both bugs, so the installation that changes<br>
|
||||
dependencies would need to communicate the new state to the other<br>
|
||||
installation. It would also mean that relationships and<br>
|
||||
notifications that refer to other bugs would need to communicate<br>
|
||||
with the other installation.<br>
|
||||
* References to bugs in other installations. Currently if you type<br>
|
||||
"bug XXX" or "bug #XXX" where XXX is a number, you get an<br>
|
||||
automatic hyperlink to that bug. It would be useful if you could<br>
|
||||
say "YYY bug #XXX" where YYY is the name of another installation.<br>
|
||||
<br>
|
||||
Retirement<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Whiny Reports<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Group Redesign<br>
|
||||
<br>
|
||||
?<br>
|
||||
<br>
|
||||
Hard Wrapping Comments<br>
|
||||
<br>
|
||||
Currently Bugzilla "hard wraps" its comments to a specific line size,<br>
|
||||
similar to E-Mail. This has various problems:<br>
|
||||
* The way it currently works, wrapping is done in the browser at<br>
|
||||
submission time using a non-standard HTML extension not supported<br>
|
||||
by some (uncommon) browsers. These browsers generate comments<br>
|
||||
that scroll off the right side of the screen.<br>
|
||||
* Because comments are of fixed width, when you expand your browser<br>
|
||||
window, the comments do not expand to fit available space.<br>
|
||||
<br>
|
||||
It would be much better to move to a world of soft wrapping, where the<br>
|
||||
browser wraps the text at display time, similar to a world processor.<br>
|
||||
And as in a word processor, soft wrapping does not preclude the<br>
|
||||
insertion of newlines.<br>
|
||||
<br>
|
||||
Hard wrapping is too entrenched into text E-Mail to fix, but we can<br>
|
||||
fix Bugzilla without causing any problems. The old content will still<br>
|
||||
be wrapped too early, but at least new content will work.<br>
|
||||
</P
|
||||
>
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Tinderbox/Tinderbox2</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Bugzilla Variants and Competitors</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>Installation General Notes</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bsdinstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,13 +70,17 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="geninstall">3.5. Installation General Notes</H1
|
||||
NAME="geninstall"
|
||||
>3.5. Installation General Notes</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN874">3.5.1. Modifying Your Running System</H2
|
||||
NAME="AEN941"
|
||||
>3.5.1. Modifying Your Running System</A
|
||||
></H2
|
||||
><P
|
||||
> Bugzilla optimizes database lookups by storing all relatively static
|
||||
information in the versioncache file, located in the data/ subdirectory
|
||||
@@ -110,26 +111,15 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN881">3.5.2. Upgrading From Previous Versions</H2
|
||||
NAME="AEN948"
|
||||
>3.5.2. Upgrading From Previous Versions</A
|
||||
></H2
|
||||
><P
|
||||
> A plain Bugzilla is fairly easy to upgrade from one version to a newer one.
|
||||
However, things get a bit more complicated if you've made changes to
|
||||
Bugzilla's code. In this case, you may have to re-make or reapply those
|
||||
changes.
|
||||
It is recommended that you take a backup of your database and your entire
|
||||
Bugzilla installation before attempting an upgrade. You can upgrade a 'clean'
|
||||
installation by untarring a new tarball over the old installation. If you
|
||||
are upgrading from 2.12 or later, you can type <TT
|
||||
CLASS="filename"
|
||||
>cvs -z3
|
||||
update</TT
|
||||
>, and resolve conflicts if there are any.
|
||||
</P
|
||||
><P
|
||||
> Because the developers of Bugzilla are constantly adding new tables, columns
|
||||
and fields, you'll probably get SQL errors if you just update the code and
|
||||
attempt to use Bugzilla. Always run the checksetup.pl script whenever
|
||||
you upgrade your installation.
|
||||
> The developers of Bugzilla are constantly adding new tables, columns and
|
||||
fields. You'll get SQL errors if you just update the code. The strategy
|
||||
to update is to simply always run the checksetup.pl script whenever
|
||||
you upgrade your installation of Bugzilla. If you want to see what has
|
||||
changed, you can read the comments in that file, starting from the end.
|
||||
</P
|
||||
><P
|
||||
> If you are running Bugzilla version 2.8 or lower, and wish to upgrade to
|
||||
@@ -142,10 +132,12 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="htaccess">3.5.3. <TT
|
||||
NAME="htaccess"
|
||||
>3.5.3. <TT
|
||||
CLASS="filename"
|
||||
>.htaccess</TT
|
||||
> files and security</H2
|
||||
> files and security</A
|
||||
></H2
|
||||
><P
|
||||
> To enhance the security of your Bugzilla installation,
|
||||
Bugzilla will generate
|
||||
@@ -161,9 +153,7 @@ CLASS="filename"
|
||||
generate the <TT
|
||||
CLASS="filename"
|
||||
>.htaccess</TT
|
||||
> files. These .htaccess files
|
||||
will not work with Apache 1.2.x - but this has security holes, so you
|
||||
shouldn't be using it anyway.
|
||||
> files.
|
||||
|
||||
<DIV
|
||||
CLASS="note"
|
||||
@@ -297,10 +287,12 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="mod-throttle">3.5.4. <TT
|
||||
NAME="mod-throttle"
|
||||
>3.5.4. <TT
|
||||
CLASS="filename"
|
||||
>mod_throttle</TT
|
||||
> and Security</H2
|
||||
> and Security</A
|
||||
></H2
|
||||
><P
|
||||
> 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
|
||||
@@ -331,7 +323,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="content-type">3.5.5. Preventing untrusted Bugzilla content from executing malicious Javascript code</H2
|
||||
NAME="content-type"
|
||||
>3.5.5. Preventing untrusted Bugzilla content from executing malicious Javascript code</A
|
||||
></H2
|
||||
><P
|
||||
>It is possible for a Bugzilla to execute malicious
|
||||
Javascript code. Due to internationalization concerns, we are
|
||||
@@ -388,7 +382,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="unixhistory">3.5.6. UNIX Installation Instructions History</H2
|
||||
NAME="unixhistory"
|
||||
>3.5.6. UNIX Installation Instructions History</A
|
||||
></H2
|
||||
><P
|
||||
> This document was originally adapted from the Bonsai
|
||||
installation instructions by Terry Weissman
|
||||
@@ -427,7 +423,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -439,7 +434,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bsdinstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -448,7 +442,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -457,7 +450,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="win32.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -473,7 +465,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>PREAMBLE</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-1.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-0">0. PREAMBLE</H1
|
||||
NAME="gfdl-0"
|
||||
>0. PREAMBLE</A
|
||||
></H1
|
||||
><P
|
||||
>The purpose of this License is to make a manual, textbook,
|
||||
or other written document "free" in the sense of freedom: to
|
||||
@@ -103,7 +102,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -115,7 +113,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -124,7 +121,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -133,7 +129,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-1.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -149,7 +144,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>APPLICABILITY AND DEFINITIONS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-0.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-2.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-1">1. APPLICABILITY AND DEFINITIONS</H1
|
||||
NAME="gfdl-1"
|
||||
>1. APPLICABILITY AND DEFINITIONS</A
|
||||
></H1
|
||||
><P
|
||||
>This License applies to any manual or other work that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
@@ -144,7 +143,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -156,7 +154,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-0.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -165,7 +162,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -174,7 +170,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-2.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -190,7 +185,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>FUTURE REVISIONS OF THIS LICENSE</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-9.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-howto.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-10">10. FUTURE REVISIONS OF THIS LICENSE</H1
|
||||
NAME="gfdl-10"
|
||||
>10. FUTURE REVISIONS OF THIS LICENSE</A
|
||||
></H1
|
||||
><P
|
||||
>The Free Software Foundation may publish new, revised
|
||||
versions of the GNU Free Documentation License from time to time.
|
||||
@@ -100,7 +99,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -112,7 +110,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-9.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -121,7 +118,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -130,7 +126,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-howto.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -146,7 +141,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>VERBATIM COPYING</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-1.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-3.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-2">2. VERBATIM COPYING</H1
|
||||
NAME="gfdl-2"
|
||||
>2. VERBATIM COPYING</A
|
||||
></H1
|
||||
><P
|
||||
>You may copy and distribute the Document in any medium,
|
||||
either commercially or noncommercially, provided that this
|
||||
@@ -94,7 +93,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -106,7 +104,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-1.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -115,7 +112,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -124,7 +120,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-3.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -140,7 +135,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>COPYING IN QUANTITY</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-2.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-4.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-3">3. COPYING IN QUANTITY</H1
|
||||
NAME="gfdl-3"
|
||||
>3. COPYING IN QUANTITY</A
|
||||
></H1
|
||||
><P
|
||||
>If you publish printed copies of the Document numbering more
|
||||
than 100, and the Document's license notice requires Cover Texts,
|
||||
@@ -118,7 +117,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -130,7 +128,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-2.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -139,7 +136,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -148,7 +144,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-4.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -164,7 +159,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>MODIFICATIONS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-3.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-5.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-4">4. MODIFICATIONS</H1
|
||||
NAME="gfdl-4"
|
||||
>4. MODIFICATIONS</A
|
||||
></H1
|
||||
><P
|
||||
>You may copy and distribute a Modified Version of the
|
||||
Document under the conditions of sections 2 and 3 above, provided
|
||||
@@ -224,7 +223,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -236,7 +234,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-3.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -245,7 +242,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -254,7 +250,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-5.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -270,7 +265,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>COMBINING DOCUMENTS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-4.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-6.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-5">5. COMBINING DOCUMENTS</H1
|
||||
NAME="gfdl-5"
|
||||
>5. COMBINING DOCUMENTS</A
|
||||
></H1
|
||||
><P
|
||||
>You may combine the Document with other documents released
|
||||
under this License, under the terms defined in section 4 above for
|
||||
@@ -103,7 +102,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -115,7 +113,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-4.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -124,7 +121,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -133,7 +129,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-6.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -149,7 +144,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>COLLECTIONS OF DOCUMENTS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-5.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-7.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-6">6. COLLECTIONS OF DOCUMENTS</H1
|
||||
NAME="gfdl-6"
|
||||
>6. COLLECTIONS OF DOCUMENTS</A
|
||||
></H1
|
||||
><P
|
||||
>You may make a collection consisting of the Document and
|
||||
other documents released under this License, and replace the
|
||||
@@ -93,7 +92,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -105,7 +103,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-5.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -114,7 +111,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -123,7 +119,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-7.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -139,7 +134,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>AGGREGATION WITH INDEPENDENT WORKS</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-6.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-8.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-7">7. AGGREGATION WITH INDEPENDENT WORKS</H1
|
||||
NAME="gfdl-7"
|
||||
>7. AGGREGATION WITH INDEPENDENT WORKS</A
|
||||
></H1
|
||||
><P
|
||||
>A compilation of the Document or its derivatives with other
|
||||
separate and independent documents or works, in or on a volume of
|
||||
@@ -97,7 +96,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -109,7 +107,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-6.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -118,7 +115,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -127,7 +123,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-8.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -143,7 +138,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>TRANSLATION</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-7.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-9.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-8">8. TRANSLATION</H1
|
||||
NAME="gfdl-8"
|
||||
>8. TRANSLATION</A
|
||||
></H1
|
||||
><P
|
||||
>Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section
|
||||
@@ -92,7 +91,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -104,7 +102,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-7.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -113,7 +110,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -122,7 +118,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-9.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -138,7 +133,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>TERMINATION</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-8.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-10.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-9">9. TERMINATION</H1
|
||||
NAME="gfdl-9"
|
||||
>9. TERMINATION</A
|
||||
></H1
|
||||
><P
|
||||
>You may not copy, modify, sublicense, or distribute the
|
||||
Document except as expressly provided for under this License. Any
|
||||
@@ -89,7 +88,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -101,7 +99,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-8.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -110,7 +107,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -119,7 +115,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-10.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -135,7 +130,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>How to use this License for your documents</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-10.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="glossary.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,13 +70,17 @@ CLASS="sect1"
|
||||
><H1
|
||||
CLASS="sect1"
|
||||
><A
|
||||
NAME="gfdl-howto">How to use this License for your documents</H1
|
||||
NAME="gfdl-howto"
|
||||
>How to use this License for your documents</A
|
||||
></H1
|
||||
><P
|
||||
>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:</P
|
||||
><A
|
||||
NAME="AEN2605"><BLOCKQUOTE
|
||||
NAME="AEN2673"
|
||||
></A
|
||||
><BLOCKQUOTE
|
||||
CLASS="BLOCKQUOTE"
|
||||
><P
|
||||
> Copyright (c) YEAR YOUR NAME.
|
||||
@@ -109,7 +110,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -121,7 +121,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-10.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -130,7 +129,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -139,7 +137,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="glossary.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -155,7 +152,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>GNU Free Documentation License</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bzhacking.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-0.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="appendix"
|
||||
><H1
|
||||
><A
|
||||
NAME="gfdl">Appendix E. GNU Free Documentation License</H1
|
||||
NAME="gfdl"
|
||||
>Appendix E. GNU Free Documentation License</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -142,7 +141,9 @@ HREF="gfdl-howto.html"
|
||||
><P
|
||||
>Version 1.1, March 2000</P
|
||||
><A
|
||||
NAME="AEN2515"><BLOCKQUOTE
|
||||
NAME="AEN2583"
|
||||
></A
|
||||
><BLOCKQUOTE
|
||||
CLASS="BLOCKQUOTE"
|
||||
><P
|
||||
>Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
@@ -156,7 +157,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -168,7 +168,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bzhacking.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -177,7 +176,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -186,7 +184,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-0.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Glossary</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -22,7 +22,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -40,7 +39,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="gfdl-howto.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -62,13 +60,17 @@ WIDTH="100%"></DIV
|
||||
CLASS="GLOSSARY"
|
||||
><H1
|
||||
><A
|
||||
NAME="glossary">Glossary</H1
|
||||
NAME="glossary"
|
||||
>Glossary</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="AEN2610">0-9, high ascii</H1
|
||||
NAME="AEN2678"
|
||||
>0-9, high ascii</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -102,7 +104,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-a">A</H1
|
||||
NAME="gloss-a"
|
||||
>A</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -135,7 +139,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-b">B</H1
|
||||
NAME="gloss-b"
|
||||
>B</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -206,12 +212,16 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-c"></H1
|
||||
NAME="gloss-c"
|
||||
></A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><A
|
||||
NAME="gloss-component"><B
|
||||
NAME="gloss-component"
|
||||
><B
|
||||
>Component</B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -224,11 +234,13 @@ NAME="gloss-component"><B
|
||||
></DD
|
||||
><DT
|
||||
><A
|
||||
NAME="gloss-cpan"><B
|
||||
NAME="gloss-cpan"
|
||||
><B
|
||||
><SPAN
|
||||
CLASS="acronym"
|
||||
>CPAN</SPAN
|
||||
></B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -256,7 +268,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-d">D</H1
|
||||
NAME="gloss-d"
|
||||
>D</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -284,7 +298,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-g"></H1
|
||||
NAME="gloss-g"
|
||||
></A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -319,12 +335,16 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-i">I</H1
|
||||
NAME="gloss-i"
|
||||
>I</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><A
|
||||
NAME="gloss-infiniteloop"><B
|
||||
NAME="gloss-infiniteloop"
|
||||
><B
|
||||
>Infinite Loop</B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -337,7 +357,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-m">M</H1
|
||||
NAME="gloss-m"
|
||||
>M</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -362,7 +384,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-p">P</H1
|
||||
NAME="gloss-p"
|
||||
>P</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -378,7 +402,9 @@ NAME="gloss-p">P</H1
|
||||
><DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN2701"><P
|
||||
NAME="AEN2769"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 1. A Sample Product</B
|
||||
></P
|
||||
@@ -443,7 +469,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-q">Q</H1
|
||||
NAME="gloss-q"
|
||||
>Q</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -482,12 +510,16 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-r">R</H1
|
||||
NAME="gloss-r"
|
||||
>R</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><A
|
||||
NAME="gloss-recursion"><B
|
||||
NAME="gloss-recursion"
|
||||
><B
|
||||
>Recursion</B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -510,7 +542,9 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-s">S</H1
|
||||
NAME="gloss-s"
|
||||
>S</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
@@ -573,12 +607,16 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-t">T</H1
|
||||
NAME="gloss-t"
|
||||
>T</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><A
|
||||
NAME="gloss-target-milestone"><B
|
||||
NAME="gloss-target-milestone"
|
||||
><B
|
||||
>Target Milestone</B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -602,12 +640,16 @@ CLASS="glossdiv"
|
||||
><H1
|
||||
CLASS="glossdiv"
|
||||
><A
|
||||
NAME="gloss-z">Z</H1
|
||||
NAME="gloss-z"
|
||||
>Z</A
|
||||
></H1
|
||||
><DL
|
||||
><DT
|
||||
><A
|
||||
NAME="zarro-boogs-found"><B
|
||||
NAME="zarro-boogs-found"
|
||||
><B
|
||||
>Zarro Boogs Found</B
|
||||
></A
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@@ -623,7 +665,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -635,7 +676,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="gfdl-howto.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -644,7 +684,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>MySQL Permissions & Grant Tables</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="dbdoc.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="granttables">C.3. MySQL Permissions & Grant Tables</H1
|
||||
NAME="granttables"
|
||||
>C.3. MySQL Permissions & Grant Tables</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -223,7 +222,7 @@ FILE,<br>
|
||||
<br>
|
||||
OR<br>
|
||||
<br>
|
||||
mysql> GRANT ALL PRIVILEGES <br>
|
||||
mysql> GRANT ALL PRIVELEGES <br>
|
||||
ON keystone.*<br>
|
||||
TO <$sys_dbuser name>@localhost<br>
|
||||
IDENTIFIED BY '(password)'<br>
|
||||
@@ -289,7 +288,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -301,7 +299,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="dbdoc.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -310,7 +307,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -319,7 +315,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -335,7 +330,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="database.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -1,431 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Groups and Group Security</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Administering Bugzilla"
|
||||
HREF="administration.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Voting"
|
||||
HREF="voting.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Bugzilla Security"
|
||||
HREF="security.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="voting.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 5. Administering Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="groups">5.5. Groups and Group Security</H1
|
||||
><P
|
||||
>Groups can be very useful in bugzilla, because they allow users
|
||||
to isolate bugs or products that should only be seen by certain people.
|
||||
Groups can also be a complicated minefield of interdependencies and
|
||||
weirdness if mismanaged.
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1521"><P
|
||||
><B
|
||||
>Example 5-5. When to Use Group Security</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1523"><P
|
||||
></P
|
||||
><P
|
||||
>Many Bugzilla sites isolate "Security-related" bugs from all
|
||||
other bugs. This way, they can have a fix ready before the security
|
||||
vulnerability is announced to the world. You can create a
|
||||
"Security" product which, by default, has no members, and only add
|
||||
members to the group (in their individual User page, as described
|
||||
under User Administration) who should have priveleged access to
|
||||
"Security" bugs. Alternately, you may create a Group independently
|
||||
of any Product, and change the Group mask on individual bugs to
|
||||
restrict access to members only of certain Groups.</P
|
||||
><P
|
||||
></P
|
||||
></DIV
|
||||
></DIV
|
||||
>
|
||||
|
||||
Groups only work if you enable the "usebuggroups" paramater. In
|
||||
addition, if the "usebuggroupsentry" parameter is "On", one can
|
||||
restrict access to products by groups, so that only members of a
|
||||
product group are able to view bugs within that product. Group security
|
||||
in Bugzilla can be divided into two categories: Generic and
|
||||
Product-Based.</P
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="note"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/note.gif"
|
||||
HSPACE="5"
|
||||
ALT="Note"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Groups in Bugzilla are a complicated beast that evolved out of
|
||||
very simple user permission bitmasks, apparently itself derived from
|
||||
common concepts in UNIX access controls. A "bitmask" is a
|
||||
fixed-length number whose value can describe one, and only one, set
|
||||
of states. For instance, UNIX file permissions are assigned bitmask
|
||||
values: "execute" has a value of 1, "write" has a value of 2, and
|
||||
"read" has a value of 4. Add them together, and a file can be read,
|
||||
written to, and executed if it has a bitmask of "7". (This is a
|
||||
simplified example -- anybody who knows UNIX security knows there is
|
||||
much more to it than this. Please bear with me for the purpose of
|
||||
this note.) The only way a bitmask scheme can work is by doubling the
|
||||
bit count for each value. Thus if UNIX wanted to offer another file
|
||||
permission, the next would have to be a value of 8, then the next 16,
|
||||
the next 32, etc.</P
|
||||
><P
|
||||
>Similarly, Bugzilla offers a bitmask to define group
|
||||
permissions, with an internal limit of 64. Several are already
|
||||
occupied by built-in permissions. The way around this limitation is
|
||||
to avoid assigning groups to products if you have many products,
|
||||
avoid bloating of group lists, and religiously prune irrelevant
|
||||
groups. In reality, most installations of Bugzilla support far fewer
|
||||
than 64 groups, so this limitation has not hit for most sites, but it
|
||||
is on the table to be revised for Bugzilla 3.0 because it interferes
|
||||
with the security schemes of some administrators.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
><P
|
||||
>To enable Generic Group Security ("usebuggroups"):</P
|
||||
><P
|
||||
></P
|
||||
><OL
|
||||
TYPE="1"
|
||||
><LI
|
||||
><P
|
||||
>Turn "On" "usebuggroups" in the "Edit Parameters"
|
||||
screen.</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>You will generally have no groups set up. Select the "groups"
|
||||
link in the footer.</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Take a moment to understand the instructions on the "Edit
|
||||
Groups" screen. Once you feel confident you understand what is
|
||||
expected of you, select the "Add Group" link.</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Fill out the "New Name" (remember, no spaces!), "New
|
||||
Description", and "New User RegExp" fields. "New User RegExp"
|
||||
allows you to automatically place all users who fulfill the Regular
|
||||
Expression into the new group.
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1538"><P
|
||||
><B
|
||||
>Example 5-6. Creating a New Group</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1540"><P
|
||||
></P
|
||||
><P
|
||||
>I created a group called DefaultGroup with a description
|
||||
of
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"This is simply a group to play with"</SPAN
|
||||
>
|
||||
|
||||
, and a New User RegExp of
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>".*@mydomain.tld"</SPAN
|
||||
>
|
||||
|
||||
. This new group automatically includes all Bugzilla users with
|
||||
"@mydomain.tld" at the end of their user id. When I finished,
|
||||
my new group was assigned bit #128.</P
|
||||
><P
|
||||
></P
|
||||
></DIV
|
||||
></DIV
|
||||
>
|
||||
|
||||
When you have finished, select the Add button.</P
|
||||
></LI
|
||||
></OL
|
||||
><P
|
||||
>To enable Product-Based Group Security
|
||||
(usebuggroupsentry):</P
|
||||
><DIV
|
||||
CLASS="warning"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="warning"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/warning.gif"
|
||||
HSPACE="5"
|
||||
ALT="Warning"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>Don't forget that you only have 64 groups masks available,
|
||||
total, for your installation of Bugzilla! If you plan on having more
|
||||
than 50 products in your individual Bugzilla installation, and
|
||||
require group security for your products, you should consider either
|
||||
running multiple Bugzillas or using Generic Group Security instead of
|
||||
Product-Based ("usebuggroupsentry") Group Security.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
><P
|
||||
></P
|
||||
><OL
|
||||
TYPE="1"
|
||||
><LI
|
||||
><P
|
||||
>Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
|
||||
Parameters" screen.</P
|
||||
><DIV
|
||||
CLASS="warning"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="warning"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/warning.gif"
|
||||
HSPACE="5"
|
||||
ALT="Warning"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>"usebuggroupsentry" has the capacity to prevent the
|
||||
administrative user from directly altering bugs because of
|
||||
conflicting group permissions. If you plan on using
|
||||
"usebuggroupsentry", you should plan on restricting
|
||||
administrative account usage to administrative duties only. In
|
||||
other words, manage bugs with an unpriveleged user account, and
|
||||
manage users, groups, Products, etc. with the administrative
|
||||
account.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>You will generally have no Groups set up, unless you enabled
|
||||
"usebuggroupsentry" prior to creating any Products. To create
|
||||
"Generic Group Security" groups, follow the instructions given
|
||||
above. To create Product-Based Group security, simply follow the
|
||||
instructions for creating a new Product. If you need to add users
|
||||
to these new groups as you create them, you will find the option to
|
||||
add them to the group available under the "Edit User"
|
||||
screens.</P
|
||||
></LI
|
||||
></OL
|
||||
><P
|
||||
>You may find this example illustrative for how bug groups work.
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1555"><P
|
||||
><B
|
||||
>Example 5-7. Bugzilla Groups</B
|
||||
></P
|
||||
><P
|
||||
CLASS="literallayout"
|
||||
>Bugzilla Groups example ----------------------- For<br>
|
||||
this example, let us suppose we have four groups, call them Group1,<br>
|
||||
Group2, Group3, and Group4. We have 5 users, User1, User2, User3,<br>
|
||||
User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is<br>
|
||||
defined by this chart: (X denotes that user is in that group.) (I<br>
|
||||
apologize for the nasty formatting of this table. Try viewing it in a<br>
|
||||
text-based browser or something for now. -MPB) G G G G r r r r o o o<br>
|
||||
o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|<br>
|
||||
|X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+<br>
|
||||
User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:<br>
|
||||
(X denotes that bug is restricted to that group.) G G G G r r r r o o<br>
|
||||
o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|<br>
|
||||
|X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+<br>
|
||||
Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |<br>
|
||||
+-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no<br>
|
||||
group restrictions. Therefore, Bug1 can be seen by any user, whatever<br>
|
||||
their group membership. This is going to be the only bug that User5<br>
|
||||
can see, because User5 isn't in any groups. Bug2 can be seen by<br>
|
||||
anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone<br>
|
||||
in Group3, that is User3 and User4. Bug4 can be seen by anyone in<br>
|
||||
Group4. Nobody is in Group4, so none of these users can see Bug4.<br>
|
||||
Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This<br>
|
||||
is only User4. User1 cannot see it because he is not in Group2, and<br>
|
||||
User2 cannot see it because she is not in Group1. Bug6 can be seen by<br>
|
||||
anyone who is in both Group1 and Group3. This would include User3 and<br>
|
||||
User4. Similar to Bug5, User1 cannot see Bug6 because he is not in<br>
|
||||
Group3. Bug7 can be seen by anyone who is in Group1, Group2, and<br>
|
||||
Group3. This is only User4. All of the others are missing at least<br>
|
||||
one of those group privileges, and thus cannot see the bug. Bug8 can<br>
|
||||
be seen by anyone who is in Group1, Group2, Group3, and Group4. There<br>
|
||||
is nobody in all four of these groups, so nobody can see Bug8. It<br>
|
||||
doesn't matter that User4 is in Group1, Group2, and Group3, since he<br>
|
||||
isn't in Group4.</P
|
||||
></DIV
|
||||
>
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="voting.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Voting</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Bugzilla Security</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -1,296 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Hints and Tips</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Using Bugzilla"
|
||||
HREF="using.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="How do I use Bugzilla?"
|
||||
HREF="how.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="User Preferences"
|
||||
HREF="userpreferences.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 3. Using Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="userpreferences.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="hintsandtips">3.2. Hints and Tips</H1
|
||||
><P
|
||||
>This section distills some Bugzilla tips and best practices
|
||||
that have been developed.</P
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN434">3.2.1. Autolinkification</H2
|
||||
><P
|
||||
>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
|
||||
<A
|
||||
HREF="http://www.bugzilla.org"
|
||||
TARGET="_top"
|
||||
>http://www.bugzilla.org</A
|
||||
>.
|
||||
Other strings which get linkified in the obvious manner are:
|
||||
<P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
><TBODY
|
||||
><TR
|
||||
><TD
|
||||
>bug 12345</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
>bug 23456, comment 53</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
>attachment 4321</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
>mailto:george@example.com</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
>ftp://ftp.mozilla.org</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
>Most other sorts of URL</TD
|
||||
></TR
|
||||
></TBODY
|
||||
></TABLE
|
||||
><P
|
||||
></P
|
||||
>
|
||||
</P
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="quicksearch">3.2.2. Quicksearch</H2
|
||||
><P
|
||||
>Quicksearch is a single-text-box query tool which uses
|
||||
metacharacters to indicate what is to be searched. For example, typing
|
||||
"foo|bar" into Quicksearch would search for "foo" or "bar" in the
|
||||
summary and status whiteboard of a bug; adding ":BazProduct" would
|
||||
search only in that product.
|
||||
</P
|
||||
><P
|
||||
>You'll find the Quicksearch box on Bugzilla's
|
||||
front page, along with a
|
||||
<A
|
||||
HREF="../../quicksearch.html"
|
||||
TARGET="_top"
|
||||
>Help</A
|
||||
>
|
||||
link which details how to use it.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="commenting">3.2.3. Comments</H2
|
||||
><P
|
||||
>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 sets 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.
|
||||
</P
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="attachments">3.2.4. Attachments</H2
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
><P
|
||||
>Trim screenshots. There's no need to show the whole screen if
|
||||
you are pointing out a single-pixel problem.
|
||||
</P
|
||||
><P
|
||||
>Don't attach simple test cases (e.g. one html file and one
|
||||
css file and one 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.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN460">3.2.5. Filing Bugs</H2
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
><P
|
||||
> 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.
|
||||
</P
|
||||
><P
|
||||
>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.
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="userpreferences.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>How do I use Bugzilla?</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>User Preferences</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
||||
>The Bugzilla Guide</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="About This Guide"
|
||||
@@ -37,42 +37,180 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="BOOK"
|
||||
><A
|
||||
NAME="index"><DIV
|
||||
NAME="index"
|
||||
></A
|
||||
><DIV
|
||||
CLASS="TITLEPAGE"
|
||||
><H1
|
||||
CLASS="title"
|
||||
><A
|
||||
NAME="AEN2">The Bugzilla Guide</H1
|
||||
NAME="AEN2"
|
||||
>The Bugzilla Guide</A
|
||||
></H1
|
||||
><H3
|
||||
CLASS="author"
|
||||
><A
|
||||
NAME="AEN5">Matthew P. Barnson</H3
|
||||
NAME="AEN27"
|
||||
>Matthew P. Barnson</A
|
||||
></H3
|
||||
><DIV
|
||||
CLASS="affiliation"
|
||||
><DIV
|
||||
CLASS="address"
|
||||
><P
|
||||
CLASS="address"
|
||||
>mbarnson@sisna.com</P
|
||||
>barnboy@trilobyte.net</P
|
||||
></DIV
|
||||
></DIV
|
||||
><SPAN
|
||||
CLASS="collab"
|
||||
><SPAN
|
||||
CLASS="collabname"
|
||||
>Zach Lipton</SPAN
|
||||
><DIV
|
||||
CLASS="affiliation"
|
||||
><DIV
|
||||
CLASS="address"
|
||||
><P
|
||||
CLASS="address"
|
||||
>zach AT zachlipton DOT com</P
|
||||
></DIV
|
||||
></DIV
|
||||
><BR></SPAN
|
||||
><DIV
|
||||
CLASS="revhistory"
|
||||
><TABLE
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TH
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
COLSPAN="3"
|
||||
><B
|
||||
>Revision History</B
|
||||
></TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revision v2.11</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>20 December 2000</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revised by: MPB</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
COLSPAN="3"
|
||||
>Converted the README, FAQ, and DATABASE information into
|
||||
SGML docbook format.</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revision 2.11.1</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>06 March 2001</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revised by: MPB</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
COLSPAN="3"
|
||||
>Took way too long to revise this for 2.12 release. Updated
|
||||
FAQ to use qandaset tags instead of literallayout, cleaned
|
||||
up administration section, added User Guide section,
|
||||
miscellaneous FAQ updates and third-party integration
|
||||
information. From this point on all new tags are lowercase
|
||||
in preparation for the 2.13 release of the Guide in XML
|
||||
format instead of SGML.</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revision 2.12.0</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>24 April 2001</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revised by: MPB</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
COLSPAN="3"
|
||||
>Things fixed this release: Elaborated on queryhelp
|
||||
interface, added FAQ regarding moving bugs from one keyword
|
||||
to another, clarified possible problems with the Landfill
|
||||
tutorial, fixed a boatload of typos and unclear sentence
|
||||
structures. Incorporated the README into the UNIX
|
||||
installation section, and changed the README to indicate the
|
||||
deprecated status. Things I know need work: Used
|
||||
"simplelist" a lot, where I should have used "procedure" to
|
||||
tag things. Need to lowercase all tags to be XML compliant.</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revision 2.14.0</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>07 August 2001</TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
>Revised by: MPB</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
COLSPAN="3"
|
||||
>Attempted to integrate relevant portions of the UNIX and
|
||||
Windows installation instructions, moved some data from FAQ
|
||||
to Install, removed references to README from text, added
|
||||
Mac OS X install instructions, fixed a bunch
|
||||
of tpyos (Mark Harig), linked text that referenced other
|
||||
parts of the Guide, and nuked the old MySQL permissions
|
||||
section.</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
><DIV
|
||||
><DIV
|
||||
CLASS="abstract"
|
||||
><A
|
||||
NAME="AEN12"><P
|
||||
NAME="AEN39"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> This is the documentation for Bugzilla, the mozilla.org
|
||||
> This is the documentation for Bugzilla, the Mozilla
|
||||
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.
|
||||
</P
|
||||
><P
|
||||
> This documentation is maintained in DocBook 4.1.2 XML format.
|
||||
Changes are best submitted as plain text or SGML diffs, attached
|
||||
to a Bugzilla bug.
|
||||
> Bugzilla is an enterprise-class set of software utilities
|
||||
that, when used together, power issue-tracking for hundreds of
|
||||
organizations around the world, tracking millions of bugs.
|
||||
While it is easy to use and quite flexible, it is
|
||||
difficult for a novice to install and maintain. Although we
|
||||
have provided step-by-step directions, Bugzilla is not always
|
||||
easy to get working. Please be sure the person responsible
|
||||
for installing and maintaining this software is a qualified
|
||||
professional for the operating system upon which you install
|
||||
Bugzilla.
|
||||
</P
|
||||
><P
|
||||
> THIS DOCUMENTATION IS MAINTAINED IN DOCBOOK 4.1.2 XML FORMAT.
|
||||
IF YOU WISH TO MAKE CORRECTIONS, PLEASE MAKE THEM IN PLAIN
|
||||
TEXT OR SGML DIFFS AGAINST THE SOURCE. I CANNOT ACCEPT
|
||||
ADDITIONS TO THE GUIDE WRITTEN IN HTML!
|
||||
</P
|
||||
><P
|
||||
></P
|
||||
@@ -120,11 +258,21 @@ HREF="credits.html"
|
||||
></DT
|
||||
><DT
|
||||
>1.6. <A
|
||||
HREF="contributors.html"
|
||||
>Contributors</A
|
||||
></DT
|
||||
><DT
|
||||
>1.7. <A
|
||||
HREF="feedback.html"
|
||||
>Feedback</A
|
||||
></DT
|
||||
><DT
|
||||
>1.8. <A
|
||||
HREF="translations.html"
|
||||
>Translations</A
|
||||
></DT
|
||||
><DT
|
||||
>1.7. <A
|
||||
>1.9. <A
|
||||
HREF="conventions.html"
|
||||
>Document Conventions</A
|
||||
></DT
|
||||
@@ -152,11 +300,87 @@ HREF="why.html"
|
||||
HREF="how.html"
|
||||
>How do I use Bugzilla?</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.3.1. <A
|
||||
HREF="how.html#myaccount"
|
||||
>Create a Bugzilla Account</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.2. <A
|
||||
HREF="how.html#query"
|
||||
>The Bugzilla Query Page</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.3. <A
|
||||
HREF="how.html#bugreports"
|
||||
>Creating and Managing Bug Reports</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.3.3.1. <A
|
||||
HREF="how.html#bug-writing"
|
||||
>Writing a Great Bug Report</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.3.2. <A
|
||||
HREF="how.html#bug-manage"
|
||||
>Managing your Bug Reports</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>2.4. <A
|
||||
HREF="init4me.html"
|
||||
>Where can I find my user preferences?</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.4.1. <A
|
||||
HREF="init4me.html#accountsettings"
|
||||
>Account Settings</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.2. <A
|
||||
HREF="init4me.html#emailsettings"
|
||||
>Email Settings</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.4.2.1. <A
|
||||
HREF="init4me.html#notification"
|
||||
>Email Notification</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.2.2. <A
|
||||
HREF="init4me.html#newemailtech"
|
||||
>New Email Technology</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.2.3. <A
|
||||
HREF="init4me.html#watchsettings"
|
||||
>"Watching" Users</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>2.4.3. <A
|
||||
HREF="init4me.html#footersettings"
|
||||
>Page Footer</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.4. <A
|
||||
HREF="init4me.html#permissionsettings"
|
||||
>Permissions</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>2.5. <A
|
||||
HREF="usingbz-conc.html"
|
||||
@@ -181,6 +405,108 @@ HREF="errata.html"
|
||||
HREF="stepbystep.html"
|
||||
>Step-by-step Install</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>3.2.1. <A
|
||||
HREF="stepbystep.html#AEN509"
|
||||
>Introduction</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.2. <A
|
||||
HREF="stepbystep.html#AEN515"
|
||||
>Installing the Prerequisites</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.3. <A
|
||||
HREF="stepbystep.html#install-mysql"
|
||||
>Installing MySQL Database</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.4. <A
|
||||
HREF="stepbystep.html#install-perl"
|
||||
>Perl (5.004 or greater)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.5. <A
|
||||
HREF="stepbystep.html#AEN602"
|
||||
>DBI Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.6. <A
|
||||
HREF="stepbystep.html#AEN640"
|
||||
>Data::Dumper Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.7. <A
|
||||
HREF="stepbystep.html#AEN645"
|
||||
>MySQL related Perl Module Collection</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.8. <A
|
||||
HREF="stepbystep.html#AEN654"
|
||||
>TimeDate Perl Module Collection</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.9. <A
|
||||
HREF="stepbystep.html#AEN658"
|
||||
>GD Perl Module (1.8.3)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.10. <A
|
||||
HREF="stepbystep.html#AEN667"
|
||||
>Chart::Base Perl Module (0.99c)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.11. <A
|
||||
HREF="stepbystep.html#AEN671"
|
||||
>DB_File Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.12. <A
|
||||
HREF="stepbystep.html#AEN674"
|
||||
>HTTP Server</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.13. <A
|
||||
HREF="stepbystep.html#AEN692"
|
||||
>Installing the Bugzilla Files</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.14. <A
|
||||
HREF="stepbystep.html#AEN721"
|
||||
>Setting Up the MySQL Database</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.15. <A
|
||||
HREF="stepbystep.html#AEN768"
|
||||
>Tweaking <TT
|
||||
CLASS="filename"
|
||||
>localconfig</TT
|
||||
></A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.16. <A
|
||||
HREF="stepbystep.html#AEN806"
|
||||
>Setting Up Maintainers Manually (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.17. <A
|
||||
HREF="stepbystep.html#AEN817"
|
||||
>The Whining Cron (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.18. <A
|
||||
HREF="stepbystep.html#AEN827"
|
||||
>Bug Graphs (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.19. <A
|
||||
HREF="stepbystep.html#AEN839"
|
||||
>Securing MySQL</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>3.3. <A
|
||||
HREF="osx.html"
|
||||
@@ -196,11 +522,70 @@ HREF="bsdinstall.html"
|
||||
HREF="geninstall.html"
|
||||
>Installation General Notes</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>3.5.1. <A
|
||||
HREF="geninstall.html#AEN941"
|
||||
>Modifying Your Running System</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.2. <A
|
||||
HREF="geninstall.html#AEN948"
|
||||
>Upgrading From Previous Versions</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.3. <A
|
||||
HREF="geninstall.html#htaccess"
|
||||
><TT
|
||||
CLASS="filename"
|
||||
>.htaccess</TT
|
||||
> files and security</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.4. <A
|
||||
HREF="geninstall.html#mod-throttle"
|
||||
><TT
|
||||
CLASS="filename"
|
||||
>mod_throttle</TT
|
||||
> and Security</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.5. <A
|
||||
HREF="geninstall.html#content-type"
|
||||
>Preventing untrusted Bugzilla content from executing malicious Javascript code</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.6. <A
|
||||
HREF="geninstall.html#unixhistory"
|
||||
>UNIX Installation Instructions History</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>3.6. <A
|
||||
HREF="win32.html"
|
||||
>Win32 Installation Notes</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>3.6.1. <A
|
||||
HREF="win32.html#wininstall"
|
||||
>Win32 Installation: Step-by-step</A
|
||||
></DT
|
||||
><DT
|
||||
>3.6.2. <A
|
||||
HREF="win32.html#addlwintips"
|
||||
>Additional Windows Tips</A
|
||||
></DT
|
||||
><DT
|
||||
>3.6.3. <A
|
||||
HREF="win32.html#bzldap"
|
||||
>Bugzilla LDAP Integration</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
@@ -220,12 +605,84 @@ HREF="postinstall-check.html"
|
||||
HREF="useradmin.html"
|
||||
>User Administration</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.2.1. <A
|
||||
HREF="useradmin.html#defaultuser"
|
||||
>Creating the Default User</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2. <A
|
||||
HREF="useradmin.html#manageusers"
|
||||
>Managing Other Users</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.2.2.1. <A
|
||||
HREF="useradmin.html#login"
|
||||
>Logging In</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.2. <A
|
||||
HREF="useradmin.html#createnewusers"
|
||||
>Creating new users</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.3. <A
|
||||
HREF="useradmin.html#disableusers"
|
||||
>Disabling Users</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2.4. <A
|
||||
HREF="useradmin.html#modifyusers"
|
||||
>Modifying Users</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.3. <A
|
||||
HREF="programadmin.html"
|
||||
>Product, Component, Milestone, and Version
|
||||
Administration</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.3.1. <A
|
||||
HREF="programadmin.html#products"
|
||||
>Products</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.2. <A
|
||||
HREF="programadmin.html#components"
|
||||
>Components</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.3. <A
|
||||
HREF="programadmin.html#versions"
|
||||
>Versions</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.4. <A
|
||||
HREF="programadmin.html#milestones"
|
||||
>Milestones</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.5. <A
|
||||
HREF="programadmin.html#voting"
|
||||
>Voting</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.6. <A
|
||||
HREF="programadmin.html#groups"
|
||||
>Groups and Group Security</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.4. <A
|
||||
HREF="security.html"
|
||||
@@ -264,38 +721,43 @@ HREF="tinderbox.html"
|
||||
></DD
|
||||
><DT
|
||||
>6. <A
|
||||
HREF="future.html"
|
||||
>The Future of Bugzilla</A
|
||||
></DT
|
||||
><DT
|
||||
>7. <A
|
||||
HREF="variants.html"
|
||||
>Bugzilla Variants and Competitors</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>6.1. <A
|
||||
>7.1. <A
|
||||
HREF="rhbugzilla.html"
|
||||
>Red Hat Bugzilla</A
|
||||
></DT
|
||||
><DT
|
||||
>6.2. <A
|
||||
>7.2. <A
|
||||
HREF="variant-fenris.html"
|
||||
>Loki Bugzilla (Fenris)</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3. <A
|
||||
>7.3. <A
|
||||
HREF="variant-issuezilla.html"
|
||||
>Issuezilla</A
|
||||
></DT
|
||||
><DT
|
||||
>6.4. <A
|
||||
>7.4. <A
|
||||
HREF="variant-scarab.html"
|
||||
>Scarab</A
|
||||
></DT
|
||||
><DT
|
||||
>6.5. <A
|
||||
>7.5. <A
|
||||
HREF="variant-perforce.html"
|
||||
>Perforce SCM</A
|
||||
></DT
|
||||
><DT
|
||||
>6.6. <A
|
||||
>7.6. <A
|
||||
HREF="variant-sourceforge.html"
|
||||
>SourceForge</A
|
||||
></DT
|
||||
@@ -328,6 +790,24 @@ HREF="dbschema.html"
|
||||
HREF="dbdoc.html"
|
||||
>MySQL Bugzilla Database Introduction</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>C.2.1. <A
|
||||
HREF="dbdoc.html#AEN2340"
|
||||
>Bugzilla Database Basics</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>C.2.1.1. <A
|
||||
HREF="dbdoc.html#AEN2369"
|
||||
>Bugzilla Database Tables</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>C.3. <A
|
||||
HREF="granttables.html"
|
||||
@@ -370,6 +850,20 @@ HREF="quicksearch.html"
|
||||
HREF="bzhacking.html"
|
||||
>Hacking Bugzilla</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>D.5.1. <A
|
||||
HREF="bzhacking.html#AEN2504"
|
||||
>Things that have caused problems and should be avoided</A
|
||||
></DT
|
||||
><DT
|
||||
>D.5.2. <A
|
||||
HREF="bzhacking.html#AEN2518"
|
||||
>Coding Style for Bugzilla</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
@@ -457,75 +951,79 @@ CLASS="LOT"
|
||||
>List of Examples</B
|
||||
></DT
|
||||
><DT
|
||||
>2-1. <A
|
||||
HREF="how.html#AEN307"
|
||||
>Some Famous Software Versions</A
|
||||
></DT
|
||||
><DT
|
||||
>2-2. <A
|
||||
HREF="how.html#AEN317"
|
||||
>Mozilla's Bugzilla Components</A
|
||||
></DT
|
||||
><DT
|
||||
>3-1. <A
|
||||
HREF="stepbystep.html#AEN641"
|
||||
HREF="stepbystep.html#AEN708"
|
||||
>Setting up bonsaitools symlink</A
|
||||
></DT
|
||||
><DT
|
||||
>3-2. <A
|
||||
HREF="stepbystep.html#AEN732"
|
||||
HREF="stepbystep.html#AEN799"
|
||||
>Running checksetup.pl as the web user</A
|
||||
></DT
|
||||
><DT
|
||||
>3-3. <A
|
||||
HREF="win32.html#AEN985"
|
||||
HREF="win32.html#AEN1048"
|
||||
>Installing ActivePerl ppd Modules on Microsoft Windows</A
|
||||
></DT
|
||||
><DT
|
||||
>3-4. <A
|
||||
HREF="win32.html#AEN998"
|
||||
>Installing OpenInteract ppd Modules manually on Microsoft
|
||||
Windows</A
|
||||
></DT
|
||||
><DT
|
||||
>3-5. <A
|
||||
HREF="win32.html#AEN1180"
|
||||
HREF="win32.html#AEN1233"
|
||||
>Removing encrypt() for Windows NT Bugzilla version
|
||||
2.12 or earlier</A
|
||||
></DT
|
||||
><DT
|
||||
>4-1. <A
|
||||
HREF="programadmin.html#AEN1405"
|
||||
HREF="programadmin.html#AEN1470"
|
||||
>Creating some Components</A
|
||||
></DT
|
||||
><DT
|
||||
>4-2. <A
|
||||
HREF="programadmin.html#AEN1434"
|
||||
HREF="programadmin.html#AEN1499"
|
||||
>Common Use of Versions</A
|
||||
></DT
|
||||
><DT
|
||||
>4-3. <A
|
||||
HREF="programadmin.html#AEN1438"
|
||||
HREF="programadmin.html#AEN1503"
|
||||
>A Different Use of Versions</A
|
||||
></DT
|
||||
><DT
|
||||
>4-4. <A
|
||||
HREF="programadmin.html#AEN1466"
|
||||
HREF="programadmin.html#AEN1531"
|
||||
>Using SortKey with Target Milestone</A
|
||||
></DT
|
||||
><DT
|
||||
>4-5. <A
|
||||
HREF="programadmin.html#AEN1502"
|
||||
HREF="programadmin.html#AEN1567"
|
||||
>When to Use Group Security</A
|
||||
></DT
|
||||
><DT
|
||||
>4-6. <A
|
||||
HREF="programadmin.html#AEN1519"
|
||||
HREF="programadmin.html#AEN1584"
|
||||
>Creating a New Group</A
|
||||
></DT
|
||||
><DT
|
||||
>4-7. <A
|
||||
HREF="programadmin.html#AEN1536"
|
||||
HREF="programadmin.html#AEN1601"
|
||||
>Bugzilla Groups</A
|
||||
></DT
|
||||
><DT
|
||||
>D-1. <A
|
||||
HREF="setperl.html#AEN2380"
|
||||
HREF="setperl.html#AEN2448"
|
||||
>Using Setperl to set your perl path</A
|
||||
></DT
|
||||
><DT
|
||||
>1. <A
|
||||
HREF="glossary.html#AEN2701"
|
||||
HREF="glossary.html#AEN2769"
|
||||
>A Sample Product</A
|
||||
></DT
|
||||
></DL
|
||||
@@ -536,7 +1034,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -558,7 +1055,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Where can I find my user preferences?</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="usingbz-conc.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="init4me">2.4. Where can I find my user preferences?</H1
|
||||
NAME="init4me"
|
||||
>2.4. Where can I find my user preferences?</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
@@ -116,7 +115,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="accountsettings">2.4.1. Account Settings</H2
|
||||
NAME="accountsettings"
|
||||
>2.4.1. Account Settings</A
|
||||
></H2
|
||||
><P
|
||||
> On this page, you can change your basic Account Settings,
|
||||
including your password and full name. For security reasons,
|
||||
@@ -149,13 +150,17 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="emailsettings">2.4.2. Email Settings</H2
|
||||
NAME="emailsettings"
|
||||
>2.4.2. Email Settings</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="notification">2.4.2.1. Email Notification</H3
|
||||
NAME="notification"
|
||||
>2.4.2.1. Email Notification</A
|
||||
></H3
|
||||
><P
|
||||
> Here you can reduce or increase the amount of email sent you
|
||||
from Bugzilla. Although this is referred to as
|
||||
@@ -187,7 +192,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="newemailtech">2.4.2.2. New Email Technology</H3
|
||||
NAME="newemailtech"
|
||||
>2.4.2.2. New Email Technology</A
|
||||
></H3
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -240,7 +247,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="watchsettings">2.4.2.3. "Watching" Users</H3
|
||||
NAME="watchsettings"
|
||||
>2.4.2.3. "Watching" Users</A
|
||||
></H3
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -289,7 +298,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="footersettings">2.4.3. Page Footer</H2
|
||||
NAME="footersettings"
|
||||
>2.4.3. Page Footer</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -373,7 +384,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="permissionsettings">2.4.4. Permissions</H2
|
||||
NAME="permissionsettings"
|
||||
>2.4.4. Permissions</A
|
||||
></H2
|
||||
><P
|
||||
> This is a purely informative page which outlines your current
|
||||
permissions on this installation of Bugzilla. If you have
|
||||
@@ -389,7 +402,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -401,7 +413,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -410,7 +421,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -419,7 +429,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="usingbz-conc.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -435,7 +444,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Installation</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="usingbz-conc.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="errata.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="installation">Chapter 3. Installation</H1
|
||||
NAME="installation"
|
||||
>Chapter 3. Installation</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -91,12 +90,12 @@ HREF="stepbystep.html"
|
||||
><DL
|
||||
><DT
|
||||
>3.2.1. <A
|
||||
HREF="stepbystep.html#AEN441"
|
||||
HREF="stepbystep.html#AEN509"
|
||||
>Introduction</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.2. <A
|
||||
HREF="stepbystep.html#AEN447"
|
||||
HREF="stepbystep.html#AEN515"
|
||||
>Installing the Prerequisites</A
|
||||
></DT
|
||||
><DT
|
||||
@@ -111,57 +110,57 @@ HREF="stepbystep.html#install-perl"
|
||||
></DT
|
||||
><DT
|
||||
>3.2.5. <A
|
||||
HREF="stepbystep.html#AEN534"
|
||||
HREF="stepbystep.html#AEN602"
|
||||
>DBI Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.6. <A
|
||||
HREF="stepbystep.html#AEN572"
|
||||
HREF="stepbystep.html#AEN640"
|
||||
>Data::Dumper Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.7. <A
|
||||
HREF="stepbystep.html#AEN577"
|
||||
HREF="stepbystep.html#AEN645"
|
||||
>MySQL related Perl Module Collection</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.8. <A
|
||||
HREF="stepbystep.html#AEN586"
|
||||
HREF="stepbystep.html#AEN654"
|
||||
>TimeDate Perl Module Collection</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.9. <A
|
||||
HREF="stepbystep.html#AEN590"
|
||||
HREF="stepbystep.html#AEN658"
|
||||
>GD Perl Module (1.8.3)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.10. <A
|
||||
HREF="stepbystep.html#AEN599"
|
||||
HREF="stepbystep.html#AEN667"
|
||||
>Chart::Base Perl Module (0.99c)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.11. <A
|
||||
HREF="stepbystep.html#AEN603"
|
||||
HREF="stepbystep.html#AEN671"
|
||||
>DB_File Perl Module</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.12. <A
|
||||
HREF="stepbystep.html#AEN606"
|
||||
HREF="stepbystep.html#AEN674"
|
||||
>HTTP Server</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.13. <A
|
||||
HREF="stepbystep.html#AEN625"
|
||||
HREF="stepbystep.html#AEN692"
|
||||
>Installing the Bugzilla Files</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.14. <A
|
||||
HREF="stepbystep.html#AEN654"
|
||||
HREF="stepbystep.html#AEN721"
|
||||
>Setting Up the MySQL Database</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.15. <A
|
||||
HREF="stepbystep.html#AEN701"
|
||||
HREF="stepbystep.html#AEN768"
|
||||
>Tweaking <TT
|
||||
CLASS="filename"
|
||||
>localconfig</TT
|
||||
@@ -169,22 +168,22 @@ CLASS="filename"
|
||||
></DT
|
||||
><DT
|
||||
>3.2.16. <A
|
||||
HREF="stepbystep.html#AEN739"
|
||||
HREF="stepbystep.html#AEN806"
|
||||
>Setting Up Maintainers Manually (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.17. <A
|
||||
HREF="stepbystep.html#AEN750"
|
||||
HREF="stepbystep.html#AEN817"
|
||||
>The Whining Cron (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.18. <A
|
||||
HREF="stepbystep.html#AEN760"
|
||||
HREF="stepbystep.html#AEN827"
|
||||
>Bug Graphs (Optional)</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2.19. <A
|
||||
HREF="stepbystep.html#AEN772"
|
||||
HREF="stepbystep.html#AEN839"
|
||||
>Securing MySQL</A
|
||||
></DT
|
||||
></DL
|
||||
@@ -208,12 +207,12 @@ HREF="geninstall.html"
|
||||
><DL
|
||||
><DT
|
||||
>3.5.1. <A
|
||||
HREF="geninstall.html#AEN874"
|
||||
HREF="geninstall.html#AEN941"
|
||||
>Modifying Your Running System</A
|
||||
></DT
|
||||
><DT
|
||||
>3.5.2. <A
|
||||
HREF="geninstall.html#AEN881"
|
||||
HREF="geninstall.html#AEN948"
|
||||
>Upgrading From Previous Versions</A
|
||||
></DT
|
||||
><DT
|
||||
@@ -283,7 +282,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -295,7 +293,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="usingbz-conc.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -304,7 +301,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -313,7 +309,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="errata.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Integrating Bugzilla with Third-Party Tools</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bonsai.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="integration">Chapter 5. Integrating Bugzilla with Third-Party Tools</H1
|
||||
NAME="integration"
|
||||
>Chapter 5. Integrating Bugzilla with Third-Party Tools</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -105,7 +104,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -117,7 +115,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -126,7 +123,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -135,7 +131,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bonsai.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Introduction</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Document Conventions"
|
||||
HREF="conventions.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="What is Bugzilla?"
|
||||
HREF="whatis.html"></HEAD
|
||||
><BODY
|
||||
CLASS="chapter"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="introduction">Chapter 2. Introduction</H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
>Table of Contents</B
|
||||
></DT
|
||||
><DT
|
||||
>2.1. <A
|
||||
HREF="whatis.html"
|
||||
>What is Bugzilla?</A
|
||||
></DT
|
||||
><DT
|
||||
>2.2. <A
|
||||
HREF="why.html"
|
||||
>Why Should We Use Bugzilla?</A
|
||||
></DT
|
||||
></DL
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Document Conventions</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>What is Bugzilla?</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>New Versions</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="disclaimer.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,9 +70,11 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="newversions">1.4. New Versions</H1
|
||||
NAME="newversions"
|
||||
>1.4. New Versions</A
|
||||
></H1
|
||||
><P
|
||||
> This is the 2.16 version of The Bugzilla Guide. If you are
|
||||
> This is the 2.14 version of The Bugzilla Guide. 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.
|
||||
@@ -90,9 +89,18 @@ NAME="newversions">1.4. New Versions</H1
|
||||
><LI
|
||||
><P
|
||||
> <A
|
||||
HREF="http://www.bugzilla.org/"
|
||||
HREF="http://www.trilobyte.net/barnsons/"
|
||||
TARGET="_top"
|
||||
>bugzilla.org</A
|
||||
>TriloBYTE</A
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> <A
|
||||
HREF="http://www.mozilla.org/projects/bugzilla/"
|
||||
TARGET="_top"
|
||||
>Mozilla.org</A
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
@@ -115,10 +123,7 @@ TARGET="_top"
|
||||
HREF="http://www.mozilla.org/cvs.html"
|
||||
TARGET="_top"
|
||||
>the Mozilla CVS page</A
|
||||
>, and check out the <TT
|
||||
CLASS="filename"
|
||||
>mozilla/webtools/bugzilla/docs/</TT
|
||||
> branch.
|
||||
>, and check out the mozilla/webtools/bugzilla/docs/ branch.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
@@ -126,7 +131,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -138,7 +142,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="disclaimer.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -147,7 +150,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -156,7 +158,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -172,7 +173,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Mac OS X Installation Notes</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bsdinstall.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="osx">3.3. Mac OS X Installation Notes</H1
|
||||
NAME="osx"
|
||||
>3.3. Mac OS X Installation Notes</A
|
||||
></H1
|
||||
><P
|
||||
> There are a lot of common libraries and utilities out there
|
||||
that Apple did not include with Mac OS X, but which run
|
||||
@@ -234,7 +233,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -246,7 +244,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="stepbystep.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -255,7 +252,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -264,7 +260,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bsdinstall.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -280,7 +275,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Useful Patches and Utilities for Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="granttables.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="rewrite.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="appendix"
|
||||
><H1
|
||||
><A
|
||||
NAME="patches">Appendix D. Useful Patches and Utilities for Bugzilla</H1
|
||||
NAME="patches"
|
||||
>Appendix D. Useful Patches and Utilities for Bugzilla</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -109,12 +108,12 @@ HREF="bzhacking.html"
|
||||
><DL
|
||||
><DT
|
||||
>D.5.1. <A
|
||||
HREF="bzhacking.html#AEN2436"
|
||||
HREF="bzhacking.html#AEN2504"
|
||||
>Things that have caused problems and should be avoided</A
|
||||
></DT
|
||||
><DT
|
||||
>D.5.2. <A
|
||||
HREF="bzhacking.html#AEN2450"
|
||||
HREF="bzhacking.html#AEN2518"
|
||||
>Coding Style for Bugzilla</A
|
||||
></DT
|
||||
></DL
|
||||
@@ -129,7 +128,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -141,7 +139,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="granttables.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -150,7 +147,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -159,7 +155,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="rewrite.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Post-Installation Checklist</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="useradmin.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="postinstall-check">4.1. Post-Installation Checklist</H1
|
||||
NAME="postinstall-check"
|
||||
>4.1. Post-Installation Checklist</A
|
||||
></H1
|
||||
><P
|
||||
> After installation, follow the checklist below to help ensure
|
||||
that you have a successful installation. If you do not see a
|
||||
@@ -475,7 +474,7 @@ CLASS="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. She would still only
|
||||
with bugs outside her priveleges. She would still only
|
||||
receive email updates for those bugs she could normally
|
||||
view.</P
|
||||
><P
|
||||
@@ -503,7 +502,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -515,7 +513,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -524,7 +521,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -533,7 +529,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="useradmin.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -549,7 +544,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
Administration</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -29,7 +29,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -47,7 +46,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="useradmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -61,7 +59,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -74,8 +71,10 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="programadmin">4.3. Product, Component, Milestone, and Version
|
||||
Administration</H1
|
||||
NAME="programadmin"
|
||||
>4.3. Product, Component, Milestone, and Version
|
||||
Administration</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
@@ -104,7 +103,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="products">4.3.1. Products</H2
|
||||
NAME="products"
|
||||
>4.3.1. Products</A
|
||||
></H2
|
||||
><FONT
|
||||
COLOR="RED"
|
||||
>Formerly, and in some spots still, called
|
||||
@@ -222,21 +223,27 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="components">4.3.2. Components</H2
|
||||
NAME="components"
|
||||
>4.3.2. Components</A
|
||||
></H2
|
||||
><P
|
||||
> Components are subsections of a Product.
|
||||
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1405"><P
|
||||
NAME="AEN1470"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-1. Creating some Components</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1407"><P
|
||||
NAME="AEN1472"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> The computer game you are designing may have a "UI"
|
||||
@@ -369,7 +376,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="versions">4.3.3. Versions</H2
|
||||
NAME="versions"
|
||||
>4.3.3. Versions</A
|
||||
></H2
|
||||
><P
|
||||
> Versions are the revisions of the product, such as "Flinders
|
||||
3.1", "Flinders 95", and "Flinders 2000". Using Versions
|
||||
@@ -378,14 +387,18 @@ NAME="versions">4.3.3. Versions</H2
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1434"><P
|
||||
NAME="AEN1499"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-2. Common Use of Versions</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1436"><P
|
||||
NAME="AEN1501"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> A user reports a bug against Version "Beta 2.0" of your
|
||||
@@ -405,14 +418,18 @@ NAME="AEN1436"><P
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1438"><P
|
||||
NAME="AEN1503"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-3. A Different Use of Versions</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1440"><P
|
||||
NAME="AEN1505"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> This field has been used to good effect by an online
|
||||
@@ -479,7 +496,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="milestones">4.3.4. Milestones</H2
|
||||
NAME="milestones"
|
||||
>4.3.4. Milestones</A
|
||||
></H2
|
||||
><P
|
||||
> 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
|
||||
@@ -545,14 +564,18 @@ TYPE="1"
|
||||
><DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1466"><P
|
||||
NAME="AEN1531"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-4. Using SortKey with Target Milestone</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1468"><P
|
||||
NAME="AEN1533"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> Let's say you create a target milestone called
|
||||
@@ -643,7 +666,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="voting">4.3.5. Voting</H2
|
||||
NAME="voting"
|
||||
>4.3.5. Voting</A
|
||||
></H2
|
||||
><P
|
||||
> The concept of "voting" is a poorly understood, yet powerful
|
||||
feature for the management of open-source projects. Each user
|
||||
@@ -750,7 +775,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="groups">4.3.6. Groups and Group Security</H2
|
||||
NAME="groups"
|
||||
>4.3.6. Groups and Group Security</A
|
||||
></H2
|
||||
><P
|
||||
> Groups can be very useful in bugzilla, because they allow
|
||||
users to isolate bugs or products that should only be seen by
|
||||
@@ -760,14 +787,18 @@ NAME="groups">4.3.6. Groups and Group Security</H2
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1502"><P
|
||||
NAME="AEN1567"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-5. When to Use Group Security</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1504"><P
|
||||
NAME="AEN1569"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> Many Bugzilla sites isolate "Security-related" bugs from
|
||||
@@ -882,14 +913,18 @@ TYPE="1"
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1519"><P
|
||||
NAME="AEN1584"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-6. Creating a New Group</B
|
||||
></P
|
||||
><DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN1521"><P
|
||||
NAME="AEN1586"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> I created a group called DefaultGroup with a
|
||||
@@ -1013,7 +1048,9 @@ VALIGN="TOP"
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1536"><P
|
||||
NAME="AEN1601"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 4-7. Bugzilla Groups</B
|
||||
></P
|
||||
@@ -1103,7 +1140,7 @@ because he is not in Group3.<br>
|
||||
<br>
|
||||
Bug7 can be seen by anyone who is in Group1, Group2, and Group3. This<br>
|
||||
is only User4. All of the others are missing at least one of those<br>
|
||||
group privileges, and thus cannot see the bug.<br>
|
||||
group priveleges, and thus cannot see the bug.<br>
|
||||
<br>
|
||||
Bug8 can be seen by anyone who is in Group1, Group2, Group3, and<br>
|
||||
Group4. There is nobody in all four of these groups, so nobody can<br>
|
||||
@@ -1120,7 +1157,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -1132,7 +1168,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="useradmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -1141,7 +1176,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -1150,7 +1184,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="security.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -1166,7 +1199,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>The Quicksearch Utility</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cmdline.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="bzhacking.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="quicksearch">D.4. The Quicksearch Utility</H1
|
||||
NAME="quicksearch"
|
||||
>D.4. The Quicksearch Utility</A
|
||||
></H1
|
||||
><P
|
||||
> Quicksearch is a new, experimental feature of the 2.12 release.
|
||||
It consist of two Javascript files, "quicksearch.js" and
|
||||
@@ -135,7 +134,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -147,7 +145,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cmdline.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -156,7 +153,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -165,7 +161,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="bzhacking.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -181,7 +176,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Apache mod_rewrite magic</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="setperl.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,10 +70,12 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="rewrite">D.1. Apache <TT
|
||||
NAME="rewrite"
|
||||
>D.1. Apache <TT
|
||||
CLASS="filename"
|
||||
>mod_rewrite</TT
|
||||
> magic</H1
|
||||
> magic</A
|
||||
></H1
|
||||
><P
|
||||
>Apache's <TT
|
||||
CLASS="filename"
|
||||
@@ -137,7 +136,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -149,7 +147,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -158,7 +155,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -167,7 +163,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="setperl.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -183,7 +178,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Red Hat Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-fenris.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="rhbugzilla">6.1. Red Hat Bugzilla</H1
|
||||
NAME="rhbugzilla"
|
||||
>7.1. Red Hat Bugzilla</A
|
||||
></H1
|
||||
><P
|
||||
> Red Hat Bugzilla is probably the most popular Bugzilla variant
|
||||
on the planet. One of the major benefits of Red Hat Bugzilla is
|
||||
@@ -95,7 +94,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -107,7 +105,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -116,7 +113,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -125,7 +121,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-fenris.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -141,7 +136,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Perforce SCM</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="scm">5.3. Perforce SCM</H1
|
||||
NAME="scm"
|
||||
>5.3. Perforce SCM</A
|
||||
></H1
|
||||
><P
|
||||
> You can find the project page for Bugzilla and Teamtrack
|
||||
Perforce integration (p4dti) at: <A
|
||||
@@ -104,7 +103,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -116,7 +114,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -125,7 +122,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -134,7 +130,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -150,7 +145,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Bugzilla Security</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -29,7 +29,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -47,7 +46,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -61,7 +59,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -74,7 +71,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="security">4.4. Bugzilla Security</H1
|
||||
NAME="security"
|
||||
>4.4. Bugzilla Security</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
@@ -323,45 +322,6 @@ TARGET="_top"
|
||||
></TABLE
|
||||
></DIV
|
||||
><P
|
||||
> When you run checksetup.pl, the script will attempt to modify various
|
||||
permissions on files which Bugzilla uses. If you do not have a
|
||||
webservergroup set in the localconfig file, then Bugzilla will have to
|
||||
make certain files world readable and/or writable. <EM
|
||||
>THIS IS
|
||||
INSECURE!</EM
|
||||
>. This means that anyone who can get access to
|
||||
your system can do whatever they want to your Bugzilla installation.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="note"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/note.gif"
|
||||
HSPACE="5"
|
||||
ALT="Note"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
> This also means that if your webserver runs all cgi scripts as the
|
||||
same user/group, anyone on the system who can run cgi scripts will
|
||||
be able to take control of your Bugzilla installation.
|
||||
</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
><P
|
||||
> On Apache, you can use .htaccess files to protect access
|
||||
to these directories, as outlined in <A
|
||||
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=57161"
|
||||
@@ -415,7 +375,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -427,7 +386,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -436,7 +394,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -445,7 +402,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -462,7 +418,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>The setperl.csh Utility</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="rewrite.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cmdline.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="setperl">D.2. The setperl.csh Utility</H1
|
||||
NAME="setperl"
|
||||
>D.2. The setperl.csh Utility</A
|
||||
></H1
|
||||
><P
|
||||
> You can use the "setperl.csh" utility to quickly and
|
||||
easily change the path to perl on all your Bugzilla files. This
|
||||
@@ -217,7 +216,9 @@ CLASS="command"
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN2380"><P
|
||||
NAME="AEN2448"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example D-1. Using Setperl to set your perl path</B
|
||||
></P
|
||||
@@ -247,7 +248,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -259,7 +259,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="rewrite.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -268,7 +267,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -277,7 +275,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cmdline.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -296,7 +293,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="patches.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Step-by-step Install</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="errata.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="osx.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,13 +70,17 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="stepbystep">3.2. Step-by-step Install</H1
|
||||
NAME="stepbystep"
|
||||
>3.2. Step-by-step Install</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN441">3.2.1. Introduction</H2
|
||||
NAME="AEN509"
|
||||
>3.2.1. Introduction</A
|
||||
></H2
|
||||
><P
|
||||
> Installation of bugzilla is pretty straightforward, particularly if your
|
||||
machine already has MySQL and the MySQL-related perl packages installed.
|
||||
@@ -108,7 +109,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN447">3.2.2. Installing the Prerequisites</H2
|
||||
NAME="AEN515"
|
||||
>3.2.2. Installing the Prerequisites</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -358,7 +361,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="install-mysql">3.2.3. Installing MySQL Database</H2
|
||||
NAME="install-mysql"
|
||||
>3.2.3. Installing MySQL Database</A
|
||||
></H2
|
||||
><P
|
||||
> Visit MySQL homepage at <A
|
||||
HREF="http://www.mysql.com"
|
||||
@@ -473,7 +478,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="install-perl">3.2.4. Perl (5.004 or greater)</H2
|
||||
NAME="install-perl"
|
||||
>3.2.4. Perl (5.004 or greater)</A
|
||||
></H2
|
||||
><P
|
||||
> Any machine that doesn't have perl on it is a sad machine
|
||||
indeed. Perl for *nix systems can be gotten in source form
|
||||
@@ -538,7 +545,9 @@ CLASS="QUOTE"
|
||||
><DIV
|
||||
CLASS="tip"
|
||||
><A
|
||||
NAME="bundlebugzilla"><P
|
||||
NAME="bundlebugzilla"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="tip"
|
||||
@@ -604,7 +613,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN534">3.2.5. DBI Perl Module</H2
|
||||
NAME="AEN602"
|
||||
>3.2.5. DBI Perl Module</A
|
||||
></H2
|
||||
><P
|
||||
> The DBI module is a generic Perl module used by other database related
|
||||
Perl modules. For our purposes it's required by the MySQL-related
|
||||
@@ -631,7 +642,9 @@ HREF="downloadlinks.html"
|
||||
<DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN541"><P
|
||||
NAME="AEN609"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> <TT
|
||||
@@ -683,7 +696,9 @@ VALIGN="TOP"
|
||||
<DIV
|
||||
CLASS="informalexample"
|
||||
><A
|
||||
NAME="AEN548"><P
|
||||
NAME="AEN616"
|
||||
></A
|
||||
><P
|
||||
></P
|
||||
><P
|
||||
> Untar the module tarball -- it should create its own directory
|
||||
@@ -774,7 +789,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN572">3.2.6. Data::Dumper Perl Module</H2
|
||||
NAME="AEN640"
|
||||
>3.2.6. Data::Dumper Perl Module</A
|
||||
></H2
|
||||
><P
|
||||
> The Data::Dumper module provides data structure persistence for Perl
|
||||
(similar to Java's serialization). It comes with later sub-releases of
|
||||
@@ -797,7 +814,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN577">3.2.7. MySQL related Perl Module Collection</H2
|
||||
NAME="AEN645"
|
||||
>3.2.7. MySQL related Perl Module Collection</A
|
||||
></H2
|
||||
><P
|
||||
> The Perl/MySQL interface requires a few mutually-dependent perl
|
||||
modules. These modules are grouped together into the the
|
||||
@@ -841,7 +860,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN586">3.2.8. TimeDate Perl Module Collection</H2
|
||||
NAME="AEN654"
|
||||
>3.2.8. TimeDate Perl Module Collection</A
|
||||
></H2
|
||||
><P
|
||||
> Many of the more common date/time/calendar related Perl
|
||||
modules have been grouped into a bundle similar to the MySQL
|
||||
@@ -861,7 +882,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN590">3.2.9. GD Perl Module (1.8.3)</H2
|
||||
NAME="AEN658"
|
||||
>3.2.9. GD Perl Module (1.8.3)</A
|
||||
></H2
|
||||
><P
|
||||
> The GD library was written by Thomas Boutell a long while
|
||||
ago to programatically generate images in C. Since then it's
|
||||
@@ -925,7 +948,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN599">3.2.10. Chart::Base Perl Module (0.99c)</H2
|
||||
NAME="AEN667"
|
||||
>3.2.10. Chart::Base Perl Module (0.99c)</A
|
||||
></H2
|
||||
><P
|
||||
> The Chart module provides bugzilla with on-the-fly charting
|
||||
abilities. It can be installed in the usual fashion after it
|
||||
@@ -944,7 +969,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN603">3.2.11. DB_File Perl Module</H2
|
||||
NAME="AEN671"
|
||||
>3.2.11. DB_File Perl Module</A
|
||||
></H2
|
||||
><P
|
||||
> DB_File is a module which allows Perl programs to make use
|
||||
of the facilities provided by Berkeley DB version 1.x. This
|
||||
@@ -958,7 +985,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN606">3.2.12. HTTP Server</H2
|
||||
NAME="AEN674"
|
||||
>3.2.12. HTTP Server</A
|
||||
></H2
|
||||
><P
|
||||
> You have a freedom of choice here - Apache, Netscape or any
|
||||
other server on UNIX would do. You can easily run the web
|
||||
@@ -1037,7 +1066,6 @@ COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
> Options ExecCGI
|
||||
AllowOverride Limit
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
@@ -1068,10 +1096,6 @@ ALT="Note"></TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
> AllowOverride Limit allows the use of a Deny statement in the
|
||||
.htaccess file generated by checksetup.pl
|
||||
</P
|
||||
><P
|
||||
> Users of newer versions of Apache will generally find both
|
||||
of the above lines will be in the httpd.conf file, rather
|
||||
than srm.conf or access.conf.
|
||||
@@ -1133,7 +1157,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN625">3.2.13. Installing the Bugzilla Files</H2
|
||||
NAME="AEN692"
|
||||
>3.2.13. Installing the Bugzilla Files</A
|
||||
></H2
|
||||
><P
|
||||
> You should untar the Bugzilla files into a directory that
|
||||
you're willing to make writable by the default web server user
|
||||
@@ -1222,7 +1248,9 @@ HREF="patches.html"
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN641"><P
|
||||
NAME="AEN708"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 3-1. Setting up bonsaitools symlink</B
|
||||
></P
|
||||
@@ -1277,8 +1305,7 @@ WIDTH="100%"
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
> perl -pi -e 's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm
|
||||
processmail syncshadowdb
|
||||
> perl -pi -e 's@#!/usr/bonsaitools/bin/perl@#!/usr/bin/perl@' *cgi *pl Bug.pm
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
@@ -1332,7 +1359,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN654">3.2.14. Setting Up the MySQL Database</H2
|
||||
NAME="AEN721"
|
||||
>3.2.14. Setting Up the MySQL Database</A
|
||||
></H2
|
||||
><P
|
||||
> After you've gotten all the software installed and working you're ready
|
||||
to start preparing the database for its life as a the back end to a high
|
||||
@@ -1568,9 +1597,11 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN701">3.2.15. Tweaking <TT
|
||||
NAME="AEN768"
|
||||
>3.2.15. Tweaking <TT
|
||||
CLASS="filename"
|
||||
>localconfig</TT
|
||||
></A
|
||||
></H2
|
||||
><P
|
||||
> This file contains a variety of settings you may need to tweak including
|
||||
@@ -1692,7 +1723,9 @@ CLASS="QUOTE"
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN732"><P
|
||||
NAME="AEN799"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 3-2. Running checksetup.pl as the web user</B
|
||||
></P
|
||||
@@ -1770,7 +1803,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN739">3.2.16. Setting Up Maintainers Manually (Optional)</H2
|
||||
NAME="AEN806"
|
||||
>3.2.16. Setting Up Maintainers Manually (Optional)</A
|
||||
></H2
|
||||
><P
|
||||
> If you want to add someone else to every group by hand, you
|
||||
can do it by typing the appropriate MySQL commands. Run
|
||||
@@ -1818,7 +1853,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN750">3.2.17. The Whining Cron (Optional)</H2
|
||||
NAME="AEN817"
|
||||
>3.2.17. The Whining Cron (Optional)</A
|
||||
></H2
|
||||
><P
|
||||
> By now you have a fully functional bugzilla, but what good
|
||||
are bugs if they're not annoying? To help make those bugs
|
||||
@@ -1902,7 +1939,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN760">3.2.18. Bug Graphs (Optional)</H2
|
||||
NAME="AEN827"
|
||||
>3.2.18. Bug Graphs (Optional)</A
|
||||
></H2
|
||||
><P
|
||||
> As long as you installed the GD and Graph::Base Perl modules
|
||||
you might as well turn on the nifty bugzilla bug reporting
|
||||
@@ -1957,7 +1996,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN772">3.2.19. Securing MySQL</H2
|
||||
NAME="AEN839"
|
||||
>3.2.19. Securing MySQL</A
|
||||
></H2
|
||||
><P
|
||||
> If you followed the installation instructions for setting up
|
||||
your "bugs" and "root" user in MySQL, much of this should not
|
||||
@@ -2242,7 +2283,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -2254,7 +2294,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="errata.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -2263,7 +2302,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -2272,7 +2310,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="osx.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -2288,7 +2325,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Tinderbox/Tinderbox2</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -16,8 +16,8 @@ REL="PREVIOUS"
|
||||
TITLE="Perforce SCM"
|
||||
HREF="scm.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Bugzilla Variants and Competitors"
|
||||
HREF="variants.html"></HEAD
|
||||
TITLE="The Future of Bugzilla"
|
||||
HREF="future.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="scm.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -59,8 +57,7 @@ WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="N"
|
||||
HREF="future.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="tinderbox">5.4. Tinderbox/Tinderbox2</H1
|
||||
NAME="tinderbox"
|
||||
>5.4. Tinderbox/Tinderbox2</A
|
||||
></H1
|
||||
><P
|
||||
>We need Tinderbox integration information.</P
|
||||
></DIV
|
||||
@@ -82,7 +81,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -94,7 +92,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="scm.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -103,7 +100,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -111,8 +107,7 @@ WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="N"
|
||||
HREF="future.html"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -128,14 +123,13 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="integration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Bugzilla Variants and Competitors</TD
|
||||
>The Future of Bugzilla</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Translations</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -13,8 +13,8 @@ REL="UP"
|
||||
TITLE="About This Guide"
|
||||
HREF="about.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Credits"
|
||||
HREF="credits.html"><LINK
|
||||
TITLE="Feedback"
|
||||
HREF="feedback.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Document Conventions"
|
||||
HREF="conventions.html"></HEAD
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -45,8 +44,7 @@ WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="P"
|
||||
HREF="feedback.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="translations">1.6. Translations</H1
|
||||
NAME="translations"
|
||||
>1.8. Translations</A
|
||||
></H1
|
||||
><P
|
||||
> The Bugzilla Guide needs translators! Please volunteer your
|
||||
translation into the language of your choice. If you will
|
||||
@@ -86,7 +85,7 @@ HREF="mailto:mozilla-webtools@mozilla.org"
|
||||
>mozilla-webtools@mozilla.org</A
|
||||
>></TT
|
||||
>, and arrange with
|
||||
The Bugzilla Team to check it into CVS.
|
||||
Matt Barnson to check it into CVS.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
@@ -94,7 +93,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -105,8 +103,7 @@ WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="credits.html"
|
||||
ACCESSKEY="P"
|
||||
HREF="feedback.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -115,7 +112,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -124,7 +120,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -133,14 +128,13 @@ ACCESSKEY="N"
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Credits</TD
|
||||
>Feedback</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="about.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Troubleshooting</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Installation"
|
||||
HREF="installation.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="General Installation Notes"
|
||||
HREF="geninstall.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Administering Bugzilla"
|
||||
HREF="administration.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 4. Installation</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="troubleshooting">4.6. Troubleshooting</H1
|
||||
><P
|
||||
>This section gives solutions to common Bugzilla installation
|
||||
problems.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="AEN1208">4.6.1. DBD::Sponge::db prepare failed</H2
|
||||
><P
|
||||
> The following error message may appear due to a bug in DBD::mysql
|
||||
(over which the Bugzilla team have no control):
|
||||
</P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
> "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)"
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><P
|
||||
> To fix this, go to <path-to-perl>/lib/DBD/sponge.pm in your Perl
|
||||
installation and replace
|
||||
</P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
> my $numFields;
|
||||
if ($attribs->{'NUM_OF_FIELDS'}) {
|
||||
$numFields = $attribs->{'NUM_OF_FIELDS'};
|
||||
} elsif ($attribs->{'NAME'}) {
|
||||
$numFields = @{$attribs->{NAME}};
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><P
|
||||
> by
|
||||
</P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
> my $numFields;
|
||||
if ($attribs->{'NUM_OF_FIELDS'}) {
|
||||
$numFields = $attribs->{'NUM_OF_FIELDS'};
|
||||
} elsif ($attribs->{'NAMES'}) {
|
||||
$numFields = @{$attribs->{NAMES}};
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><P
|
||||
> (note the S added to NAME.)
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="paranoid-security">4.6.2. cannot chdir(/var/spool/mqueue)</H2
|
||||
><P
|
||||
>If you are installing Bugzilla on SuSE Linux, or some other
|
||||
distributions with
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"paranoid"</SPAN
|
||||
>
|
||||
security options, it is possible that the checksetup.pl script may fail
|
||||
with the error:
|
||||
<TABLE
|
||||
BORDER="0"
|
||||
BGCOLOR="#E0E0E0"
|
||||
WIDTH="100%"
|
||||
><TR
|
||||
><TD
|
||||
><FONT
|
||||
COLOR="#000000"
|
||||
><PRE
|
||||
CLASS="programlisting"
|
||||
>cannot chdir(/var/spool/mqueue): Permission denied
|
||||
</PRE
|
||||
></FONT
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> This is because your
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>/var/spool/mqueue</TT
|
||||
>
|
||||
directory has a mode of
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"drwx------"</SPAN
|
||||
>. Type
|
||||
<B
|
||||
CLASS="command"
|
||||
>chmod 755
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>/var/spool/mqueue</TT
|
||||
>
|
||||
</B
|
||||
>
|
||||
as root to fix this problem.
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>General Installation Notes</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Administering Bugzilla</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>User Administration</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -29,7 +29,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -47,7 +46,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="postinstall-check.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -61,7 +59,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -74,7 +71,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="useradmin">4.2. User Administration</H1
|
||||
NAME="useradmin"
|
||||
>4.2. User Administration</A
|
||||
></H1
|
||||
><P
|
||||
> User administration is one of the easiest parts of Bugzilla.
|
||||
Keeping it from getting out of hand, however, can become a
|
||||
@@ -85,7 +84,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="defaultuser">4.2.1. Creating the Default User</H2
|
||||
NAME="defaultuser"
|
||||
>4.2.1. Creating the Default User</A
|
||||
></H2
|
||||
><P
|
||||
> When you first run checksetup.pl after installing Bugzilla, it
|
||||
will prompt you for the administrative username (email
|
||||
@@ -155,13 +156,17 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="manageusers">4.2.2. Managing Other Users</H2
|
||||
NAME="manageusers"
|
||||
>4.2.2. Managing Other Users</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="login">4.2.2.1. Logging In</H3
|
||||
NAME="login"
|
||||
>4.2.2.1. Logging In</A
|
||||
></H3
|
||||
><P
|
||||
></P
|
||||
><OL
|
||||
@@ -198,7 +203,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="createnewusers">4.2.2.2. Creating new users</H3
|
||||
NAME="createnewusers"
|
||||
>4.2.2.2. Creating new users</A
|
||||
></H3
|
||||
><P
|
||||
> Your users can create their own user accounts by clicking
|
||||
the "New Account" link at the bottom of each page. However,
|
||||
@@ -323,7 +330,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="disableusers">4.2.2.3. Disabling Users</H3
|
||||
NAME="disableusers"
|
||||
>4.2.2.3. Disabling Users</A
|
||||
></H3
|
||||
><P
|
||||
> I bet you noticed that big "Disabled Text" entry box
|
||||
available from the "Add New User" screen, when you edit an
|
||||
@@ -377,7 +386,9 @@ CLASS="section"
|
||||
><H3
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="modifyusers">4.2.2.4. Modifying Users</H3
|
||||
NAME="modifyusers"
|
||||
>4.2.2.4. Modifying Users</A
|
||||
></H3
|
||||
><P
|
||||
> Here I will attempt to describe the function of each option
|
||||
on the Edit User screen.
|
||||
@@ -443,6 +454,75 @@ VALIGN="TOP"
|
||||
><LI
|
||||
><P
|
||||
> <EM
|
||||
>Email Notification</EM
|
||||
>: You may choose
|
||||
from one of three options:
|
||||
<P
|
||||
></P
|
||||
><OL
|
||||
TYPE="1"
|
||||
><LI
|
||||
><P
|
||||
> All qualifying bugs except those which I change:
|
||||
The user will be notified of any change to any bug
|
||||
for which she is the reporter, assignee, QA
|
||||
Contact, CC recipient, or "watcher".
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Only those bugs which I am listed on the CC line:
|
||||
The user will not be notified of changes to bugs
|
||||
where she is the assignee, reporter, or QA
|
||||
Contact, but will receive them if she is on the CC
|
||||
list.
|
||||
<DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="note"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/note.gif"
|
||||
HSPACE="5"
|
||||
ALT="Note"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
> She will still receive whining cron emails if
|
||||
you set up the "whinemail" feature.
|
||||
</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> <EM
|
||||
>All Qualifying Bugs</EM
|
||||
>: This
|
||||
user is a glutton for punishment. If her name is
|
||||
in the reporter, QA Contact, CC, assignee, or is a
|
||||
"watcher", she will get email updates regarding
|
||||
the bug.
|
||||
</P
|
||||
></LI
|
||||
></OL
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> <EM
|
||||
>Disable Text</EM
|
||||
>: If you type anything
|
||||
in this box, including just a space, the user account is
|
||||
@@ -616,7 +696,7 @@ VALIGN="TOP"
|
||||
>: This flag allows a user
|
||||
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
|
||||
administrator priveleges from other users or grant them
|
||||
to themselves. Enable with care.
|
||||
</P
|
||||
></LI
|
||||
@@ -644,7 +724,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -656,7 +735,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="postinstall-check.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -665,7 +743,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -674,7 +751,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -690,7 +766,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>User Preferences</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Using Bugzilla"
|
||||
HREF="using.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Hints and Tips"
|
||||
HREF="hintsandtips.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Installation"
|
||||
HREF="installation.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="hintsandtips.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 3. Using Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="userpreferences">3.3. User Preferences</H1
|
||||
><P
|
||||
>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:</P
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="accountsettings">3.3.1. Account Settings</H2
|
||||
><P
|
||||
>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
|
||||
<EM
|
||||
>current</EM
|
||||
>
|
||||
password into the
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"Password"</SPAN
|
||||
>
|
||||
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.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="emailsettings">3.3.2. Email Settings</H2
|
||||
><P
|
||||
>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.)</P
|
||||
><P
|
||||
>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, managers wish to get in touch with the issues faced by their
|
||||
direct reports, or users go on vacation.</P
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="note"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/note.gif"
|
||||
HSPACE="5"
|
||||
ALT="Note"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>The ability to watch other users may not be available in all
|
||||
Bugzilla installations. If you can't see it, ask your
|
||||
administrator.</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="footersettings">3.3.3. Page Footer</H2
|
||||
><P
|
||||
>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.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="permissionsettings">3.3.4. Permissions</H2
|
||||
><P
|
||||
>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.</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="hintsandtips.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Hints and Tips</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Installation</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>Using Bugzilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -43,7 +42,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="using">Chapter 2. Using Bugzilla</H1
|
||||
NAME="using"
|
||||
>Chapter 2. Using Bugzilla</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
@@ -124,24 +123,28 @@ HREF="how.html#myaccount"
|
||||
></DT
|
||||
><DT
|
||||
>2.3.2. <A
|
||||
HREF="how.html#bug_page"
|
||||
>Anatomy of a Bug</A
|
||||
HREF="how.html#query"
|
||||
>The Bugzilla Query Page</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.3. <A
|
||||
HREF="how.html#query"
|
||||
>Searching for Bugs</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.4. <A
|
||||
HREF="how.html#list"
|
||||
>Bug Lists</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.5. <A
|
||||
HREF="how.html#bugreports"
|
||||
>Filing Bugs</A
|
||||
>Creating and Managing Bug Reports</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.3.3.1. <A
|
||||
HREF="how.html#bug-writing"
|
||||
>Writing a Great Bug Report</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3.3.2. <A
|
||||
HREF="how.html#bug-manage"
|
||||
>Managing your Bug Reports</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
@@ -161,6 +164,25 @@ HREF="init4me.html#accountsettings"
|
||||
HREF="init4me.html#emailsettings"
|
||||
>Email Settings</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.4.2.1. <A
|
||||
HREF="init4me.html#notification"
|
||||
>Email Notification</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.2.2. <A
|
||||
HREF="init4me.html#newemailtech"
|
||||
>New Email Technology</A
|
||||
></DT
|
||||
><DT
|
||||
>2.4.2.3. <A
|
||||
HREF="init4me.html#watchsettings"
|
||||
>"Watching" Users</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>2.4.3. <A
|
||||
HREF="init4me.html#footersettings"
|
||||
@@ -186,7 +208,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -198,7 +219,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="conventions.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -207,7 +227,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -216,7 +235,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Using Bugzilla-Conclusion</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="init4me.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="usingbz-conc">2.5. Using Bugzilla-Conclusion</H1
|
||||
NAME="usingbz-conc"
|
||||
>2.5. Using Bugzilla-Conclusion</A
|
||||
></H1
|
||||
><P
|
||||
> Thank you for reading through this portion of the Bugzilla
|
||||
Guide. I anticipate it may not yet meet the needs of all
|
||||
@@ -90,7 +89,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -102,7 +100,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="init4me.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -111,7 +108,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -120,7 +116,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -136,7 +131,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Loki Bugzilla (Fenris)</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="rhbugzilla.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-issuezilla.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="variant-fenris">6.2. Loki Bugzilla (Fenris)</H1
|
||||
NAME="variant-fenris"
|
||||
>7.2. Loki Bugzilla (Fenris)</A
|
||||
></H1
|
||||
><P
|
||||
>Fenris can be found at <A
|
||||
HREF="http://fenris.lokigames.com/"
|
||||
@@ -86,7 +85,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -98,7 +96,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="rhbugzilla.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -107,7 +104,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -116,7 +112,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-issuezilla.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -132,7 +127,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Issuezilla</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-fenris.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-scarab.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="variant-issuezilla">6.3. Issuezilla</H1
|
||||
NAME="variant-issuezilla"
|
||||
>7.3. Issuezilla</A
|
||||
></H1
|
||||
><P
|
||||
>Issuezilla is another fork from Bugzilla, and seems nearly
|
||||
as popular as the Red Hat Bugzilla fork. Some Issuezilla team
|
||||
@@ -97,7 +96,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -109,7 +107,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-fenris.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -118,7 +115,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -127,7 +123,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-scarab.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -143,7 +138,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Perforce SCM</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-scarab.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-sourceforge.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="variant-perforce">6.5. Perforce SCM</H1
|
||||
NAME="variant-perforce"
|
||||
>7.5. Perforce SCM</A
|
||||
></H1
|
||||
><P
|
||||
>Although Perforce isn't really a bug tracker, it can be used
|
||||
as such through the <SPAN
|
||||
@@ -92,7 +91,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -104,7 +102,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-scarab.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -113,7 +110,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -122,7 +118,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-sourceforge.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -138,7 +133,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Scarab</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-issuezilla.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-perforce.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="variant-scarab">6.4. Scarab</H1
|
||||
NAME="variant-scarab"
|
||||
>7.4. Scarab</A
|
||||
></H1
|
||||
><P
|
||||
>Scarab is a promising new bug-tracking system built using
|
||||
Java Serlet technology. As of this writing, no source code has
|
||||
@@ -92,7 +91,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -104,7 +102,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-issuezilla.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -113,7 +110,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -122,7 +118,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-perforce.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -138,7 +133,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>SourceForge</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,21 +45,19 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="variant-perforce.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 6. Bugzilla Variants and Competitors</TD
|
||||
>Chapter 7. Bugzilla Variants and Competitors</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="faq.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="variant-sourceforge">6.6. SourceForge</H1
|
||||
NAME="variant-sourceforge"
|
||||
>7.6. SourceForge</A
|
||||
></H1
|
||||
><P
|
||||
>SourceForge is more of a way of coordinating geographically
|
||||
distributed free software and open source projects over the
|
||||
@@ -92,7 +91,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -104,7 +102,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variant-perforce.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -113,7 +110,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -122,7 +118,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="faq.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -138,7 +133,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="variants.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
>Bugzilla Variants and Competitors</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Tinderbox/Tinderbox2"
|
||||
HREF="tinderbox.html"><LINK
|
||||
TITLE="The Future of Bugzilla"
|
||||
HREF="future.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Red Hat Bugzilla"
|
||||
HREF="rhbugzilla.html"></HEAD
|
||||
@@ -25,7 +25,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -42,8 +41,7 @@ WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
ACCESSKEY="P"
|
||||
HREF="future.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -57,7 +55,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="rhbugzilla.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -69,7 +66,9 @@ WIDTH="100%"></DIV
|
||||
CLASS="chapter"
|
||||
><H1
|
||||
><A
|
||||
NAME="variants">Chapter 6. Bugzilla Variants and Competitors</H1
|
||||
NAME="variants"
|
||||
>Chapter 7. Bugzilla Variants and Competitors</A
|
||||
></H1
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
@@ -78,32 +77,32 @@ CLASS="TOC"
|
||||
>Table of Contents</B
|
||||
></DT
|
||||
><DT
|
||||
>6.1. <A
|
||||
>7.1. <A
|
||||
HREF="rhbugzilla.html"
|
||||
>Red Hat Bugzilla</A
|
||||
></DT
|
||||
><DT
|
||||
>6.2. <A
|
||||
>7.2. <A
|
||||
HREF="variant-fenris.html"
|
||||
>Loki Bugzilla (Fenris)</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3. <A
|
||||
>7.3. <A
|
||||
HREF="variant-issuezilla.html"
|
||||
>Issuezilla</A
|
||||
></DT
|
||||
><DT
|
||||
>6.4. <A
|
||||
>7.4. <A
|
||||
HREF="variant-scarab.html"
|
||||
>Scarab</A
|
||||
></DT
|
||||
><DT
|
||||
>6.5. <A
|
||||
>7.5. <A
|
||||
HREF="variant-perforce.html"
|
||||
>Perforce SCM</A
|
||||
></DT
|
||||
><DT
|
||||
>6.6. <A
|
||||
>7.6. <A
|
||||
HREF="variant-sourceforge.html"
|
||||
>SourceForge</A
|
||||
></DT
|
||||
@@ -124,7 +123,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -135,8 +133,7 @@ WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="tinderbox.html"
|
||||
ACCESSKEY="P"
|
||||
HREF="future.html"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -145,7 +142,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -154,7 +150,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="rhbugzilla.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -163,7 +158,7 @@ ACCESSKEY="N"
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Tinderbox/Tinderbox2</TD
|
||||
>The Future of Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Voting</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
HREF="index.html"><LINK
|
||||
REL="UP"
|
||||
TITLE="Administering Bugzilla"
|
||||
HREF="administration.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Product, Component, Milestone, and Version Administration"
|
||||
HREF="programadmin.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Groups and Group Security"
|
||||
HREF="groups.html"></HEAD
|
||||
><BODY
|
||||
CLASS="section"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>The Bugzilla Guide</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
>Chapter 5. Administering Bugzilla</TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="groups.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="voting">5.4. Voting</H1
|
||||
><P
|
||||
>The concept of "voting" is a poorly understood, yet powerful
|
||||
feature for the management of open-source projects. Each user is
|
||||
assigned so many Votes per product, which they can freely reassign (or
|
||||
assign multiple votes to a single bug). 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.</P
|
||||
><P
|
||||
>The daunting challenge of Votes is deciding where you draw the
|
||||
line for a "vocal majority". If you only have a user base of 100 users,
|
||||
setting a low threshold for bugs to move from UNCONFIRMED to NEW makes
|
||||
sense. As the Bugzilla user base expands, however, these thresholds
|
||||
must be re-evaluated. You should gauge whether this feature is worth
|
||||
the time and close monitoring involved, and perhaps forego
|
||||
implementation until you have a critical mass of users who demand
|
||||
it.</P
|
||||
><P
|
||||
>To modify Voting settings:</P
|
||||
><P
|
||||
></P
|
||||
><OL
|
||||
TYPE="1"
|
||||
><LI
|
||||
><P
|
||||
>Navigate to the "Edit product" screen for the Product you
|
||||
wish to modify</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Set "Maximum Votes per person" to your calculated value.
|
||||
Setting this field to "0" disables voting.</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Set "Maximum Votes a person can put on a single bug" to your
|
||||
calculated value. It should probably be some number lower than the
|
||||
"Maximum votes per person". Setting this field to "0" disables
|
||||
voting, but leaves the voting options open to the user. This is
|
||||
confusing.</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Set "Number of votes a bug in this product needs to
|
||||
automatically get out of the UNCONFIRMED state" to your calculated
|
||||
number. Setting this field to "0" disables the automatic move of
|
||||
bugs from UNCONFIRMED to NEW. Some people advocate leaving this at
|
||||
"0", but of what use are Votes if your Bugzilla user base is unable
|
||||
to affect which bugs appear on Development radar?
|
||||
<DIV
|
||||
CLASS="tip"
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
CLASS="tip"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="25"
|
||||
ALIGN="CENTER"
|
||||
VALIGN="TOP"
|
||||
><IMG
|
||||
SRC="../images/tip.gif"
|
||||
HSPACE="5"
|
||||
ALT="Tip"></TD
|
||||
><TD
|
||||
ALIGN="LEFT"
|
||||
VALIGN="TOP"
|
||||
><P
|
||||
>You should probably set this number to higher than a small
|
||||
coalition of Bugzilla users can influence it. Most sites use this
|
||||
as a "referendum" mechanism -- if users are able to vote a bug
|
||||
out of UNCONFIRMED, it is a
|
||||
<EM
|
||||
>really</EM
|
||||
>
|
||||
|
||||
bad bug!</P
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Once you have adjusted the values to your preference, select
|
||||
the "Update" button.</P
|
||||
></LI
|
||||
></OL
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="programadmin.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="groups.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Product, Component, Milestone, and Version Administration</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Groups and Group Security</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
@@ -4,7 +4,7 @@
|
||||
>What is Bugzilla?</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="why.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,14 +70,16 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="whatis">2.1. What is Bugzilla?</H1
|
||||
NAME="whatis"
|
||||
>2.1. What is Bugzilla?</A
|
||||
></H1
|
||||
><P
|
||||
> Bugzilla is one example of a class of programs called "Defect
|
||||
Tracking Systems", or, more commonly, "Bug-Tracking Systems". Defect
|
||||
Tracking Systems allow individual or groups of developers to keep
|
||||
track of outstanding bugs in their product effectively. Bugzilla was
|
||||
originally written by Terry Weissman in a programming language called
|
||||
"TCL", to replace a crappy bug-tracking database used internally by
|
||||
"TCL", to replace a crappy bug-tracking database used internally for
|
||||
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
|
||||
@@ -96,62 +95,90 @@ system against which all others are measured.
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
>Powerful searching</P
|
||||
> integrated, product-based granular security schema
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>User-configurable email notifications of bug changes</P
|
||||
> inter-bug dependencies and dependency graphing
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Full change history</P
|
||||
> advanced reporting capabilities
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Inter-bug dependency tracking and graphing</P
|
||||
> a robust, stable RDBMS back-end
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Excellent attachment management</P
|
||||
> extensive configurability
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Integrated, product-based, granular security schema</P
|
||||
> a very well-understood and well-thought-out natural bug resolution protocol
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Fully security-audited, and runs under Perl's taint mode</P
|
||||
> email, XML, console, and HTTP APIs
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>A robust, stable RDBMS back-end</P
|
||||
> available integration with automated software
|
||||
configuration management systems, including Perforce and
|
||||
CVS (through the Bugzilla email interface and
|
||||
checkin/checkout scripts)
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Web, XML, email and console interfaces</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Completely customisable and/or localisable web user interface</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Extensive configurability</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
>Smooth upgrade pathway between versions</P
|
||||
> too many more features to list
|
||||
</P
|
||||
></LI
|
||||
></UL
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> Despite its current robustness and popularity, Bugzilla faces
|
||||
some near-term challenges, such as reliance on a single
|
||||
database, a lack of abstraction of the user interface and
|
||||
program logic, verbose email bug notifications, a powerful but
|
||||
daunting query interface, little reporting configurability,
|
||||
problems with extremely large queries, some unsupportable bug
|
||||
resolution options, little internationalization (although non-US
|
||||
character sets are accepted for comments), and dependence on
|
||||
some nonstandard libraries.
|
||||
</P
|
||||
><P
|
||||
> Some recent headway has been made on the query front, however.
|
||||
If you are using the latest version of Bugzilla, you should see
|
||||
a <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"simple search"</SPAN
|
||||
> form on the default front page of
|
||||
your Bugzilla install. Type in two or three search terms and
|
||||
you should pull up some relevant information. This is also
|
||||
available as "queryhelp.cgi".
|
||||
</P
|
||||
><P
|
||||
> Despite these small problems, Bugzilla is very hard to beat. It
|
||||
is under <EM
|
||||
>very</EM
|
||||
> active development to address
|
||||
the current issues, and continually gains new features.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -163,7 +190,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -172,7 +198,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -181,7 +206,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="why.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -197,7 +221,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Why Should We Use Bugzilla?</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="why">2.2. Why Should We Use Bugzilla?</H1
|
||||
NAME="why"
|
||||
>2.2. Why Should We Use Bugzilla?</A
|
||||
></H1
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
WIDTH="100%"
|
||||
@@ -160,7 +159,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -172,7 +170,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="whatis.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -181,7 +178,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -190,7 +186,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="how.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -206,7 +201,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="using.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>Win32 Installation Notes</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
||||
"><LINK
|
||||
REL="HOME"
|
||||
TITLE="The Bugzilla Guide"
|
||||
@@ -28,7 +28,6 @@ ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -46,7 +45,6 @@ ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -60,7 +58,6 @@ ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -73,7 +70,9 @@ CLASS="section"
|
||||
><H1
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="win32">3.6. Win32 Installation Notes</H1
|
||||
NAME="win32"
|
||||
>3.6. Win32 Installation Notes</A
|
||||
></H1
|
||||
><P
|
||||
>This section covers installation on Microsoft Windows 95,
|
||||
98, ME, NT, and 2000. Bugzilla works fine on Win32 platforms,
|
||||
@@ -99,7 +98,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="wininstall">3.6.1. Win32 Installation: Step-by-step</H2
|
||||
NAME="wininstall"
|
||||
>3.6.1. Win32 Installation: Step-by-step</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -246,19 +247,11 @@ TARGET="_top"
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Use ppm from your perl\bin directory to install the following
|
||||
packs: DBI, DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip,
|
||||
GD, AppConfig, and Template. You may need to extract them from
|
||||
.zip format using Winzip or other unzip program first. Most of
|
||||
these additional ppm modules can be downloaded from ActiveState,
|
||||
but AppConfig and Template should be obtained from OpenInteract
|
||||
using <A
|
||||
HREF="http://openinteract.sourceforge.net/"
|
||||
TARGET="_top"
|
||||
>the instructions on
|
||||
the Template Toolkit web site</A
|
||||
>.
|
||||
</P
|
||||
> Use ppm from your perl\bin directory to install the following packs: DBI,
|
||||
DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, and GD. You may need
|
||||
to extract them from .zip format using Winzip or other unzip program first.
|
||||
These additional ppm modules can be downloaded from ActiveState.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="note"
|
||||
><P
|
||||
@@ -285,11 +278,6 @@ VALIGN="TOP"
|
||||
HREF="http://www.activestate.com/PPMPackages/zips/5xx-builds-only"
|
||||
TARGET="_top"
|
||||
> http://www.activestate.com/PPMPackages/zips/5xx-builds-only/</A
|
||||
>
|
||||
or <A
|
||||
HREF="http://www.activestate.com/PPMPackages/5.6plus"
|
||||
TARGET="_top"
|
||||
>http://www.activestate.com/PPMPackages/5.6plus</A
|
||||
>
|
||||
</P
|
||||
></TD
|
||||
@@ -313,7 +301,9 @@ CLASS="command"
|
||||
><DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN985"><P
|
||||
NAME="AEN1048"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 3-3. Installing ActivePerl ppd Modules on Microsoft Windows</B
|
||||
></P
|
||||
@@ -333,58 +323,13 @@ CLASS="option"
|
||||
>Watch your capitalization!</P
|
||||
></DIV
|
||||
><P
|
||||
> ActiveState's 5.6Plus directory also contains an AppConfig ppm, so
|
||||
you might see the following error when trying to install the
|
||||
version at OpenInteract:
|
||||
</P
|
||||
><P
|
||||
> <TT
|
||||
CLASS="computeroutput"
|
||||
> Error installing package 'AppConfig': Read a PPD for
|
||||
'AppConfig', but it is not intended for this build of Perl
|
||||
(MSWin32-x86-multi-thread)
|
||||
</TT
|
||||
> You can find ActiveState ppm modules at
|
||||
<A
|
||||
HREF="http://www.activestate.com/PPMPackages/5.6plus/"
|
||||
TARGET="_top"
|
||||
> http://www.activestate.com/PPMPackages/5.6plus</A
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> If so, download both <A
|
||||
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.tar.gz"
|
||||
TARGET="_top"
|
||||
>the
|
||||
tarball</A
|
||||
> and <A
|
||||
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.ppd"
|
||||
TARGET="_top"
|
||||
>the
|
||||
ppd</A
|
||||
> directly from OpenInteract, then run ppm from within
|
||||
the same directory to which you downloaded those files and
|
||||
install the package by referencing the ppd file explicitly via in
|
||||
the install command, f.e.:
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN998"><P
|
||||
><B
|
||||
>Example 3-4. Installing OpenInteract ppd Modules manually on Microsoft
|
||||
Windows</B
|
||||
></P
|
||||
><P
|
||||
> <TT
|
||||
CLASS="computeroutput"
|
||||
><B
|
||||
CLASS="command"
|
||||
>install
|
||||
<TT
|
||||
CLASS="filename"
|
||||
>C:\AppConfig.ppd</TT
|
||||
></B
|
||||
></TT
|
||||
>
|
||||
</P
|
||||
></DIV
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
@@ -1298,20 +1243,13 @@ VALIGN="TOP"
|
||||
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
|
||||
TARGET="_top"
|
||||
>bug 62000</A
|
||||
>,
|
||||
the perl documentation says that you should always use
|
||||
<TT
|
||||
>, the perl documentation says that you should always use <TT
|
||||
CLASS="function"
|
||||
>binmode()</TT
|
||||
> when dealing with binary
|
||||
files, but never when dealing with text files. That seems
|
||||
to suggest that rather than arbitrarily putting
|
||||
<TT
|
||||
> when dealing with binary files, but never when dealing with text files. That seems to suggest that rather than aribtrarily putting <TT
|
||||
CLASS="function"
|
||||
>binmode()</TT
|
||||
> at the beginning of the
|
||||
attachment files, there should be logic to determine if
|
||||
<TT
|
||||
> at the begining of the attachment files, there should be logic to determine if <TT
|
||||
CLASS="function"
|
||||
>binmode()</TT
|
||||
> is needed or not.
|
||||
@@ -1383,7 +1321,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="addlwintips">3.6.2. Additional Windows Tips</H2
|
||||
NAME="addlwintips"
|
||||
>3.6.2. Additional Windows Tips</A
|
||||
></H2
|
||||
><DIV
|
||||
CLASS="tip"
|
||||
><P
|
||||
@@ -1407,7 +1347,9 @@ VALIGN="TOP"
|
||||
><P
|
||||
> From Andrew Pearson:
|
||||
<A
|
||||
NAME="AEN1168"><BLOCKQUOTE
|
||||
NAME="AEN1221"
|
||||
></A
|
||||
><BLOCKQUOTE
|
||||
CLASS="BLOCKQUOTE"
|
||||
><P
|
||||
> You can make Bugzilla work with Personal Web Server for
|
||||
@@ -1487,13 +1429,15 @@ VALIGN="TOP"
|
||||
>not necessary</EM
|
||||
> for Bugzilla 2.13 and
|
||||
later, which includes the current release, Bugzilla
|
||||
2.16.
|
||||
2.14.
|
||||
<DIV
|
||||
CLASS="example"
|
||||
><A
|
||||
NAME="AEN1180"><P
|
||||
NAME="AEN1233"
|
||||
></A
|
||||
><P
|
||||
><B
|
||||
>Example 3-5. Removing encrypt() for Windows NT Bugzilla version
|
||||
>Example 3-4. Removing encrypt() for Windows NT Bugzilla version
|
||||
2.12 or earlier</B
|
||||
></P
|
||||
><P
|
||||
@@ -1551,7 +1495,9 @@ CLASS="section"
|
||||
><H2
|
||||
CLASS="section"
|
||||
><A
|
||||
NAME="bzldap">3.6.3. Bugzilla LDAP Integration</H2
|
||||
NAME="bzldap"
|
||||
>3.6.3. Bugzilla LDAP Integration</A
|
||||
></H2
|
||||
><P
|
||||
> What follows is some late-breaking information on using the
|
||||
LDAP authentication options with Bugzilla. The author has not
|
||||
@@ -1632,7 +1578,6 @@ CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
@@ -1644,7 +1589,6 @@ ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="geninstall.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -1653,7 +1597,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
@@ -1662,7 +1605,6 @@ ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="administration.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
@@ -1678,7 +1620,6 @@ ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="installation.html"
|
||||
ACCESSKEY="U"
|
||||
>Up</A
|
||||
></TD
|
||||
><TD
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user