Commit a0196b5d authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 342121: Remove usage of Config qw(:locations) in favor of Constants::bz_locations()

Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=justdave
parent 38b17a8f
...@@ -47,9 +47,10 @@ that users upload to the Bugzilla server. ...@@ -47,9 +47,10 @@ that users upload to the Bugzilla server.
=cut =cut
use Bugzilla::Constants;
use Bugzilla::Error; use Bugzilla::Error;
use Bugzilla::Flag; use Bugzilla::Flag;
use Bugzilla::Config qw(:locations Param); use Bugzilla::Config;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Util qw(trick_taint); use Bugzilla::Util qw(trick_taint);
...@@ -384,7 +385,7 @@ sub _get_local_filename { ...@@ -384,7 +385,7 @@ sub _get_local_filename {
my $self = shift; my $self = shift;
my $hash = ($self->id % 100) + 100; my $hash = ($self->id % 100) + 100;
$hash =~ s/.*(\d\d)$/group.$1/; $hash =~ s/.*(\d\d)$/group.$1/;
return "$attachdir/$hash/attachment." . $self->id; return bz_locations()->{'attachdir'} . "/$hash/attachment." . $self->id;
} }
sub _validate_filename { sub _validate_filename {
...@@ -700,6 +701,7 @@ sub insert_attachment_for_bug { ...@@ -700,6 +701,7 @@ sub insert_attachment_for_bug {
# If the file is to be stored locally, stream the file from the webserver # If the file is to be stored locally, stream the file from the webserver
# to the local file without reading it into a local variable. # to the local file without reading it into a local variable.
if ($cgi->param('bigfile')) { if ($cgi->param('bigfile')) {
my $attachdir = bz_locations()->{'attachdir'};
my $fh = $cgi->upload('data'); my $fh = $cgi->upload('data');
my $hash = ($attachid % 100) + 100; my $hash = ($attachid % 100) + 100;
$hash =~ s/.*(\d\d)$/group.$1/; $hash =~ s/.*(\d\d)$/group.$1/;
......
...@@ -35,7 +35,7 @@ package Bugzilla::BugMail; ...@@ -35,7 +35,7 @@ package Bugzilla::BugMail;
use Bugzilla::Error; use Bugzilla::Error;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Config qw(:DEFAULT $datadir); use Bugzilla::Config;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::Bug; use Bugzilla::Bug;
use Bugzilla::Product; use Bugzilla::Product;
...@@ -62,7 +62,7 @@ my %rel_names = (REL_ASSIGNEE , "AssignedTo", ...@@ -62,7 +62,7 @@ my %rel_names = (REL_ASSIGNEE , "AssignedTo",
my %nomail; my %nomail;
# This is run when we load the package # This is run when we load the package
if (open(NOMAIL, '<', "$datadir/nomail")) { if (open(NOMAIL, '<', bz_locations->{'datadir'} . "/nomail")) {
while (<NOMAIL>) { while (<NOMAIL>) {
$nomail{trim($_)} = 1; $nomail{trim($_)} = 1;
} }
......
...@@ -33,43 +33,7 @@ package Bugzilla::Config; ...@@ -33,43 +33,7 @@ package Bugzilla::Config;
use strict; use strict;
use base qw(Exporter); use base qw(Exporter);
use Bugzilla::Constants;
# Under mod_perl, get this from a .htaccess config variable,
# and/or default from the current 'real' dir
# At some stage after this, it may be possible for these dir locations
# to go into localconfig. localconfig can't be specified in a config file,
# except possibly with mod_perl. If you move localconfig, you need to change
# the define here.
# $libpath is really only for mod_perl; its not yet possible to move the
# .pms elsewhere.
# $webdotdir must be in the webtree somewhere. Even if you use a local dot,
# we output images to there. Also, if $webdot dir is not relative to the
# bugzilla root directory, you'll need to change showdependencygraph.cgi to
# set image_url to the correct location.
# The script should really generate these graphs directly...
# Note that if $libpath is changed, some stuff will break, notably dependency
# graphs (since the path will be wrong in the HTML). This will be fixed at
# some point.
# constant paths
our $libpath = '.';
our $templatedir = "$libpath/template";
# variable paths
our $project;
our $localconfig;
our $datadir;
if ($ENV{'PROJECT'} && $ENV{'PROJECT'} =~ /^(\w+)$/) {
$project = $1;
$localconfig = "$libpath/localconfig.$project";
$datadir = "$libpath/data/$project";
} else {
$localconfig = "$libpath/localconfig";
$datadir = "$libpath/data";
}
our $attachdir = "$datadir/attachments";
our $webdotdir = "$datadir/webdot";
our $extensionsdir = "$libpath/extensions";
our @parampanels = (); our @parampanels = ();
...@@ -84,11 +48,9 @@ our @parampanels = (); ...@@ -84,11 +48,9 @@ our @parampanels = ();
admin => [qw(UpdateParams SetParam WriteParams)], admin => [qw(UpdateParams SetParam WriteParams)],
db => [qw($db_driver $db_host $db_port $db_name $db_user $db_pass $db_sock)], db => [qw($db_driver $db_host $db_port $db_name $db_user $db_pass $db_sock)],
localconfig => [qw($cvsbin $interdiffbin $diffpath $webservergroup)], localconfig => [qw($cvsbin $interdiffbin $diffpath $webservergroup)],
locations => [qw($libpath $localconfig $attachdir $datadir $templatedir
$webdotdir $project $extensionsdir)],
params => [qw(@parampanels)], params => [qw(@parampanels)],
); );
Exporter::export_ok_tags('admin', 'db', 'localconfig', 'locations', 'params'); Exporter::export_ok_tags('admin', 'db', 'localconfig', 'params');
# Bugzilla version # Bugzilla version
$Bugzilla::Config::VERSION = "2.23.1+"; $Bugzilla::Config::VERSION = "2.23.1+";
...@@ -106,10 +68,13 @@ use vars qw(@param_list); ...@@ -106,10 +68,13 @@ use vars qw(@param_list);
} }
# INITIALISATION CODE # INITIALISATION CODE
# Perl throws a warning if we use bz_locations() directly after do.
my $localconfig = bz_locations()->{'localconfig'};
do $localconfig; do $localconfig;
my %params; my %params;
# Load in the param definitions # Load in the param definitions
sub _load_params { sub _load_params {
my $libpath = bz_locations()->{'libpath'};
foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) { foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) {
$item =~ m#/([^/]+)\.pm$#; $item =~ m#/([^/]+)\.pm$#;
my $module = $1; my $module = $1;
...@@ -265,6 +230,7 @@ sub UpdateParams { ...@@ -265,6 +230,7 @@ sub UpdateParams {
sub WriteParams { sub WriteParams {
require Data::Dumper; require Data::Dumper;
my $datadir = bz_locations()->{'datadir'};
# This only has an affect for Data::Dumper >= 2.12 (ie perl >= 5.8.0) # This only has an affect for Data::Dumper >= 2.12 (ie perl >= 5.8.0)
# Its just cosmetic, though, so that doesn't matter # Its just cosmetic, though, so that doesn't matter
...@@ -294,7 +260,7 @@ sub WriteParams { ...@@ -294,7 +260,7 @@ sub WriteParams {
sub ChmodDataFile { sub ChmodDataFile {
my ($file, $mask) = @_; my ($file, $mask) = @_;
my $perm = 0770; my $perm = 0770;
if ((stat($datadir))[2] & 0002) { if ((stat(bz_locations()->{'datadir'}))[2] & 0002) {
$perm = 0777; $perm = 0777;
} }
$perm = $perm & $mask; $perm = $perm & $mask;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
package Bugzilla::Hook; package Bugzilla::Hook;
use Bugzilla::Constants;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -32,7 +33,7 @@ sub process { ...@@ -32,7 +33,7 @@ sub process {
trick_taint($name); trick_taint($name);
# get a list of all extensions # get a list of all extensions
my @extensions = glob($Bugzilla::Config::extensionsdir."/*"); my @extensions = glob(bz_locations()->{'extensionsdir'} . "/*");
# check each extension to see if it uses the hook # check each extension to see if it uses the hook
# if so, invoke the extension source file: # if so, invoke the extension source file:
......
...@@ -37,7 +37,7 @@ use base qw(Exporter); ...@@ -37,7 +37,7 @@ use base qw(Exporter);
@Bugzilla::Mailer::EXPORT = qw(MessageToMTA); @Bugzilla::Mailer::EXPORT = qw(MessageToMTA);
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Config qw(:DEFAULT $datadir); use Bugzilla::Config;
use Bugzilla::Util; use Bugzilla::Util;
use Mail::Header; use Mail::Header;
...@@ -99,7 +99,8 @@ sub MessageToMTA { ...@@ -99,7 +99,8 @@ sub MessageToMTA {
} }
my $mailer = new Mail::Mailer Param("mail_delivery_method"), @args; my $mailer = new Mail::Mailer Param("mail_delivery_method"), @args;
if (Param("mail_delivery_method") eq "testfile") { if (Param("mail_delivery_method") eq "testfile") {
$Mail::Mailer::testfile::config{outfile} = "$datadir/mailer.testfile"; $Mail::Mailer::testfile::config{outfile} =
bz_locations()->{'datadir'} . '/mailer.testfile';
} }
$mailer->open($headers->header_hashref); $mailer->open($headers->header_hashref);
......
...@@ -35,7 +35,7 @@ package Bugzilla::Template; ...@@ -35,7 +35,7 @@ package Bugzilla::Template;
use strict; use strict;
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Config qw(:DEFAULT $templatedir $datadir $project); use Bugzilla::Config;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::User; use Bugzilla::User;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -110,6 +110,9 @@ sub getTemplateIncludePath { ...@@ -110,6 +110,9 @@ sub getTemplateIncludePath {
if ($template_include_path) { if ($template_include_path) {
return $template_include_path; return $template_include_path;
} }
my $templatedir = bz_locations()->{'templatedir'};
my $project = bz_locations()->{'project'};
my $languages = trim(Param('languages')); my $languages = trim(Param('languages'));
if (not ($languages =~ /,/)) { if (not ($languages =~ /,/)) {
if ($project) { if ($project) {
...@@ -159,7 +162,7 @@ sub getTemplateIncludePath { ...@@ -159,7 +162,7 @@ sub getTemplateIncludePath {
} }
# add in extension template directories: # add in extension template directories:
my @extensions = glob($Bugzilla::Config::extensionsdir."/*"); my @extensions = glob(bz_locations()->{'extensionsdir'} . "/*");
foreach my $extension (@extensions) { foreach my $extension (@extensions) {
trick_taint($extension); # since this comes right from the filesystem trick_taint($extension); # since this comes right from the filesystem
# we have bigger issues if it is insecure # we have bigger issues if it is insecure
...@@ -533,7 +536,7 @@ sub create { ...@@ -533,7 +536,7 @@ sub create {
PRE_CHOMP => 1, PRE_CHOMP => 1,
TRIM => 1, TRIM => 1,
COMPILE_DIR => "$datadir/template", COMPILE_DIR => bz_locations()->{'datadir'} . "/template",
# Initialize templates (f.e. by loading plugins like Hook). # Initialize templates (f.e. by loading plugins like Hook).
PRE_PROCESS => "global/initialize.none.tmpl", PRE_PROCESS => "global/initialize.none.tmpl",
......
...@@ -26,6 +26,7 @@ package Bugzilla::Template::Plugin::Hook; ...@@ -26,6 +26,7 @@ package Bugzilla::Template::Plugin::Hook;
use strict; use strict;
use Bugzilla::Config; use Bugzilla::Config;
use Bugzilla::Constants;
use Bugzilla::Template; use Bugzilla::Template;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -64,7 +65,7 @@ sub process { ...@@ -64,7 +65,7 @@ sub process {
my $type = $2; my $type = $2;
# munge the filename to create the extension hook filename: # munge the filename to create the extension hook filename:
my $extensiontemplate = $subpath.'/'.$templatename.'-'.$hook_name.'.'.$type.'.tmpl'; my $extensiontemplate = $subpath.'/'.$templatename.'-'.$hook_name.'.'.$type.'.tmpl';
my @extensions = glob($Bugzilla::Config::extensionsdir."/*"); my @extensions = glob(bz_locations()->{'extensionsdir'} . "/*");
my @usedlanguages = getLanguages(); my @usedlanguages = getLanguages();
foreach my $extension (@extensions) { foreach my $extension (@extensions) {
foreach my $language (@usedlanguages) { foreach my $language (@usedlanguages) {
......
...@@ -18,10 +18,10 @@ package Bugzilla::Update; ...@@ -18,10 +18,10 @@ package Bugzilla::Update;
use strict; use strict;
use Bugzilla::Config qw($datadir); use Bugzilla::Constants;
use constant REMOTE_FILE => 'http://updates.bugzilla.org/bugzilla-update.xml'; use constant REMOTE_FILE => 'http://updates.bugzilla.org/bugzilla-update.xml';
use constant LOCAL_FILE => "/bugzilla-update.xml"; # Relative to $datadir. use constant LOCAL_FILE => "/bugzilla-update.xml"; # Relative to datadir.
use constant TIME_INTERVAL => 604800; # Default is one week, in seconds. use constant TIME_INTERVAL => 604800; # Default is one week, in seconds.
use constant TIMEOUT => 5; # Number of seconds before timeout. use constant TIMEOUT => 5; # Number of seconds before timeout.
...@@ -34,7 +34,7 @@ sub get_notifications { ...@@ -34,7 +34,7 @@ sub get_notifications {
eval("require XML::Twig"); eval("require XML::Twig");
return if $@; return if $@;
my $local_file = $datadir . LOCAL_FILE; my $local_file = bz_locations()->{'datadir'} . LOCAL_FILE;
# Update the local XML file if this one doesn't exist or if # Update the local XML file if this one doesn't exist or if
# the last modification time (stat[9]) is older than TIME_INTERVAL. # the last modification time (stat[9]) is older than TIME_INTERVAL.
if (!-e $local_file || (time() - (stat($local_file))[9] > TIME_INTERVAL)) { if (!-e $local_file || (time() - (stat($local_file))[9] > TIME_INTERVAL)) {
...@@ -127,7 +127,7 @@ sub _synchronize_data { ...@@ -127,7 +127,7 @@ sub _synchronize_data {
eval("require LWP::UserAgent"); eval("require LWP::UserAgent");
return if $@; return if $@;
my $local_file = $datadir . LOCAL_FILE; my $local_file = bz_locations()->{'datadir'} . LOCAL_FILE;
my $ua = LWP::UserAgent->new(); my $ua = LWP::UserAgent->new();
$ua->timeout(TIMEOUT); $ua->timeout(TIMEOUT);
......
...@@ -510,7 +510,7 @@ BEGIN { ...@@ -510,7 +510,7 @@ BEGIN {
$::ENV{'PATH'} = $env; $::ENV{'PATH'} = $env;
require Bugzilla::Config; require Bugzilla::Config;
import Bugzilla::Config qw(:DEFAULT :admin :locations); import Bugzilla::Config qw(:DEFAULT :admin);
} }
# 12/17/00 justdave@syndicomm.com - removed declarations of the localconfig # 12/17/00 justdave@syndicomm.com - removed declarations of the localconfig
...@@ -550,6 +550,7 @@ BEGIN { ...@@ -550,6 +550,7 @@ BEGIN {
print "Checking user setup ...\n" unless $silent; print "Checking user setup ...\n" unless $silent;
$@ = undef; $@ = undef;
my $localconfig = bz_locations()->{'localconfig'};
do $localconfig; do $localconfig;
if ($@) { # capture errors in localconfig, bug 97290 if ($@) { # capture errors in localconfig, bug 97290
print STDERR <<EOT; print STDERR <<EOT;
...@@ -582,7 +583,7 @@ sub LocalVar ...@@ -582,7 +583,7 @@ sub LocalVar
my ($name, $definition) = @_; my ($name, $definition) = @_;
return if LocalVarExists($name); # if localconfig declared it, we're done. return if LocalVarExists($name); # if localconfig declared it, we're done.
$newstuff .= " " . $name; $newstuff .= " " . $name;
open FILE, '>>', $localconfig; open FILE, '>>', bz_locations()->{'localconfig'};
print FILE ($answer{$name} or $definition), "\n\n"; print FILE ($answer{$name} or $definition), "\n\n";
close FILE; close FILE;
} }
...@@ -803,7 +804,8 @@ if (LocalVarExists('mysqlpath')) { ...@@ -803,7 +804,8 @@ if (LocalVarExists('mysqlpath')) {
if ($newstuff ne "") { if ($newstuff ne "") {
print "\nThis version of Bugzilla contains some variables that you may \n", print "\nThis version of Bugzilla contains some variables that you may \n",
"want to change and adapt to your local settings. Please edit the\n", "want to change and adapt to your local settings. Please edit the\n",
"file '$localconfig' and rerun checksetup.pl\n\n", "file " . bz_locations()->{'localconfig'} ." and rerun ",
"checksetup.pl\n\n",
"The following variables are new to localconfig since you last ran\n", "The following variables are new to localconfig since you last ran\n",
"checksetup.pl: $newstuff\n\n"; "checksetup.pl: $newstuff\n\n";
exit; exit;
...@@ -938,6 +940,7 @@ if ($my_db_check) { ...@@ -938,6 +940,7 @@ if ($my_db_check) {
# Try to create the DB, and if we fail print an error. # Try to create the DB, and if we fail print an error.
if (!eval { $dbh->do("CREATE DATABASE $my_db_name") }) { if (!eval { $dbh->do("CREATE DATABASE $my_db_name") }) {
my $error = $dbh->errstr; my $error = $dbh->errstr;
my $localconfig = bz_locations()->{'localconfig'};
die <<"EOF" die <<"EOF"
The '$my_db_name' database could not be created. The error returned was: The '$my_db_name' database could not be created. The error returned was:
...@@ -1048,7 +1051,7 @@ while (my ($table, $values) = each %$enum_values) { ...@@ -1048,7 +1051,7 @@ while (my ($table, $values) = each %$enum_values) {
# #
# Create initial --DATA-- directory and make the initial empty files there: # Create initial --DATA-- directory and make the initial empty files there:
# #
my $datadir = bz_locations()->{'datadir'};
unless (-d $datadir && -e "$datadir/nomail") { unless (-d $datadir && -e "$datadir/nomail") {
print "Creating data directory ($datadir) ...\n"; print "Creating data directory ($datadir) ...\n";
# permissions for non-webservergroup are fixed later on # permissions for non-webservergroup are fixed later on
...@@ -1058,13 +1061,14 @@ unless (-d $datadir && -e "$datadir/nomail") { ...@@ -1058,13 +1061,14 @@ unless (-d $datadir && -e "$datadir/nomail") {
open FILE, '>>', "$datadir/mail"; close FILE; open FILE, '>>', "$datadir/mail"; close FILE;
} }
my $attachdir = bz_locations->{'attachdir'};
unless (-d $attachdir) { unless (-d $attachdir) {
print "Creating local attachments directory ...\n"; print "Creating local attachments directory ...\n";
# permissions for non-webservergroup are fixed later on # permissions for non-webservergroup are fixed later on
mkdir $attachdir, 0770; mkdir $attachdir, 0770;
} }
my $extensionsdir = bz_locations->{'extensionsdir'};
# ZLL: 2005-08-20 Create extensions/ if it does not already exist: # ZLL: 2005-08-20 Create extensions/ if it does not already exist:
unless (-d $extensionsdir) { unless (-d $extensionsdir) {
print "Creating extensions directory ($extensionsdir) ...\n"; print "Creating extensions directory ($extensionsdir) ...\n";
...@@ -1161,6 +1165,7 @@ unless (-d "$datadir/mining") { ...@@ -1161,6 +1165,7 @@ unless (-d "$datadir/mining") {
mkdir "$datadir/mining", 0700; mkdir "$datadir/mining", 0700;
} }
my $webdotdir = bz_locations()->{'webdotdir'};
unless (-d "$webdotdir") { unless (-d "$webdotdir") {
# perms/ownership are fixed up later # perms/ownership are fixed up later
mkdir "$webdotdir", 0700; mkdir "$webdotdir", 0700;
...@@ -1277,6 +1282,7 @@ END ...@@ -1277,6 +1282,7 @@ END
chmod $fileperm, "$datadir/.htaccess"; chmod $fileperm, "$datadir/.htaccess";
} }
# Ditto for the template dir # Ditto for the template dir
my $templatedir = bz_locations()->{'templatedir'};
if (!-e "$templatedir/.htaccess") { if (!-e "$templatedir/.htaccess") {
print "Creating $templatedir/.htaccess...\n"; print "Creating $templatedir/.htaccess...\n";
open HTACCESS, '>', "$templatedir/.htaccess"; open HTACCESS, '>', "$templatedir/.htaccess";
...@@ -1344,11 +1350,7 @@ END ...@@ -1344,11 +1350,7 @@ END
} }
} }
# Just to be sure ...
unlink "$datadir/versioncache";
# Check for a new install # Check for a new install
my $newinstall = !-e "$datadir/params"; my $newinstall = !-e "$datadir/params";
# Remove parameters from the params file that no longer exist in Bugzilla, # Remove parameters from the params file that no longer exist in Bugzilla,
...@@ -1405,6 +1407,7 @@ if ($newinstall) { ...@@ -1405,6 +1407,7 @@ if ($newinstall) {
# WriteParams will only write out still-valid entries # WriteParams will only write out still-valid entries
WriteParams(); WriteParams();
my $templatedir = bz_locations()->{'templatedir'};
unless ($switch{'no_templates'}) { unless ($switch{'no_templates'}) {
if (-e "$datadir/template") { if (-e "$datadir/template") {
print "Removing existing compiled templates ...\n" unless $silent; print "Removing existing compiled templates ...\n" unless $silent;
...@@ -1579,7 +1582,8 @@ if ($^O !~ /MSWin32/i) { ...@@ -1579,7 +1582,8 @@ if ($^O !~ /MSWin32/i) {
fixPerms("$datadir/duplicates", $<, $webservergid, 027, 1); fixPerms("$datadir/duplicates", $<, $webservergid, 027, 1);
fixPerms("$datadir/mining", $<, $webservergid, 027, 1); fixPerms("$datadir/mining", $<, $webservergid, 027, 1);
fixPerms("$datadir/template", $<, $webservergid, 007, 1); # webserver will write to these fixPerms("$datadir/template", $<, $webservergid, 007, 1); # webserver will write to these
fixPerms($attachdir, $<, $webservergid, 007, 1); # webserver will write to these # webserver will write to attachdir.
fixPerms(bz_locations()->{'attachdir'}, $<, $webservergid, 007, 1);
fixPerms($webdotdir, $<, $webservergid, 007, 1); fixPerms($webdotdir, $<, $webservergid, 007, 1);
fixPerms("$webdotdir/.htaccess", $<, $webservergid, 027); fixPerms("$webdotdir/.htaccess", $<, $webservergid, 027);
fixPerms("$datadir/params", $<, $webservergid, 017); fixPerms("$datadir/params", $<, $webservergid, 017);
...@@ -4352,6 +4356,11 @@ EOF ...@@ -4352,6 +4356,11 @@ EOF
NOTNULL => 1}); NOTNULL => 1});
} }
if (-e "$datadir/versioncache") {
print "Removing versioncache...\n";
unlink "$datadir/versioncache";
}
# If you had to change the --TABLE-- definition in any way, then add your # If you had to change the --TABLE-- definition in any way, then add your
# differential change code *** A B O V E *** this comment. # differential change code *** A B O V E *** this comment.
...@@ -4778,8 +4787,6 @@ $dbh->do("UPDATE components " . ...@@ -4778,8 +4787,6 @@ $dbh->do("UPDATE components " .
"SET initialowner = $adminuid " . "SET initialowner = $adminuid " .
"WHERE initialowner = 0"); "WHERE initialowner = 0");
unlink "$datadir/versioncache";
# Check if the default parameter for urlbase is still set, and if so, give # Check if the default parameter for urlbase is still set, and if so, give
# notification that they should go and visit editparams.cgi # notification that they should go and visit editparams.cgi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment