use lib $FindBin::Bin;
-use C4::Installer;
+use C4::Installer::PerlModules;
my $koha_pm = C4::Installer::PerlModules->new;
--install_sru Install the SRU server (yes, no)
--install_pazpar2 Install PazPar2 (yes, no)
--use_memcached Use Memcached (yes, no)
- --font_dir Location of fonts (e.g. /usr/share/fonts/truetype/ttf-dejavu)
+ --font_dir Location of fonts (e.g. /usr/share/fonts/truetype/dejavu)
--run_database_tests Run database dependent tests (yes, no)
--install_base Base directory of installation (e.g. /usr/share/koha)
--template-cache-dir Specify a template cache directory (e.g. /var/cache/koha)
Directory for Zebra's UNIX-domain sockets.
+=item ELASTICSEARCH_SERVERS
+
+Server:port of the Elasticsearch server to use, as a comma separated list:
+eg. 192.168.0.100:9200, localhost:9200
+
+=item ELASTICSEARCH_INDEX
+
+Unique index in Elasticsearch, for this Koha-instance
+eg. koha-mykoha or just koha
+
=item MISC_DIR
Directory for for miscellaenous scripts, among other
Directory for Koha documentation accessed from the
command-line, e.g., READMEs.
+=item LOCK_DIR
+
+Directory for Koha scripts to put their locks.
+
=item LOG_DIR
Directory for Apache and Zebra logs produced by Koha.
'./circ' => 'INTRANET_CGI_DIR',
'./clubs' => 'INTRANET_CGI_DIR',
'./course_reserves' => 'INTRANET_CGI_DIR',
+ './cpanfile' => 'PERL_MODULE_DIR',
'./docs/history.txt' => { target => 'DOC_DIR', trimdir => -1 },
+ './docs/contributors.yaml' => { target => 'DOC_DIR', trimdir => -1 },
+ './docs/teams.yaml' => { target => 'DOC_DIR', trimdir => -1 },
'./offline_circ' => 'INTRANET_CGI_DIR',
- './edithelp.pl' => 'INTRANET_CGI_DIR',
'./etc' => { target => 'KOHA_CONF_DIR', trimdir => -1 },
'./etc/zebradb' => { target => 'ZEBRA_CONF_DIR', trimdir => -1 },
+ './etc/z3950' => { target => 'Z3950_CONF_DIR', trimdir => -1 },
'./etc/pazpar2' => { target => 'PAZPAR2_CONF_DIR', trimdir => -1 },
'./help.pl' => 'INTRANET_CGI_DIR',
'./ill' => 'INTRANET_CGI_DIR',
'./patroncards' => 'INTRANET_CGI_DIR',
'./patron_lists' => 'INTRANET_CGI_DIR',
'./plugins' => 'INTRANET_CGI_DIR',
+ './pos' => 'INTRANET_CGI_DIR',
'./reports' => 'INTRANET_CGI_DIR',
'./reserve' => 'INTRANET_CGI_DIR',
'./reviews' => 'INTRANET_CGI_DIR',
'./serials' => 'INTRANET_CGI_DIR',
'./services' => 'INTRANET_CGI_DIR',
'./skel' => 'NONE',
+ './skel/var/lock/koha' => { target => 'LOCK_DIR', trimdir => -1 },
'./skel/var/log/koha' => { target => 'LOG_DIR', trimdir => -1 },
'./skel/var/spool/koha' => { target => 'BACKUP_DIR', trimdir => -1 },
'./skel/var/run/koha/zebradb' => { target => 'ZEBRA_RUN_DIR', trimdir => -1 },
'./suggestion' => 'INTRANET_CGI_DIR',
'./svc' => 'INTRANET_CGI_DIR',
'./t' => 'NONE',
+ './xt' => 'NONE',
'./tags' => 'INTRANET_CGI_DIR',
'./tmp' => 'NONE', # FIXME need to determine whether
# Koha generates any persistent temp files
# that should go in /var/tmp/koha
'./tools' => 'INTRANET_CGI_DIR',
'./virtualshelves' => 'INTRANET_CGI_DIR',
- './xml_sax.pl' => 'PERL_MODULE_DIR',
# ignore files and directories created by the install itself
'./pm_to_blib' => 'NONE',
'./blib' => 'NONE',
'.sass-lint.yml' => 'NONE',
'.scss-lint.yml' => 'NONE',
+ '.eslintrc.json' => 'NONE',
'gulpfile.js' => 'NONE',
'package.json' => 'NONE',
'yarn.lock' => 'NONE',
'MEMCACHED_SERVERS' => '127.0.0.1:11211',
'MEMCACHED_NAMESPACE' => 'KOHA',
'TEMPLATE_CACHE_DIR' => '/tmp/koha',
- 'FONT_DIR' => '/usr/share/fonts/truetype/ttf-dejavu'
+ 'USE_ELASTICSEARCH' => 'no',
+ 'ELASTICSEARCH_SERVERS' => 'localhost:9200',
+ 'ELASTICSEARCH_INDEX' => 'koha',
+ 'FONT_DIR' => '/usr/share/fonts/truetype/dejavu'
);
# set some default configuration options based on OS
'DB_USE_TLS' => {'yes', 'no'},
'INSTALL_SRU' => { 'yes' => 1, 'no' => 1 },
'ZEBRA_MARC_FORMAT' => { 'marc21' => 1, 'normarc' => 1, 'unimarc' => 1 }, # FIXME should generate from contents of distributation
- 'ZEBRA_LANGUAGE' => { 'cs' => 1, 'en' => 1, 'es' => 1, 'fr' => 1, 'gr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution
+ 'ZEBRA_LANGUAGE' => { 'cs' => 1, 'el' => 1, 'en' => 1, 'es' => 1, 'fr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution
'ZEBRA_TOKENIZER' => { chr => 1, icu => 1 },
'RUN_DATABASE_TESTS' => { 'yes' => 1, 'no' => 1 },
'USE_MEMCACHED' => { 'yes' => 1, 'no' => 1 },
+ 'USE_ELASTICSEARCH' => { 'yes' => 1, 'no' => 1 },
);
# get settings from command-line
my %test_suite_override_dirs = (
KOHA_CONF_DIR => ['etc'],
ZEBRA_CONF_DIR => ['etc', 'zebradb'],
+ Z3950_CONF_DIR => ['etc', 'z3950'],
+ LOCK_DIR => ['var', 'lock'],
LOG_DIR => ['var', 'log'],
BACKUP_DIR => ['var', 'spool'],
SCRIPT_DIR => ['bin'],
my $install_log = shift;
my $values = shift;
- open LOG, "<$install_log" or die "Cannot open install log $install_log: $!\n";
- while (<LOG>) {
+ open my $log, '<', $install_log or die "Cannot open install log $install_log: $!\n";
+ while (<$log>) {
chomp;
next if /^#/ or /^\s*$/;
next if /^=/;
my ($key, $value) = split /=/, $_, 2;
$values->{$key} = $value;
}
- close LOG;
+ close $log;
print <<_EXPLAIN_INSTALL_LOG_;
Reading values from install log $install_log. You
$msg = q(
Use memcached to cache the results of some function calls?
-This provides a signficant performance improvement.
+This provides a significant performance improvement.
You will need a Memcached server running.);
$msg .= _add_valid_values_disp('USE_MEMCACHED', $valid_values);
$config{'USE_MEMCACHED'} = _get_value('USE_MEMCACHED', $msg, $defaults->{'USE_MEMCACHED'}, $valid_values, $install_log_values);
$config{'MEMCACHED_NAMESPACE'} = _get_value('MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values, $install_log_values);
}
+
+ $msg = q(
+Use Elasticsearch to serve search results?
+You will need a Elasticsearch server running.);
+ $msg .= _add_valid_values_disp('USE_ELASTICSEARCH', $valid_values);
+ $config{'USE_ELASTICSEARCH'} = _get_value('USE_ELASTICSEARCH', $msg, $defaults->{'USE_ELASTICSEARCH'}, $valid_values, $install_log_values);
+ if ($config{'USE_ELASTICSEARCH'} eq 'yes'){
+ $msg = q(
+Define the ELASTICSEARCH_SERVERS with a comma-separated list. Eg
+localhost:9200, 192.168.0.100:9200
+);
+ $msg = q(
+Elasticsearch server addresses?);
+ $config{'ELASTICSEARCH_SERVERS'} = _get_value('ELASTICSEARCH_SERVERS', $msg, $defaults->{'ELASTICSEARCH_SERVERS'}, $valid_values, $install_log_values);
+
+ $msg = q(
+What index name to use for this Koha-instance? It must be unique for each Koha
+sharing the same Elasticsearch-cluster
+
+Elasticsearch index?);
+ $config{'ELASTICSEARCH_INDEX'} = _get_value('ELASTICSEARCH_INDEX', $msg, $defaults->{'ELASTICSEARCH_INDEX'}, $valid_values, $install_log_values);
+ }
+
$msg = q(
Template cache directory?);
$config{'TEMPLATE_CACHE_DIR'} = _get_value('TEMPLATE_CACHE_DIR', $msg, $defaults->{'TEMPLATE_CACHE_DIR'}, $valid_values, $install_log_values);
THE DATA IN THIS DATABASE WILL BE DESTROYED during the process of
testing. Please don't do this on your production database. It is not
-reversable.
+reversible.
YOU WILL SUFFER DATA LOSS if you run this test suite on your test
database. You are better off not running this optional test suite than
$dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
$dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
$dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
+ $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
$dirmap{'PAZPAR2_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'pazpar2');
$dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
$dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
$dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
$dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
$dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock', 'zebradb');
+ $dirmap{'LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock');
$dirmap{'LOG_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'log');
$dirmap{'BACKUP_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'spool');
$dirmap{'PLUGINS_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lib', 'koha', 'plugins');
$skipdirs{'PERL_MODULE_DIR'} = 1;
$dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
$dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
+ $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
$dirmap{'PAZPAR2_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'pazpar2');
$dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
$dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
$dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
$dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
$dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock', 'zebradb');
+ $dirmap{'LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock');
$dirmap{'LOG_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'log');
$dirmap{'BACKUP_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'spool');
$dirmap{'PLUGINS_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lib', 'plugins');
$dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
$dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package);
$dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'zebradb');
+ $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'z3950');
$dirmap{'PAZPAR2_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'pazpar2');
$dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
$dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
$dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
$dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
$dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'lock', $package, 'zebradb');
+ $dirmap{'LOCK_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'lock', $package);
$dirmap{'LOG_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'log', $package);
$dirmap{'BACKUP_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'spool', $package);
$dirmap{'PLUGINS_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'lib', $package, 'plugins');