--db_name Database name (e.g. koha)
--db_user Database user (e.g. kohaadmin)
--db_pass Database password (e.g. katikoan)
- --zebra_marc_format Zebra MARC format (marc21, normarc, unimarc)
+ --zebra_marc_format Zebra MARC format (marc21, unimarc)
--zebra_language Zebra language (e.g. en)
--zebra_tokenizer Zebra tokenizer (chr, icu)
--zebra_user Zebra user (e.g. kohauser)
--koha_user Koha Unix user (e.g. koha)
--koha_group Koha Unix group (e.g. koha)
--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/dejavu)
--run_database_tests Run database dependent tests (yes, no)
Directory for external Koha plugins.
-=item PAZPAR2_CONF_DIR
-
-Directory for PazPar2 configuration files.
-
=item FONT_DIR
Directory where DejaVu fonts are installed.
'./acqui' => 'INTRANET_CGI_DIR',
'./admin' => 'INTRANET_CGI_DIR',
'./api' => { target => 'API_CGI_DIR', trimdir => -1 },
+ './app.psgi' => 'SCRIPT_DIR',
'./authorities' => 'INTRANET_CGI_DIR',
'./basket' => 'INTRANET_CGI_DIR',
+ './bin' => { target => 'SCRIPT_DIR', trimdir => -1 },
'./C4' => 'PERL_MODULE_DIR',
'./C4/SIP/t' => 'NONE',
'./C4/SIP/koha_test' => 'NONE',
'./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',
'./installer-CPAN.pl' => 'NONE',
'./koha-tmpl/opac-tmpl' => {target => 'OPAC_TMPL_DIR', trimdir => -1},
'./kohaversion.pl' => 'INTRANET_CGI_DIR',
'./labels' => 'INTRANET_CGI_DIR',
+ './lib' => {target => 'PERL_MODULE_LIB_DIR', trimdir => -1},
'./mainpage.pl' => 'INTRANET_CGI_DIR',
'./Makefile.PL' => 'NONE',
'./MANIFEST.SKIP' => 'NONE',
'./patron_lists' => 'INTRANET_CGI_DIR',
'./plugins' => 'INTRANET_CGI_DIR',
'./pos' => 'INTRANET_CGI_DIR',
+ './recalls' => 'INTRANET_CGI_DIR',
'./reports' => 'INTRANET_CGI_DIR',
'./reserve' => 'INTRANET_CGI_DIR',
'./reviews' => 'INTRANET_CGI_DIR',
System group that will own Koha's files.
+=item SMTP_HOST
+
+SMTP server host name (default: localhost)
+
+=item SMTP_PORT
+
+SMTP server port (default: 25)
+
+=item SMTP_TIMEOUT
+
+Connection timeour in seconds (default: 120)
+
+=item SMTP_SSL_MODE
+
+SSL mode. Options are 'disabled' (default), 'ssl' and 'starttls'
+
+=item SMTP_USER_NAME
+
+SMTP authentication user name
+
+=item SMTP_PASSWORD
+
+SMTP authentication password
+
+=item SMTP_DEBUG
+
+Enable debug mode for SMTP (default: no)
+
=back
=cut
'DB_TLS_CLIENT_CERTIFICATE' => '/etc/mysql-ssl/client-cert.pem',
'DB_TLS_CLIENT_KEY' => '/etc/mysql-ssl/client-key.pem',
'INSTALL_SRU' => 'yes',
- 'INSTALL_PAZPAR2' => 'no',
'ZEBRA_MARC_FORMAT' => 'marc21',
'ZEBRA_LANGUAGE' => 'en',
'ZEBRA_TOKENIZER' => 'chr',
'KOHA_GROUP' => 'koha',
'MERGE_SERVER_HOST' => 'localhost',
'MERGE_SERVER_PORT' => '11001',
- 'PAZPAR2_HOST' => 'localhost',
- 'PAZPAR2_PORT' => '11002',
'RUN_DATABASE_TESTS' => 'no',
'PATH_TO_ZEBRA' => '',
'USE_MEMCACHED' => 'yes',
'USE_ELASTICSEARCH' => 'no',
'ELASTICSEARCH_SERVERS' => 'localhost:9200',
'ELASTICSEARCH_INDEX' => 'koha',
- 'FONT_DIR' => '/usr/share/fonts/truetype/dejavu'
+ 'FONT_DIR' => '/usr/share/fonts/truetype/dejavu',
+ 'SMTP_HOST' => 'localhost',
+ 'SMTP_PORT' => '25',
+ 'SMTP_TIMEOUT' => '120',
+ 'SMTP_SSL_MODE' => 'disabled',
+ 'SMTP_USER_NAME' => '',
+ 'SMTP_PASSWORD' => '',
+ 'SMTP_DEBUG' => 'no',
);
# set some default configuration options based on OS
'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
'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_MARC_FORMAT' => { 'marc21' => 1, 'unimarc' => 1 }, # FIXME should generate from contents of distributation
'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 },
+ 'SMTP_SSL_MODE' => { 'disabled' => 1, 'ssl' => 1, 'starttls' => 1 },
+ 'SMTP_DEBUG' => { 'yes' => 1, 'no' => 1 },
);
# get settings from command-line
my $cli_koha_user = "";
my $cli_koha_group = "";
my $cli_koha_install_sru = "";
-my $cli_koha_install_pazpar2 = "";
my $cli_koha_use_memcached = "";
my $cli_koha_font_dir = "";
my $cli_koha_run_database_tests = "";
my $cli_koha_install_base = "";
my $cli_koha_template_cache_dir = "";
+my $cli_smtp_host = "";
+my $cli_smtp_port = "";
+my $cli_smtp_timeout = "";
+my $cli_smtp_ssl_mode = "";
+my $cli_smtp_user_name = "";
+my $cli_smtp_password = "";
+my $cli_smtp_debug = "";
+
Getopt::Long::Configure('pass_through');
my $results = GetOptions(
"prev-install-log=s" => \$koha_install_log,
"koha_user=s" => \$cli_koha_user,
"koha_group=s" => \$cli_koha_group,
"install_sru=s" => \$cli_koha_install_sru,
- "install_pazpar2=s" => \$cli_koha_install_pazpar2,
"use_memcached=s" => \$cli_koha_use_memcached,
"font_dir=s" => \$cli_koha_font_dir,
"run_database_tests=s" => \$cli_koha_run_database_tests,
"install_base=s" => \$cli_koha_install_base,
"template-cache-dir=s" => \$cli_koha_template_cache_dir,
+ "smtp-host=s" => \$cli_smtp_host,
+ "smtp-port=s" => \$cli_smtp_port,
+ "smtp-timeout=s" => \$cli_smtp_timeout,
+ "smtp-ssl-mode=s" => \$cli_smtp_ssl_mode,
+ "smtp-user-name=s" => \$cli_smtp_user_name,
+ "smtp-password=s" => \$cli_smtp_password,
+ "smtp-debug" => \$cli_smtp_debug,
"help" => sub { HelpMessage(0) },
) or HelpMessage(1);
'blib/KOHA_CONF_DIR/koha-conf.xml',
'blib/KOHA_CONF_DIR/koha-httpd.conf',
'blib/KOHA_CONF_DIR/log4perl.conf',
+ 'blib/KOHA_CONF_DIR/koha-worker.service',
'blib/ZEBRA_CONF_DIR/etc/default.idx',
'blib/MISC_DIR/koha-install-log'
],
);
push @{ $pl_files->{'rewrite-config.PL'} }, (
'blib/SCRIPT_DIR/koha-zebra-ctl.sh',
- 'blib/SCRIPT_DIR/koha-pazpar2-ctl.sh',
'blib/SCRIPT_DIR/koha-index-daemon-ctl.sh',
);
-if ($config{'INSTALL_PAZPAR2'} eq 'yes') {
- push @{ $pl_files->{'rewrite-config.PL'} }, (
- 'blib/PAZPAR2_CONF_DIR/koha-biblios.xml',
- 'blib/PAZPAR2_CONF_DIR/pazpar2.xml'
- );
-}
$config{'ZEBRA_AUTH_CFG'} = 'zebra-authorities-dom.cfg';
$config{'ZEBRA_BIB_CFG'} = 'zebra-biblios-dom.cfg';
$config{'AUTH_RETRIEVAL_CFG'} = 'retrieval-info-auth-dom.xml';
if ($config{'INSTALL_MODE'} ne "dev") {
push @{ $pl_files->{'rewrite-config.PL'} }, (
'blib/PERL_MODULE_DIR/C4/Context.pm',
- 'blib/SCRIPT_NONDEV_DIR/kohalib.pl'
);
}
#VERSION => strftime('2.9.%Y%m%d%H',gmtime),
VERSION_FROM => 'kohaversion.pl',
ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC',
- AUTHOR => 'Koha Contributors <http://koha-community.org/>',
+ AUTHOR => 'Koha Contributors <https://koha-community.org/>',
NO_META => 1,
PREREQ_PM => $koha_pm->prereq_pm,
KOHA_USER => $cli_koha_user,
KOHA_GROUP => $cli_koha_group,
INSTALL_SRU => $cli_koha_install_sru,
- INSTALL_PAZPAR2 => $cli_koha_install_pazpar2,
USE_MEMCACHED => $cli_koha_use_memcached,
FONT_DIR => $cli_koha_font_dir,
RUN_DATABASE_TESTS => $cli_koha_run_database_tests,
INSTALL_BASE => $cli_koha_install_base,
- TEMPLATE_CACHE_DIR => $cli_koha_template_cache_dir
+ TEMPLATE_CACHE_DIR => $cli_koha_template_cache_dir,
+ SMTP_HOST => $cli_smtp_host,
+ SMTP_PORT => $cli_smtp_port,
+ SMTP_TIMEOUT => $cli_smtp_timeout,
+ SMTP_SSL_MODE => $cli_smtp_ssl_mode,
+ SMTP_USER_NAME => $cli_smtp_user_name,
+ SMTP_PASSWORD => $cli_smtp_password,
+ SMTP_DEBUG => (defined $cli_smtp_debug) ? ( $cli_smtp_debug ? 'yes' : 'no' ) : $values->{SMTP_DEBUG},
};
foreach my $key (keys %{$map}) {
$values->{$key} = $map->{$key} if ($map->{$key});
records to be indexed by Zebra.
Koha provides Zebra configuration files for MARC21,
-NORMARC and UNIMARC.
+and UNIMARC.
MARC format for Zebra indexing);
$msg .= _add_valid_values_disp('ZEBRA_MARC_FORMAT', $valid_values);
}
- $msg = q(
-Along with Zebra, you can also choose to install PazPar2,
-which is a metasearch tool. With PazPar2,
-Koha can perform on-the-fly merging of bibliographic
-records during searching, allowing for FRBRization of
-the results list.
-
-Install the PazPar2 configuration files?);
- $msg .= _add_valid_values_disp('INSTALL_PAZPAR2', $valid_values);
- $config{'INSTALL_PAZPAR2'} = _get_value('INSTALL_PAZPAR2', $msg, $defaults->{'INSTALL_PAZPAR2'}, $valid_values, $install_log_values);
-
- if ($config{'INSTALL_PAZPAR2'} eq 'yes') {
- $msg = q(
-Since you've chosen to configure PazPar2, you must
-specify the host and port(s) that PazPar2
-uses:
-);
- $msg = q(
-Zebra bibliographic server host?);
- $config{'MERGE_SERVER_HOST'} = _get_value('MERGE_SERVER_HOST', $msg, $defaults->{'MERGE_SERVER_HOST'}, $valid_values, $install_log_values);
-
- $msg = q(
-Zebra bibliographic port for PazPar2 to use?);
- $config{'MERGE_SERVER_PORT'} = _get_value('MERGE_SERVER_PORT', $msg, $defaults->{'MERGE_SERVER_PORT'}, $valid_values, $install_log_values);
-
- $msg = q(
-PazPar2 host?);
- $config{'PAZPAR2_HOST'} = _get_value('PAZPAR2_HOST', $msg, $defaults->{'PAZPAR2_HOST'}, $valid_values, $install_log_values);
-
- $msg = q(
-PazPar2 port?);
- $config{'PAZPAR2_PORT'} = _get_value('PAZPAR2_PORT', $msg, $defaults->{'PAZPAR2_PORT'}, $valid_values, $install_log_values);
-
- }
-
$msg = q(
Use memcached to cache the results of some function calls?
This provides a significant performance improvement.
Path to DejaVu fonts?);
$config{'FONT_DIR'} = _get_value('FONT_DIR', $msg, $defaults->{'FONT_DIR'}, $valid_values, $install_log_values);
+ $msg = q(
+SMTP settings
+You will be able to set your default SMTP configuration.);
+ $msg .= q{
+SMTP host name?};
+ $config{'SMTP_HOST'} = _get_value('SMTP_HOST', $msg, $defaults->{'SMTP_HOST'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP port?};
+ $config{'SMTP_PORT'} = _get_value('SMTP_PORT', $msg, $defaults->{'SMTP_PORT'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP timeout (in seconds)?};
+ $config{'SMTP_TIMEOUT'} = _get_value('SMTP_TIMEOUT', $msg, $defaults->{'SMTP_TIMEOUT'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP SSL mode?};
+ $msg .= _add_valid_values_disp('SMTP_SSL_MODE', $valid_values);
+ $config{'SMTP_SSL_MODE'} = _get_value('SMTP_SSL_MODE', $msg, $defaults->{'SMTP_SSL_MODE'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP user name?};
+ $config{'SMTP_USER_NAME'} = _get_value('SMTP_USER_NAME', $msg, $defaults->{'SMTP_USER_NAME'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP password?};
+ $config{'SMTP_PASSWORD'} = _get_value('SMTP_PASSWORD', $msg, $defaults->{'SMTP_PASSWORD'}, $valid_values, $install_log_values);
+
+ $msg = q{
+SMTP debug mode?};
+ $msg .= _add_valid_values_disp('SMTP_DEBUG', $valid_values);
+ $config{'SMTP_DEBUG'} = _get_value('SMTP_DEBUG', $msg, $defaults->{'SMTP_DEBUG'}, $valid_values, $install_log_values);
+
+ $config{'SMTP_DEBUG'} = ( $config{'SMTP_DEBUG'} eq 'yes' ) ? 1 : 0;
$msg = q(
Would you like to run the database-dependent test suite?);
$dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
$dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
$dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
+ $dirmap{'PERL_MODULE_LIB_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{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
$skipdirs{'OPAC_TMPL_DIR'} = 1;
$dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
$skipdirs{'OPAC_WWW_DIR'} = 1;
+ #NOTE: We're hacking the dirmap here, so that PERL_MODULE_DIR tokens get rewritten correctly for git installs
$dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir($curdir);
$skipdirs{'PERL_MODULE_DIR'} = 1;
+ $dirmap{'PERL_MODULE_LIB_DIR'} = File::Spec->catdir($curdir,'lib');
+ $skipdirs{'PERL_MODULE_LIB_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');
#For dev install, point NONDEV_DIR to misc in current dir (not base)
$dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
$dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
$dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
+ $dirmap{'PERL_MODULE_LIB_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{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
# This means that we're completely overriding EU::MM's default
# installation and uninstallation targets.
+ my $perl5lib_dirs = _build_perl5lib_string({ target_dirs => $target_directories });
+
# If installation is on Win32, we need to do permissions different from *nix
if ( $^O =~ /darwin|linux|cygwin|freebsd|solaris/ ) { # this value needs to be verified for each platform and modified accordingly
foreach my $key (sort keys %$target_directories) {
$install .= "\t\$(NOECHO) \$(ECHO) you should set the following environment variables:\n";
$install .= "\t\$(NOECHO) \$(ECHO)\n";
$install .= "\t\$(NOECHO) \$(ECHO) export KOHA_CONF=\$(KOHA_DEST_KOHA_CONF_DIR)/koha-conf.xml\n";
- $install .= "\t\$(NOECHO) \$(ECHO) export PERL5LIB=$target_directories->{'PERL_MODULE_DIR'}\n";
+ $install .= "\t\$(NOECHO) \$(ECHO) export PERL5LIB=$perl5lib_dirs\n";
$install .= "\t\$(NOECHO) \$(ECHO)\n";
$install .= "\t\$(NOECHO) \$(ECHO) For other post-installation tasks, please consult the README.\n";
$install .= "\t\$(NOECHO) \$(ECHO)\n";
$target .= "\t\t\$(KOHA_INST_ZEBRA_CONF_DIR) \$(KOHA_DEST_ZEBRA_CONF_DIR) \n";
$target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_ZEBRA_CONF_DIR)\n";
$target .= "\tumask 022; \$(MOD_INSTALL) \\\n";
- $target .= "\t\t\$(KOHA_INST_PAZPAR2_CONF_DIR) \$(KOHA_DEST_PAZPAR2_CONF_DIR) \n";
- $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_PAZPAR2_CONF_DIR)\n";
return $target;
}
\t\$(NOECHO) umask 022; \$(MOD_BACKUP) \\
/;
foreach my $key (qw/KOHA_CONF_DIR INTRANET_TMPL_DIR INTRANET_WWW_DIR OPAC_TMPL_DIR OPAC_WWW_DIR
- PAZPAR2_CONF_DIR ZEBRA_CONF_DIR PLUGINS_DIR/) {
+ ZEBRA_CONF_DIR PLUGINS_DIR/) {
$upgrade .= "\t\t\$(KOHA_INST_$key) \$(KOHA_DEST_$key) \\\n"
unless exists $skip_directories->{$key} or
not exists $target_directories->{$key};
# rewrite-confg.PL
my $env;
+
+ #NOTE: Build __PERL5LIB_DIRS__ for rewrite-config.PL
+ my $perl5lib_dirs = _build_perl5lib_string({ target_dirs => $target_directories });
+ if ($perl5lib_dirs){
+ $env .= "export __PERL5LIB_DIRS__ := $perl5lib_dirs\n"
+ }
+
# Hereagain, we must alter syntax per platform...
{
- $env = join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories);
+ $env .= join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories);
$env .= "\n\n";
$env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);
}
return "$env\n";
}
+sub _build_perl5lib_string {
+ my ($args) = @_;
+ my %unique_map = ();
+ my $perl5lib_str;
+ my $target_dirs = $args->{target_dirs};
+ my @dir_codes = ("PERL_MODULE_DIR","PERL_MODULE_LIB_DIR");
+ if ($target_dirs){
+ foreach my $code (@dir_codes){
+ my $path = $target_dirs->{ $code };
+ if ($path){
+ $unique_map{$path} = 1 unless $unique_map{$path};
+ }
+ }
+ my @paths = sort keys %unique_map;
+ if (@paths){
+ $perl5lib_str = join(':',@paths);
+ }
+ }
+ return $perl5lib_str;
+}
__END__