X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FInstaller.pm;h=9c173dc1791d9640ebccaa223a3c9429960dfb09;hb=1e92b9c15e525442bd147c0f44586640c8f38c85;hp=80ef627c996b20af29958dbb979b69b07c89f78b;hpb=f46abf8b909257a54c9e2c1fdd999ba30c7ac0ae;p=koha_fer diff --git a/C4/Installer.pm b/C4/Installer.pm index 80ef627c99..9c173dc179 100644 --- a/C4/Installer.pm +++ b/C4/Installer.pm @@ -20,9 +20,9 @@ package C4::Installer; use strict; #use warnings; FIXME - Bug 2505 -our $VERSION = 3.00; +our $VERSION = 3.07.00.049; use C4::Context; -use C4::Installer::PerlModules 1.000000; +use C4::Installer::PerlModules; =head1 NAME @@ -38,7 +38,6 @@ C4::Installer my ($fwk_language, $error_list) = $installer->load_sql_in_order($all_languages, @$list); $installer->set_version_syspref(); $installer->set_marcflavour_syspref('MARC21'); - $installer->set_indexing_engine(0); =head1 DESCRIPTION @@ -154,8 +153,8 @@ sub marc_framework_sql_list { my @frameworklist; map { my $name = substr( $_, 0, -4 ); - open FILE, "<:utf8","$dir/$requirelevel/$name.txt"; - my $lines = ; + open my $fh, "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt"; + my $lines = <$fh>; $lines =~ s/\n|\r/
/g; use utf8; utf8::encode($lines) unless ( utf8::is_utf8($lines) ); @@ -232,8 +231,8 @@ sub sample_data_sql_list { my @frameworklist; map { my $name = substr( $_, 0, -4 ); - open FILE, "<:utf8","$dir/$requirelevel/$name.txt"; - my $lines = ; + open my $fh , "<:encoding(UTF-8)", "$dir/$requirelevel/$name.txt"; + my $lines = <$fh>; $lines =~ s/\n|\r/
/g; use utf8; utf8::encode($lines) unless ( utf8::is_utf8($lines) ); @@ -354,6 +353,9 @@ sub load_sql_in_order { $request->execute; my ($systempreference) = $request->fetchrow; $systempreference = '' unless defined $systempreference; # avoid warning + # Make sure the global sysprefs.sql file is loaded first + my $globalsysprefs = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/sysprefs.sql"; + unshift(@fnames, $globalsysprefs); foreach my $file (@fnames) { # warn $file; undef $/; @@ -427,31 +429,6 @@ sub set_marcflavour_syspref { $request->execute; } -=head2 set_indexing_engine - - $installer->set_indexing_engine($nozebra); - -Sets system preferences related to the indexing -engine. The C<$nozebra> argument is a boolean; -if true, turn on NoZebra mode and turn off QueryFuzzy, -QueryWeightFields, and QueryStemming. If false, turn -off NoZebra mode (i.e., use the Zebra search engine). - -=cut - -sub set_indexing_engine { - my $self = shift; - my $nozebra = shift; - - if ($nozebra) { - $self->{'dbh'}->do("UPDATE systempreferences SET value=1 WHERE variable='NoZebra'"); - $self->{'dbh'}->do("UPDATE systempreferences SET value=0 WHERE variable in ('QueryFuzzy','QueryWeightFields','QueryStemming')"); - } else { - $self->{'dbh'}->do("UPDATE systempreferences SET value=0 WHERE variable='NoZebra'"); - } - -} - =head2 set_version_syspref $installer->set_version_syspref(); @@ -505,8 +482,13 @@ sub load_sql { my $datadir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}"; my $error; my $strcmd; + my $cmd; if ( $self->{dbms} eq 'mysql' ) { - $strcmd = "mysql " + $cmd = qx(which mysql 2>/dev/null || whereis mysql 2>/dev/null); + chomp $cmd; + $cmd = $1 if ($cmd && $cmd =~ /^(.+?)[\r\n]+$/); + $cmd = 'mysql' if (!$cmd || !-x $cmd); + $strcmd = "$cmd " . ( $self->{hostname} ? " -h $self->{hostname} " : "" ) . ( $self->{port} ? " -P $self->{port} " : "" ) . ( $self->{user} ? " -u $self->{user} " : "" ) @@ -514,7 +496,11 @@ sub load_sql { . " $self->{dbname} "; $error = qx($strcmd --default-character-set=utf8 <$filename 2>&1 1>/dev/null); } elsif ( $self->{dbms} eq 'Pg' ) { - $strcmd = "psql " + $cmd = qx(which psql 2>/dev/null || whereis psql 2>/dev/null); + chomp $cmd; + $cmd = $1 if ($cmd && $cmd =~ /^(.+?)[\r\n]+$/); + $cmd = 'psql' if (!$cmd || !-x $cmd); + $strcmd = "$cmd " . ( $self->{hostname} ? " -h $self->{hostname} " : "" ) . ( $self->{port} ? " -p $self->{port} " : "" ) . ( $self->{user} ? " -U $self->{user} " : "" ) @@ -526,8 +512,10 @@ sub load_sql { # report the import a failure although it really succeded -fbcit } # errors thrown while loading installer data should be logged - warn "C4::Installer::load_sql returned the following errors while attempting to load $filename:\n"; - warn $error; + if($error) { + warn "C4::Installer::load_sql returned the following errors while attempting to load $filename:\n"; + warn "$error"; + } return $error; }