Author: cfinck
Date: Fri Feb 22 18:16:17 2008
New Revision: 32453
URL: http://svn.reactos.org/svn/reactos?rev=32453&view=rev
Log:
Update to Bugzilla 3.0.3
Modified:
trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pmtrunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pmtrunk/web/reactos.org/htdocs/bugzilla/QUICKSTARTtrunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8trunk/web/reactos.org/htdocs/bugzilla/buglist.cgitrunk/web/reactos.org/htdocs/bugzilla/config.cgitrunk/web/reactos.org/htdocs/bugzilla/contrib/READMEtrunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pltrunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pltrunk/web/reactos.org/htdocs/bugzilla/editusers.cgitrunk/web/reactos.org/htdocs/bugzilla/email_in.pltrunk/web/reactos.org/htdocs/bugzilla/mod_perl.pltrunk/web/reactos.org/htdocs/bugzilla/post_bug.cgitrunk/web/reactos.org/htdocs/bugzilla/query.cgitrunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/dele…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/co…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/li…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confi…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tr…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpltrunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpltrunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpltrunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.t…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearch…trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-not…
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm Fri Feb 22 18:16:17 2008
@@ -1391,7 +1391,7 @@
# Obsolete custom fields are not editable.
my @obsolete_fields = Bugzilla->get_fields({obsolete => 1, custom => 1});
@obsolete_fields = map { $_->name } @obsolete_fields;
- foreach my $remove ("bug_id", "creation_ts", "delta_ts", "lastdiffed", @obsolete_fields) {
+ foreach my $remove ("bug_id", "reporter", "creation_ts", "delta_ts", "lastdiffed", @obsolete_fields) {
my $location = lsearch(\@fields, $remove);
splice(@fields, $location, 1);
}
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm Fri Feb 22 18:16:17 2008
@@ -110,7 +110,7 @@
}
my %values = %{$dbh->selectrow_hashref(
- 'SELECT ' . join(',', editable_bug_fields()) . ',
+ 'SELECT ' . join(',', editable_bug_fields()) . ', reporter,
lastdiffed AS start, LOCALTIMESTAMP(0) AS end
FROM bugs WHERE bug_id = ?',
undef, $id)};
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm Fri Feb 22 18:16:17 2008
@@ -146,7 +146,7 @@
# CONSTANTS
#
# Bugzilla version
-use constant BUGZILLA_VERSION => "3.0.2";
+use constant BUGZILLA_VERSION => "3.0.3";
#
# ControlMap constants for group_control_map.
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm Fri Feb 22 18:16:17 2008
@@ -898,7 +898,6 @@
} if (!defined($attributes));
# connect using our known info to the specified db
- # Apache::DBI will cache this when using mod_perl
my $self = DBI->connect($dsn, $user, $pass, $attributes)
or die "\nCan't connect to the database.\nError: $DBI::errstr\n"
. " Is your database installed and up and running?\n Do you have"
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm Fri Feb 22 18:16:17 2008
@@ -46,6 +46,8 @@
do($extension.'/code/'.$name.'.pl');
ThrowCodeError('extension_invalid',
{ errstr => $@, name => $name, extension => $extension }) if $@;
+ # Flush stored data.
+ Bugzilla->hook_args({});
}
}
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm Fri Feb 22 18:16:17 2008
@@ -219,12 +219,6 @@
package => 'CGI',
module => 'CGI',
version => '3.11',
- feature => 'mod_perl'
- },
- {
- package => 'Apache-DBI',
- module => 'Apache::DBI',
- version => '0.96',
feature => 'mod_perl'
},
);
@@ -585,7 +579,7 @@
$package = $module->{package};
}
else {
- $command = "$^X -MCPAN -e 'install \%s'";
+ $command = "$^X -MCPAN -e 'install \"\%s\"'";
# Non-Windows installations need to use module names, because
# CPAN doesn't understand package names.
$package = $module->{module};
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm Fri Feb 22 18:16:17 2008
@@ -69,6 +69,8 @@
if (my $value = $email->header($header)) {
$value = Encode::decode("UTF-8", $value) if Bugzilla->params->{'utf8'};
my $encoded = encode('MIME-Q', $value);
+ # Encode adds unnecessary line breaks, with two spaces after each.
+ $encoded =~ s/\n / /g;
$email->header_set($header, $encoded);
}
}
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm Fri Feb 22 18:16:17 2008
@@ -166,7 +166,7 @@
}
if (grep($_ =~/AS (actual_time|percentage_complete)$/, @$fieldsref)) {
- push(@supptables, "INNER JOIN longdescs AS ldtime " .
+ push(@supptables, "LEFT JOIN longdescs AS ldtime " .
"ON ldtime.bug_id = bugs.bug_id");
}
@@ -565,20 +565,20 @@
"^long_?desc,changedby" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
my $id = login_to_id($v, THROW_ERROR);
$term = "$table.who = $id";
},
"^long_?desc,changedbefore" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
$term = "$table.bug_when < " . $dbh->quote(SqlifyDate($v));
},
"^long_?desc,changedafter" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
$term = "$table.bug_when > " . $dbh->quote(SqlifyDate($v));
},
@@ -598,7 +598,7 @@
{
$extra = "AND $table.isprivate < 1";
}
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON bugs.bug_id = $table.bug_id $extra");
# Create search terms to add to the SELECT and WHERE clauses.
@@ -704,7 +704,7 @@
{
$extra = "AND $table.isprivate < 1";
}
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id $extra");
$f = "$table.thetext";
},
@@ -716,13 +716,13 @@
{
$extra = "AND $table.isprivate < 1";
}
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id $extra");
$f = "$table.isprivate";
},
"^work_time,changedby" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
my $id = login_to_id($v, THROW_ERROR);
$term = "(($table.who = $id";
@@ -730,21 +730,21 @@
},
"^work_time,changedbefore" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
$term = "(($table.bug_when < " . $dbh->quote(SqlifyDate($v));
$term .= ") AND ($table.work_time <> 0))";
},
"^work_time,changedafter" => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
$term = "(($table.bug_when > " . $dbh->quote(SqlifyDate($v));
$term .= ") AND ($table.work_time <> 0))";
},
"^work_time," => sub {
my $table = "longdescs_$chartid";
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
$f = "$table.work_time";
},
@@ -776,7 +776,7 @@
if(lsearch(\@fields, "bugs.remaining_time") == -1) {
push(@fields, "bugs.remaining_time");
}
- push(@supptables, "INNER JOIN longdescs AS $table " .
+ push(@supptables, "LEFT JOIN longdescs AS $table " .
"ON $table.bug_id = bugs.bug_id");
my $expression = "(100 * ((SUM($table.work_time) *
COUNT(DISTINCT $table.bug_when) /
@@ -1112,7 +1112,7 @@
",anyexact" => sub {
my @list;
foreach my $w (split(/,/, $v)) {
- if ($w eq "---" && $f !~ /milestone/) {
+ if ($w eq "---" && $f =~ /resolution/) {
$w = "";
}
$q = $dbh->quote($w);
@@ -1427,21 +1427,20 @@
my $suppstring = "bugs";
my @supplist = (" ");
foreach my $str (@supptables) {
- if (!$suppseen{$str}) {
- if ($str =~ /^(LEFT|INNER|RIGHT)\s+JOIN/i) {
- $str =~ /^(.*?)\s+ON\s+(.*)$/i;
- my ($leftside, $rightside) = ($1, $2);
- if ($suppseen{$leftside}) {
- $supplist[$suppseen{$leftside}] .= " AND ($rightside)";
- } else {
- $suppseen{$leftside} = scalar @supplist;
- push @supplist, " $leftside ON ($rightside)";
- }
+
+ if ($str =~ /^(LEFT|INNER|RIGHT)\s+JOIN/i) {
+ $str =~ /^(.*?)\s+ON\s+(.*)$/i;
+ my ($leftside, $rightside) = ($1, $2);
+ if (defined $suppseen{$leftside}) {
+ $supplist[$suppseen{$leftside}] .= " AND ($rightside)";
} else {
- # Do not accept implicit joins using comma operator
- # as they are not DB agnostic
- ThrowCodeError("comma_operator_deprecated");
+ $suppseen{$leftside} = scalar @supplist;
+ push @supplist, " $leftside ON ($rightside)";
}
+ } else {
+ # Do not accept implicit joins using comma operator
+ # as they are not DB agnostic
+ ThrowCodeError("comma_operator_deprecated");
}
}
$suppstring .= join('', @supplist);
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm Fri Feb 22 18:16:17 2008
@@ -267,7 +267,7 @@
foreach my $or_operand (split(/\|/, $qsword)) {
if ($or_operand =~ /^votes:([0-9]+)$/) {
# votes:xx ("at least xx votes")
- addChart('votes', 'greaterthan', $1, $negate);
+ addChart('votes', 'greaterthan', $1 - 1, $negate);
}
elsif ($or_operand =~ /^([^:]+):([^:]+)$/) {
# generic field1,field2,field3:value1,value2 notation
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm Fri Feb 22 18:16:17 2008
@@ -42,10 +42,12 @@
use MIME::Base64;
use Bugzilla::Bug;
+use Cwd qw(abs_path);
# for time2str - replace by TT Date plugin??
use Date::Format ();
+use File::Basename qw(dirname);
use File::Find;
-use File::Path;
+use File::Path qw(rmtree mkpath);
use File::Spec;
use IO::Dir;
@@ -898,6 +900,26 @@
}
}
+ # Under mod_perl, we look for templates using the absolute path of the
+ # template directory, which causes Template Toolkit to look for their
+ # *compiled* versions using the full absolute path under the data/template
+ # directory. (Like data/template/var/www/html/mod_perl/.) To avoid
+ # re-compiling templates under mod_perl, we symlink to the
+ # already-compiled templates. This doesn't work on Windows.
+ if (!ON_WINDOWS) {
+ my $abs_root = dirname(abs_path($templatedir));
+ my $todir = "$datadir/template$abs_root";
+ mkpath($todir);
+ # We use abs2rel so that the symlink will look like
+ # "../../../../template" which works, while just
+ # "data/template/template/" doesn't work.
+ my $fromdir = File::Spec->abs2rel("$datadir/template/template", $todir);
+ # We eval for systems that can't symlink at all, where "symlink"
+ # throws a fatal error.
+ eval { symlink($fromdir, "$todir/template")
+ or warn "Failed to symlink from $fromdir to $todir: $!" };
+ }
+
# If anything created a Template object before now, clear it out.
delete Bugzilla->request_cache->{template};
}
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm Fri Feb 22 18:16:17 2008
@@ -562,21 +562,16 @@
sub can_edit_product {
my ($self, $prod_id) = @_;
my $dbh = Bugzilla->dbh;
- my $sth = $self->{sthCanEditProductId};
- my $userid = $self->{id};
- my $query = q{SELECT group_id FROM group_control_map
- WHERE product_id =?
- AND canedit != 0 };
- if (%{$self->groups}) {
- my $groups = join(',', values(%{$self->groups}));
- $query .= qq{AND group_id NOT IN($groups)};
- }
- unless ($sth) { $sth = $dbh->prepare($query); }
- $sth->execute($prod_id);
- $self->{sthCanEditProductId} = $sth;
- my $result = $sth->fetchrow_array();
-
- return (!defined($result));
+
+ my $has_external_groups =
+ $dbh->selectrow_array('SELECT 1
+ FROM group_control_map
+ WHERE product_id = ?
+ AND canedit != 0
+ AND group_id NOT IN(' . $self->groups_as_string . ')',
+ undef, $prod_id);
+
+ return !$has_external_groups;
}
sub can_see_bug {
@@ -771,7 +766,7 @@
($self->in_group('editcomponents', $product->id)
&& $self->can_see_product($product->name))
- || ThrowUserError('product_access_denied', {product => $product->name});
+ || ThrowUserError('product_admin_denied', {product => $product->name});
# Return the validated product object.
return $product;
@@ -1375,8 +1370,8 @@
if ($fieldName eq "CC") {
my $login = $self->login;
- my $inold = ($old =~ /^(.*,)?\Q$login\E(,.*)?$/);
- my $innew = ($new =~ /^(.*,)?\Q$login\E(,.*)?$/);
+ my $inold = ($old =~ /^(.*,\s*)?\Q$login\E(,.*)?$/);
+ my $innew = ($new =~ /^(.*,\s*)?\Q$login\E(,.*)?$/);
if ($inold != $innew)
{
$events{+EVT_ADDED_REMOVED} = 1;
Modified: trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/QU…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART Fri Feb 22 18:16:17 2008
@@ -27,9 +27,6 @@
4. Edit the localconfig file, in particular the $webservergroup and
$db_* variables. In particular, $db_name and $db_user will define
your database setup in step 5.
-
- If you want to change platforms, operating systems, severities and
- priorities, this can also be done in localconfig at this time.
5. Using the name you provided as $db_name above, create a MySQL database
for Bugzilla. You should also create a user permission for the name
@@ -67,7 +64,7 @@
account information you provided in step 6.
9. Scroll to the bottom of the page after logging in, and select
- "parameters". Set up the relevant parameters for your local setup.
+ "Parameters". Set up the relevant parameters for your local setup.
See section 4.2 of the Bugzilla Guide for a in-depth description of
some of the configuration parameters available.
Modified: trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/UP…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8 (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8 Fri Feb 22 18:16:17 2008
@@ -3,6 +3,11 @@
If you are upgrading from 2.8 or newer, please read the Installation and
Upgrade instructions in The Bugzilla Guide, found with this distribution in
docs/html, docs/txt, and docs/sgml.
+
+Please note that the period in our version numbers is a place separator, not
+a decimal point. The 14 in version 2.14 is newer than the 8 in 2.8, for
+example. You should only be using this file if you have a single digit
+after the period in the version 2.x Bugzilla you are upgrading from.
For a complete list of what changes, use Bonsai
(http://cvs-mirror.mozilla.org/webtools/bonsai/cvsqueryform.cgi) to
Modified: trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/bu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi Fri Feb 22 18:16:17 2008
@@ -932,7 +932,7 @@
# Now put $db_order into a format that Bugzilla::Search can use.
# (We create $db_order as a string first because that's the way
# we did it before Bugzilla::Search took an "order" argument.)
-my @orderstrings = split(',', $db_order);
+my @orderstrings = split(/,\s*/, $db_order);
# Generate the basic SQL query that will be used to generate the bug list.
my $search = new Bugzilla::Search('fields' => \@selectnames,
Modified: trunk/web/reactos.org/htdocs/bugzilla/config.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/co…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/config.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/config.cgi Fri Feb 22 18:16:17 2008
@@ -55,6 +55,8 @@
$vars->{'keyword'} = [map($_->name, Bugzilla::Keyword->get_all)];
$vars->{'resolution'} = get_legal_field_values('resolution');
$vars->{'status'} = get_legal_field_values('bug_status');
+$vars->{'custom_fields'} =
+ [Bugzilla->get_fields({custom => 1, obsolete => 0, type => FIELD_TYPE_SINGLE_SELECT})];
# Include a list of product objects.
if ($cgi->param('product')) {
Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/README
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/co…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/README (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/README Fri Feb 22 18:16:17 2008
@@ -1,47 +1,73 @@
This directory contains contributed software related to Bugzilla.
Things in here have not necessarily been tested or tried by anyone
-except the original contributor, so tred carefully. But it may still
-be useful to you.
+except the original contributor, so tread carefully. But it may still
+be useful to you. Read the files themselves for detailed usage information
+on any specific script.
This file is encoded in UTF8 for purposes of contributor names.
This directory includes:
+bugzilla_ldapsync.rb -- Script that can be run via Cron that queries an LDAP
+ server for e-mail addresses to add Bugzilla users
+ for. Will optionally disable Bugzilla users with
+ no matching LDAP record. Contributed by Thomas
+ Stromberg <thomas+bugzilla(a)stromberg.org>.
+
bugzilla-submit/ -- A standalone bug submission program.
- mysqld-watcher.pl -- This script can be installed as a frequent cron
- job to clean up stalled/dead queries.
+ bzdbcopy.pl -- A script to copy data from an installation running
+ on one DB platform to an installation running on
+ another DB platform.
- sendbugmail.pl -- This script is a drop-in replacement for the
- 'processmail' script which used to be shipped
- with Bugzilla, but was replaced by the
- Bugzilla/BugMail.pm Perl module. You can use
- this script if you were previously calling
- processmail from other scripts external to
- Bugzilla. See the comments at the top of
- the file for usage information. Contributed
- by Nick Barnes of Ravenbrook Limited.
+bz_webservice_demo.p -- An example script that demonstrates how to talk to
+ Bugzilla via XMLRPC.
+
+ cmdline/ -- Various commands for querying your Bugzilla
+ installation.
+
+ cvs-update.pl -- Script to keep a record of all CVS updates made
+ from a given directory. The log is useful when
+ changes need to be backed out.
gnatsparse/ -- A Python script used to import a GNATS database
into Bugzilla.
- gnats2bz.pl -- A perl script to help import bugs from a GNATS
+ gnats2bz.pl -- A Perl script to help import bugs from a GNATS
database into a Bugzilla database. Contributed by
- Tom Schutter <tom(a)platte.com>
-
- yp_nomail.sh -- Script you can run via cron that regularly updates
- the nomail file for terminated employees
+ Tom Schutter <tom(a)platte.com>.
-bugzilla_ldapsync.rb -- Script you can run via cron that queries an LDAP
- server for e-mail addresses to add Bugzilla users
- for. Will optionally disable Bugzilla users with
- no matching LDAP record. Contributed by Thomas
- Stromberg <thomas+bugzilla(a)stromberg.org>
+ jb2bz.py -- Script to import bugs from JitterBug to Bugzilla.
- syncLDAP.pl -- Script you can run via cron that queries an LDAP
+ merge-users.pl -- Script to merge two user accounts. The activities
+ from one account are moved to the another. Specify
+ both accounts on the command line. The new account
+ must already exist.
+
+ mysqld-watcher.pl -- This script can be installed as a frequent Cron
+ job to clean up stalled/dead queries.
+
+ recode.pl -- Script to convert a database from one encoding
+ (or multiple encodings) to UTF-8.
+
+ sendbugmail.pl -- This script is a drop-in replacement for the
+ 'processmail' script which used to be shipped
+ with Bugzilla, but was replaced by the
+ Bugzilla/BugMail.pm Perl module. This script can
+ be used if 'processmail' was previously called
+ from other scripts external to
+ Bugzilla. See the comments at the top of
+ the file for usage information. Contributed
+ by Nick Barnes of Ravenbrook Limited.
+
+sendunsentbugmail.pl -- Script to find bugs with un-sent mail and to
+ send all unsent messages.
+
+ syncLDAP.pl -- Script that can be run via Cron that queries an LDAP
server for users and e-mail addresses and adds
missing users to Bugzilla. Can disable/update
non-existing/changed information. Contributed by
- Andreas Höfler <andreas.hoefler(a)bearingpoint.com>
+ Andreas Höfler <andreas.hoefler(a)bearingpoint.com>.
-
+ yp_nomail.sh -- Script that can be run via Cron that regularly updates
+ the nomail file for terminated employees.
Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/co…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl Fri Feb 22 18:16:17 2008
@@ -131,12 +131,14 @@
votes => ['who'],
# Tables affecting global behavior / other users.
components => ['initialowner', 'initialqacontact'],
+ component_cc => ['user_id component_id'],
quips => ['userid'],
series => ['creator'],
whine_events => ['owner_userid'],
watch => ['watcher watched', 'watched watcher'],
# Tables affecting the user directly.
namedqueries => ['userid name'],
+ namedqueries_link_in_footer => ['user_id namedquery_id'],
user_group_map => ['user_id group_id isbless grant_type'],
email_setting => ['user_id relationship event'],
profile_setting => ['user_id setting_name'],
Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/co…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl Fri Feb 22 18:16:17 2008
@@ -276,7 +276,7 @@
Bugzilla::User->create({
login_name => $key,
realname => @$value{'realname'},
- password => '*'});
+ cryptpassword => '*'});
}
print "done!\n" unless $quiet;
}
Modified: trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/ed…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi Fri Feb 22 18:16:17 2008
@@ -585,9 +585,6 @@
}
# 2) Whines
- my $sth_whineidFromSchedules = $dbh->prepare(
- qq{SELECT eventid FROM whine_schedules
- WHERE mailto = ? AND mailto_type = ?});
my $sth_whineidFromEvents = $dbh->prepare(
'SELECT id FROM whine_events WHERE owner_userid = ?');
my $sth_deleteWhineEvent = $dbh->prepare(
@@ -597,12 +594,8 @@
my $sth_deleteWhineSchedule = $dbh->prepare(
'DELETE FROM whine_schedules WHERE eventid = ?');
- $sth_whineidFromSchedules->execute($otherUserID, MAILTO_USER);
- while ($id = $sth_whineidFromSchedules->fetchrow_array()) {
- $sth_deleteWhineQuery->execute($id);
- $sth_deleteWhineSchedule->execute($id);
- $sth_deleteWhineEvent->execute($id);
- }
+ $dbh->do('DELETE FROM whine_schedules WHERE mailto = ? AND mailto_type = ?',
+ undef, ($otherUserID, MAILTO_USER));
$sth_whineidFromEvents->execute($otherUserID);
while ($id = $sth_whineidFromEvents->fetchrow_array()) {
Modified: trunk/web/reactos.org/htdocs/bugzilla/email_in.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/em…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/email_in.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/email_in.pl Fri Feb 22 18:16:17 2008
@@ -36,6 +36,7 @@
use Email::MIME::Attachment::Stripper;
use Getopt::Long qw(:config bundling);
use Pod::Usage;
+use Encode qw(encode decode);
use Bugzilla;
use Bugzilla::Bug qw(ValidateBugID);
@@ -295,9 +296,17 @@
my $body;
foreach my $part (@parts) {
my $ct = $part->content_type || 'text/plain';
+ my $charset = 'iso-8859-1';
+ if ($ct =~ /charset=([^;]+)/) {
+ $charset= $1;
+ }
debug_print("Part Content-Type: $ct", 2);
+ debug_print("Part Character Encoding: $charset", 2);
if (!$ct || $ct =~ /^text\/plain/i) {
$body = $part->body;
+ if (Bugzilla->params->{'utf8'}) {
+ $body = encode('UTF-8', decode($charset, $body));
+ }
last;
}
}
@@ -433,9 +442,24 @@
be included in the bug description.
The C<@> labels can be any valid field name in Bugzilla that can be
-set on C<enter_bug.cgi>. For the list of field names, see the
-C<fielddefs> table in the database. The above example shows the
-minimum fields you B<must> specify.
+set on C<enter_bug.cgi>. For the list of required field names, see
+L<Bugzilla::WebService::Bug/Create>. Note, that there is some difference
+in the names of the required input fields between web and email interfaces,
+as listed below:
+
+=over
+
+=item *
+
+C<platform> in web is C<@rep_platform> in email
+
+=item *
+
+C<severity> in web is C<@bug_severity> in email
+
+=back
+
+For the list of all field names, see the C<fielddefs> table in the database.
The values for the fields can be split across multiple lines, but
note that a newline will be parsed as a single space, for the value.
Modified: trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/mo…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl Fri Feb 22 18:16:17 2008
@@ -28,7 +28,6 @@
# startup, so we always specify () after using any module in this
# file.
-use Apache::DBI ();
use Apache2::ServerUtil;
use Apache2::SizeLimit;
use ModPerl::RegistryLoader ();
@@ -71,6 +70,9 @@
# Have ModPerl::RegistryLoader pre-compile all CGI scripts.
my $rl = new ModPerl::RegistryLoader();
+# If we try to do this in "new" it fails because it looks for a
+# Bugzilla/ModPerl/ResponseHandler.pm
+$rl->{package} = 'Bugzilla::ModPerl::ResponseHandler';
# Note that $cgi_path will be wrong if somebody puts the libraries
# in a different place than the CGIs.
foreach my $file (glob "$cgi_path/*.cgi") {
Modified: trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/po…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi Fri Feb 22 18:16:17 2008
@@ -127,10 +127,6 @@
# value (e.g. "---" for custom single select fields).
my @bug_fields = grep { defined $cgi->param($_->name) } @custom_bug_fields;
@bug_fields = map { $_->name } @bug_fields;
-
-# Custom tables must be locked (required when validating custom fields).
-my @custom_tables = grep { $_->type == FIELD_TYPE_SINGLE_SELECT } @custom_bug_fields;
-@custom_tables = map { $_->name . ' READ' } @custom_tables;
push(@bug_fields, qw(
product
Modified: trunk/web/reactos.org/htdocs/bugzilla/query.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/qu…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/query.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/query.cgi Fri Feb 22 18:16:17 2008
@@ -111,6 +111,7 @@
# and ignore any multiple values.
sub PrefillForm {
my ($buf) = (@_);
+ my $cgi = Bugzilla->cgi;
$buf = new Bugzilla::CGI($buf);
my $foundone = 0;
@@ -136,17 +137,22 @@
$default{$name} = [];
}
+ # we won't prefill the boolean chart data from this query if
+ # there are any being submitted via params
+ my $prefillcharts = (grep(/^field-/, $cgi->param)) ? 0 : 1;
# Iterate over the URL parameters
foreach my $name ($buf->param()) {
my @values = $buf->param($name);
- # If the name begins with field, type, or value, then it is part of
- # the boolean charts. Because these are built different than the rest
- # of the form, we don't need to save a default value. We do, however,
- # need to indicate that we found something so the default query isn't
- # added in if all we have are boolean chart items.
- if ($name =~ m/^(?:field|type|value)/) {
+ # If the name begins with the string 'field', 'type', 'value', or
+ # 'negate', then it is part of the boolean charts. Because
+ # these are built different than the rest of the form, we need
+ # to store these as parameters. We also need to indicate that
+ # we found something so the default query isn't added in if
+ # all we have are boolean chart items.
+ if ($name =~ m/^(?:field|type|value|negate)/) {
+ $cgi->param(-name => $name, -value => $values[0]) if ($prefillcharts);
$foundone = 1;
}
# If the name ends in a number (which it does for the fields which
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/… Fri Feb 22 18:16:17 2008
@@ -74,7 +74,7 @@
<tr>
<td valign="top">Product Milestone URL:</td>
<td valign="top">
- <a href="[% product.milestone_url FILTER uri %]">
+ <a href="[% product.milestone_url FILTER html %]">
[% product.milestone_url FILTER html %]
</a>
</td>
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/dele…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/dele… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/dele… Fri Feb 22 18:16:17 2008
@@ -120,10 +120,12 @@
indicated problems first before you can proceed.</b></p>
[% END %]
- <p><input type="submit" id="delete" value="Yes, delete">
- <input type="hidden" name="action" value="delete">
- <input type="hidden" name="group" value="[% gid FILTER html %]">
- <input type="hidden" name="token" value="[% token FILTER html %]">
+ <p>
+ <input type="submit" id="delete" value="Yes, delete">
+ <input type="hidden" name="action" value="delete">
+ <input type="hidden" name="group" value="[% gid FILTER html %]">
+ <input type="hidden" name="token" value="[% token FILTER html %]">
+ </p>
</form>
Go back to the <a href="editgroups.cgi">group list</a>.
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth… Fri Feb 22 18:16:17 2008
@@ -69,10 +69,10 @@
</dd>
<dt>LDAP</dt>
<dd>
- LDAP authentication using an LDAP server. This method is
- experimental; please see the $terms.Bugzilla documentation for more
- information. Using this method requires additional parameters
- to be set above.
+ LDAP authentication using an LDAP server.
+ Please see the $terms.Bugzilla documentation
+ for more information. Using this method requires
+ additional parameters to be set above.
</dd>
</dl>",
@@ -121,4 +121,4 @@
"to be created. If this parameter is left blank, no users " _
"will be permitted to create their own accounts and all accounts " _
"will have to be created by an administrator." }
-%]
+%]
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/co…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/co… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/co… Fri Feb 22 18:16:17 2008
@@ -90,7 +90,7 @@
<td>Milestone URL:</td>
<td>
[% IF product.milestone_url %]
- <a href="[% product.milestone_url FILTER uri %]">
+ <a href="[% product.milestone_url FILTER html %]">
[%- product.milestone_url FILTER html %]
</a>
[% ELSE %]
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/li…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/li… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/li… Fri Feb 22 18:16:17 2008
@@ -50,14 +50,17 @@
name => "product_count"
align => "right"
heading => "Product Count"
- },
- {
+ }
+ ]
+%]
+
+[% IF user.in_group('editcomponents') %]
+ [% columns.push({
heading => "Action..."
content => "Add product"
- contentlink => add_contentlink
- },
- ]
-%]
+ contentlink => add_contentlink })
+ %]
+[% END %]
[% PROCESS admin/table.html.tmpl
columns = columns
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confi…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confi… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confi… Fri Feb 22 18:16:17 2008
@@ -401,32 +401,32 @@
will cease along with the deletion of the user account.
</li>
[% END %]
- [% IF whine_events || whine_schedules %]
- <li>
- [% otheruser.login FILTER html %]
- [% IF whine_events %]
- has scheduled
- [% IF whine_events == 1 %]
- a whine
- [% ELSE %]
- [%+ whine_events %] whines
- [% END %]
- [% END %]
- [% IF whine_schedules %]
- [%+ 'and' IF whine_events %]
- is on the receiving end of
- [% IF whine_schedules == 1 %]
- a whine
- [% ELSE %]
- [%+ whine_schedules %] whines
- [% END %]
- [% END %].
- [% IF whine_events + whine_schedules == 1 %]
+ [% IF whine_events %]
+ <li>
+ [% otheruser.login FILTER html %] has scheduled
+ [% IF whine_events == 1 %]
+ a whine
+ [% ELSE %]
+ [%+ whine_events %] whines
+ [% END %].
+ [% IF whine_events == 1 %]
This whine
[% ELSE %]
These whines
[% END %]
will be deleted along with the user account.
+ </li>
+ [% END %]
+ [% IF whine_schedules %]
+ <li>
+ [% otheruser.login FILTER html %] is on the receiving end of
+ [% IF whine_schedules == 1 %]
+ a whine
+ [% ELSE %]
+ [%+ whine_schedules %] whines
+ [% END %].
+ The corresponding schedules will be deleted along with the user account,
+ but the whines themselves will be left unaltered.
</li>
[% END %]
</ul>
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tr…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tr… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tr… Fri Feb 22 18:16:17 2008
@@ -144,10 +144,10 @@
<span class="summ_text">[%+ bug.short_desc FILTER html %]</span>
<span class="summ_info">[[% INCLUDE buginfo %]]</span>
</a>
- <a href="showdependencytree.cgi?id=[% bugid FILTER uri %]"
+ <a href="showdependencytree.cgi?id=[% bugid FILTER url_quote %]"
class="tree_link">
<img src="skins/standard/dependency-tree/tree.png"
- title="See dependency tree for [% terms.bug %] [%+ bugid FILTER uri %]">
+ title="See dependency tree for [% terms.bug %] [%+ bugid FILTER html %]">
</a>
[% END %]
[% END %]
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl Fri Feb 22 18:16:17 2008
@@ -56,6 +56,14 @@
// ==========
var severity = [ [% FOREACH x = severity %]'[% x FILTER js %]', [% END %] ];
+
+
+// Custom Fields
+// =============
+
+[% FOREACH cf = custom_fields %]
+var [% cf.name FILTER js %] = [ [% FOREACH x = cf.legal_values %]'[% x FILTER js %]', [% END %] ];
+[% END %]
// Products and Components
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl Fri Feb 22 18:16:17 2008
@@ -103,17 +103,28 @@
</Seq>
</bz:severity>
+[% FOREACH cf = custom_fields %]
+ <bz:[% cf.name FILTER html %]>
+ <Seq>
+ [% FOREACH item = cf.legal_values %]
+ <li>[% item FILTER html %]</li>
+ [% END %]
+ </Seq>
+ </bz:[% cf.name FILTER html %]>
+
+[% END %]
+
<bz:products>
<Seq>
[% FOREACH product = products %]
<li>
- <bz:product rdf:about="[% Param('urlbase') %]product.cgi?name=[% product.name FILTER uri %]">
+ <bz:product rdf:about="[% Param('urlbase') %]product.cgi?name=[% product.name FILTER url_quote %]">
<bz:name>[% product.name FILTER html %]</bz:name>
<bz:components>
<Seq>
[% FOREACH component = product.components %]
- <li resource="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER uri %]"/>
+ <li resource="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER url_quote %]"/>
[% END %]
</Seq>
</bz:components>
@@ -121,7 +132,7 @@
<bz:versions>
<Seq>
[% FOREACH version = product.versions %]
- <li resource="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER uri %]"/>
+ <li resource="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER url_quote %]"/>
[% END %]
</Seq>
</bz:versions>
@@ -130,7 +141,7 @@
<bz:target_milestones>
<Seq>
[% FOREACH milestone = product.milestones %]
- <li resource="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER uri %]"/>
+ <li resource="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER url_quote %]"/>
[% END %]
</Seq>
</bz:target_milestones>
@@ -147,7 +158,7 @@
[% FOREACH product = products %]
[% FOREACH component = product.components %]
<li>
- <bz:component rdf:about="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER uri %]">
+ <bz:component rdf:about="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER url_quote %]">
<bz:name>[% component.name FILTER html %]</bz:name>
</bz:component>
</li>
@@ -161,7 +172,7 @@
[% FOREACH product = products %]
[% FOREACH version = product.versions %]
<li>
- <bz:version rdf:about="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER uri %]">
+ <bz:version rdf:about="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER url_quote %]">
<bz:name>[% version.name FILTER html %]</bz:name>
</bz:version>
</li>
@@ -176,7 +187,7 @@
[% FOREACH product = products %]
[% FOREACH milestone = product.milestones %]
<li>
- <bz:target_milestone rdf:about="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER uri %]">
+ <bz:target_milestone rdf:about="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER url_quote %]">
<bz:name>[% milestone.name FILTER html %]</bz:name>
</bz:target_milestone>
</li>
@@ -191,7 +202,7 @@
[% PROCESS "global/field-descs.none.tmpl" %]
[% FOREACH item = field %]
<li>
- <bz:field rdf:about="[% Param('urlbase') %]field.cgi?name=[% item.name FILTER uri %]">
+ <bz:field rdf:about="[% Param('urlbase') %]field.cgi?name=[% item.name FILTER url_quote %]">
<bz:name>[% item.name FILTER html %]</bz:name>
<bz:description>[% (field_descs.${item.name} OR item.description) FILTER html %]</bz:description>
</bz:field>
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error… Fri Feb 22 18:16:17 2008
@@ -1201,7 +1201,7 @@
create the milestone '[% defaultmilestone FILTER html %]'</a> before
it can be made the default milestone for product '[% product FILTER html %]'.
- [% ELSIF error == "product_access_denied" %]
+ [% ELSIF error == "product_admin_denied" %]
[% title = "Product Access Denied" %]
You are not allowed to edit properties of product '[% product FILTER html %]'.
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl Fri Feb 22 18:16:17 2008
@@ -58,11 +58,11 @@
[% END %]
[% BLOCK ics_uid %]
- [% "${bug_id}@${base_url}" FILTER uri FILTER ics('UID') %]
+ [% "${bug_id}@${base_url}" FILTER url_quote FILTER ics('UID') %]
[% END %]
[% BLOCK ics_url %]
- [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER uri FILTER ics('URL;VALUE=URI') %]
+ [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER url_quote FILTER ics('URL;VALUE=URI') %]
[% END %]
[% BLOCK ics_dtstart %]
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.t…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.t… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.t… Fri Feb 22 18:16:17 2008
@@ -120,13 +120,13 @@
[% "Unknown" IF NOT users.$userid %]
</td>
<td>
- <a href="quips.cgi?action=delete&quipid=[% quipid FILTER uri%]">
+ <a href="quips.cgi?action=delete&quipid=[% quipid FILTER url_quote %]">
Delete
</a>
</td>
<td>
- <input type="checkbox" name="quipid_[% quipid FILTER uri%]"
- id="quipid_[% quipid FILTER uri%]"
+ <input type="checkbox" name="quipid_[% quipid FILTER html %]"
+ id="quipid_[% quipid FILTER html %]"
[%- ' checked="checked"' IF quips.$quipid.approved %]>
</td>
</tr>
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearch…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearch… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearch… Fri Feb 22 18:16:17 2008
@@ -264,7 +264,17 @@
<td><tt>attachmimetype</tt></td>
<td>Attachment mime-type <i>(“attachments.mimetype”)</i></td>
</tr>
-
+<tr>
+ <td> </td>
+ <td> </td>
+ <td><tt>votes</tt></td>
+ <td> </td>
+ <td>
+ Number of votes<br>
+ (votes:<i>N</i> and votes>=<i>N</i> mean "at least N votes",
+ votes><i>N</i> means "more than N votes")
+ </td>
+</tr>
</table>
<p>
@@ -301,19 +311,6 @@
<td><b>:</b><i>area</i></td>
<td><b>product,component:</b><i>area</i></td>
</tr>
-<!--
-<tr>
- <td><tt>:browser</tt></td>
- <td><i>[% terms.bugs %] in the Browser product</i></td>
-</tr>
- <td><tt>:mail</tt></td>
- <td><i>[% terms.bugs %] in the MailNews product</td>
-</tr>
-<tr>
- <td><tt>:xbl</tt></td>
- <td><i>[% terms.bugs %] in the XBL component</i></td>
-</tr>
- -->
<tr>
<td><i>sev</i></td>
<td><b>severity:</b><i>sev</i></td>
@@ -342,30 +339,10 @@
<td><b>@</b><i>assignee</i></td>
<td><b>assignedto:</b><i>assignee</i></td>
</tr>
-<!--
-<tr>
- <td><tt>@nobody</tt></td>
- <td><i>assigneeless [% terms.bugs %]</i></td>
-</tr>
-<tr>
- <td><tt>@mozilla.org</tt></td>
- <td><i>[% terms.bugs %] assigned to mozilla.org members</i></td>
-</tr>
- -->
<tr>
<td><b>!</b><i>keyword</i></td>
<td><b>keywords:</b><i>keyword</i></td>
</tr>
-<!--
-<tr>
- <td><tt>!crash</tt></td>
- <td><i>crasher [% terms.bugs %]</i></td>
-</tr>
-<tr>
- <td><tt>!helpwanted</tt></td>
- <td><i>[% terms.bugs %] waiting for your help</i></td>
-</tr>
- -->
</table>
<p>
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-not…
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/te…
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-not… (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-not… Fri Feb 22 18:16:17 2008
@@ -20,7 +20,7 @@
[% PROCESS global/variables.none.tmpl %]
[% INCLUDE global/header.html.tmpl
- title = "$terms.Bugzilla 3.0.2 Release Notes"
+ title = "$terms.Bugzilla 3.0.3 Release Notes"
style_urls = ['skins/standard/release-notes.css']
%]
@@ -60,6 +60,42 @@
most important fixes in each release. If you want a detailed list of
<em>everything</em> that's changed in each version, you should use our
<a href="http://www.bugzilla.org/status/changes.html">Change Log Page</a>.</p>
+
+<h3>3.0.3</h3>
+
+<ul>
+ <li>mod_perl no longer compiles [% terms.Bugzilla %]'s code for each Apache
+ process individually. It now compiles code only once and shares it among
+ each Apache process. This greatly improves performance and highly
+ decreases the memory footprint.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=398241">[% terms.Bug %] 398241</a>)</li>
+
+ <li>You can now search for '---' (without quotes) in versions and milestones.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=362436">[% terms.Bug %] 362436</a>)</li>
+
+ <li>[% terms.Bugzilla %] should no longer break lines unnecessarily in
+ email subjects. This was causing trouble with some email clients.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374424">[% terms.Bug %] 374424</a>)</li>
+
+ <li>If you had selected "I'm added to or removed from this capacity" option
+ for the "CC" role in your email preferences, you wouldn't get mail when
+ more than one person was added to the CC list at once.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=394796">[% terms.Bug %] 394796</a>)</li>
+
+ <li>Deleting a user account no longer deletes whines from another user who
+ has the deleted account as addressee. The schedule is simply removed,
+ but the whine itself is left intact.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=395924">[% terms.Bug %] 395924</a>)</li>
+
+ <li><kbd>contrib/merge-users.pl</kbd> now correctly merges all required
+ fields when merging two user accounts.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=400160">[% terms.Bug %] 400160</a>)</li>
+
+ <li>[% terms.Bugzilla %] no longer requires Apache::DBI to run under
+ mod_perl. It caused troubles such as lost connections with the DB and
+ didn't give any important performance gain.
+ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=408766">[% terms.Bug %] 408766</a>)</li>
+</ul>
<h3>3.0.2</h3>
@@ -576,6 +612,10 @@
<h2><a name="v30_security"></a>Security Updates in This Release</h2>
+<h3>3.0.3</h3>
+
+<p>No security fixes in this release.</p>
+
<h3>3.0.2</h3>
<p>[% terms.Bugzilla %] 3.0.1 had an important security fix that is
Author: fireball
Date: Fri Feb 22 14:47:20 2008
New Revision: 32448
URL: http://svn.reactos.org/svn/reactos?rev=32448&view=rev
Log:
- We're comparing WCHARs, not CHARs, spotted by Ged Murphy.
Modified:
trunk/reactos/ntoskrnl/fsrtl/name.c
Modified: trunk/reactos/ntoskrnl/fsrtl/name.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fsrtl/name.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/fsrtl/name.c (original)
+++ trunk/reactos/ntoskrnl/fsrtl/name.c Fri Feb 22 14:47:20 2008
@@ -150,7 +150,7 @@
for (i = 0; i < Name.Length / sizeof(WCHAR); i++)
{
/* If we found one... */
- if (Name.Buffer[i] == '\\')
+ if (Name.Buffer[i] == L'\\')
{
/* If it begins string, just notice it and continue */
if (i == 0)