diff --git a/Makefile.PL b/Makefile.PL
index a5002e0898..f5e0525d44 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -25,7 +25,7 @@ use ExtUtils::MakeMaker;
use POSIX;
use File::Spec;
use Getopt::Long qw/HelpMessage/;
-use FindBin; # we need to enforce which C4::Installer::PerlModule is used in case more than one is installed
+use FindBin; # we need to enforce which C4::Installer::PerlModule is used in case more than one is installed
use lib $FindBin::Bin;
@@ -34,12 +34,12 @@ use C4::Installer::PerlModules;
my $koha_pm = C4::Installer::PerlModules->new;
my $DEBUG = 0;
-die "perl 5.10 or later required" unless ($] >= 5.010000);
+die "perl 5.10 or later required" unless ( $] >= 5.010000 );
# Hash up directory structure & files beginning with the directory we were called from (should be the base of koha)...
my $dirtree = hashdir('.');
-my %result = ();
+my %result = ();
=head1 NAME
@@ -392,20 +392,20 @@ my $target_map = {
'./virtualshelves' => 'INTRANET_CGI_DIR',
# ignore files and directories created by the install itself
- './pm_to_blib' => 'NONE',
- './blib' => 'NONE',
+ './pm_to_blib' => 'NONE',
+ './blib' => 'NONE',
'.git-blame-ignore-revs' => 'NONE',
- '.prettierrc.js' => 'NONE',
- '.sass-lint.yml' => 'NONE',
- '.scss-lint.yml' => 'NONE',
- 'gulpfile.js' => 'NONE',
- 'package.json' => 'NONE',
- 'yarn.lock' => 'NONE',
- 'cypress.config.ts' => 'NONE',
- 'tsconfig.json' => 'NONE',
- 'webpack.config.js' => 'NONE',
- 'rspack.config.js' => 'NONE',
- 'eslint.config.mjs' => 'NONE',
+ '.prettierrc.js' => 'NONE',
+ '.sass-lint.yml' => 'NONE',
+ '.scss-lint.yml' => 'NONE',
+ 'gulpfile.js' => 'NONE',
+ 'package.json' => 'NONE',
+ 'yarn.lock' => 'NONE',
+ 'cypress.config.ts' => 'NONE',
+ 'tsconfig.json' => 'NONE',
+ 'webpack.config.js' => 'NONE',
+ 'rspack.config.js' => 'NONE',
+ 'eslint.config.mjs' => 'NONE',
};
=head1 CONFIGURATION OPTIONS
@@ -511,45 +511,45 @@ Enable debug mode for SMTP (default: no)
# default configuration options
my %config_defaults = (
- 'DB_TYPE' => 'mysql',
- 'DB_HOST' => 'localhost',
- 'DB_NAME' => 'koha',
- 'DB_USER' => 'kohaadmin',
- 'DB_PASS' => 'katikoan',
- 'DB_USE_TLS' => 'no',
- 'DB_TLS_CA_CERTIFICATE' => '/etc/mysql-ssl/server-ca.pem',
- 'DB_TLS_CLIENT_CERTIFICATE' => '/etc/mysql-ssl/client-cert.pem',
- 'DB_TLS_CLIENT_KEY' => '/etc/mysql-ssl/client-key.pem',
- 'INSTALL_SRU' => 'yes',
- 'ZEBRA_MARC_FORMAT' => 'marc21',
- 'ZEBRA_LANGUAGE' => 'en',
- 'ZEBRA_TOKENIZER' => 'chr',
- 'ZEBRA_USER' => 'kohauser',
- 'ZEBRA_PASS' => 'zebrastripes',
- 'ZEBRA_SRU_HOST' => 'localhost',
- 'ZEBRA_SRU_BIBLIOS_PORT' => '9998',
- 'ZEBRA_SRU_AUTHORITIES_PORT' => '9999',
- 'KOHA_USER' => 'koha',
- 'KOHA_GROUP' => 'koha',
- 'MERGE_SERVER_HOST' => 'localhost',
- 'MERGE_SERVER_PORT' => '11001',
- 'RUN_DATABASE_TESTS' => 'no',
- 'PATH_TO_ZEBRA' => '',
- 'USE_MEMCACHED' => 'yes',
- 'MEMCACHED_SERVERS' => '127.0.0.1:11211',
- 'MEMCACHED_NAMESPACE' => 'KOHA',
- 'TEMPLATE_CACHE_DIR' => '/tmp/koha',
- 'USE_ELASTICSEARCH' => 'no',
- 'ELASTICSEARCH_SERVERS' => 'localhost:9200',
- 'ELASTICSEARCH_INDEX' => 'koha',
- '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',
+ 'DB_TYPE' => 'mysql',
+ 'DB_HOST' => 'localhost',
+ 'DB_NAME' => 'koha',
+ 'DB_USER' => 'kohaadmin',
+ 'DB_PASS' => 'katikoan',
+ 'DB_USE_TLS' => 'no',
+ 'DB_TLS_CA_CERTIFICATE' => '/etc/mysql-ssl/server-ca.pem',
+ 'DB_TLS_CLIENT_CERTIFICATE' => '/etc/mysql-ssl/client-cert.pem',
+ 'DB_TLS_CLIENT_KEY' => '/etc/mysql-ssl/client-key.pem',
+ 'INSTALL_SRU' => 'yes',
+ 'ZEBRA_MARC_FORMAT' => 'marc21',
+ 'ZEBRA_LANGUAGE' => 'en',
+ 'ZEBRA_TOKENIZER' => 'chr',
+ 'ZEBRA_USER' => 'kohauser',
+ 'ZEBRA_PASS' => 'zebrastripes',
+ 'ZEBRA_SRU_HOST' => 'localhost',
+ 'ZEBRA_SRU_BIBLIOS_PORT' => '9998',
+ 'ZEBRA_SRU_AUTHORITIES_PORT' => '9999',
+ 'KOHA_USER' => 'koha',
+ 'KOHA_GROUP' => 'koha',
+ 'MERGE_SERVER_HOST' => 'localhost',
+ 'MERGE_SERVER_PORT' => '11001',
+ 'RUN_DATABASE_TESTS' => 'no',
+ 'PATH_TO_ZEBRA' => '',
+ 'USE_MEMCACHED' => 'yes',
+ 'MEMCACHED_SERVERS' => '127.0.0.1:11211',
+ 'MEMCACHED_NAMESPACE' => 'KOHA',
+ 'TEMPLATE_CACHE_DIR' => '/tmp/koha',
+ 'USE_ELASTICSEARCH' => 'no',
+ 'ELASTICSEARCH_SERVERS' => 'localhost:9200',
+ 'ELASTICSEARCH_INDEX' => 'koha',
+ '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
@@ -558,64 +558,65 @@ my %config_defaults = (
warn "Your platform appears to be $^O.\n" if $DEBUG;
if ( $^O eq 'cygwin' ) {
- # Most Unix2Win32 ports seem to poke everything into the Program Files directory
- # this could be changed to put some files (ie. libraries) into system32, etc.
- $config_defaults{'INSTALL_MODE'} = 'single';
- $config_defaults{'INSTALL_BASE'} = 'c:/progra~1/koha'; # Use 8.3 names to be safe...
-}
-else {
- $config_defaults{'INSTALL_MODE'} = 'standard';
- $config_defaults{'INSTALL_BASE'} = '/usr/share/koha';
+
+ # Most Unix2Win32 ports seem to poke everything into the Program Files directory
+ # this could be changed to put some files (ie. libraries) into system32, etc.
+ $config_defaults{'INSTALL_MODE'} = 'single';
+ $config_defaults{'INSTALL_BASE'} = 'c:/progra~1/koha'; # Use 8.3 names to be safe...
+} else {
+ $config_defaults{'INSTALL_MODE'} = 'standard';
+ $config_defaults{'INSTALL_BASE'} = '/usr/share/koha';
}
# valid values for certain configuration options
my %valid_config_values = (
- 'INSTALL_MODE' => { 'standard' => 1, 'single' => 1, 'dev' => 1 },
- 'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
- 'DB_USE_TLS' => {'yes', 'no'},
- 'INSTALL_SRU' => { 'yes' => 1, 'no' => 1 },
- '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 },
+ 'INSTALL_MODE' => { 'standard' => 1, 'single' => 1, 'dev' => 1 },
+ 'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
+ 'DB_USE_TLS' => { 'yes', 'no' },
+ 'INSTALL_SRU' => { 'yes' => 1, 'no' => 1 },
+ '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 $koha_install_log = "";
+my $koha_install_log = "";
my $cli_koha_install_mode = "";
-my $cli_koha_db_type = "";
-my $cli_koha_db_host = "";
-my $cli_koha_db_port = "";
-my $cli_koha_db_name = "";
-my $cli_koha_db_user = "";
-my $cli_koha_db_pass = "";
+my $cli_koha_db_type = "";
+my $cli_koha_db_host = "";
+my $cli_koha_db_port = "";
+my $cli_koha_db_name = "";
+my $cli_koha_db_user = "";
+my $cli_koha_db_pass = "";
my $cli_zebra_marc_format = "";
-my $cli_zebra_language = "",
-my $cli_zebra_tokenizer = "";
-my $cli_zebra_user = "";
-my $cli_zebra_pass = "";
-my $cli_zebra_sru_host = "";
-my $cli_zebra_sru_bib_port = "";
-my $cli_zebra_sru_auth_port = "";
-my $cli_koha_user = "";
-my $cli_koha_group = "";
-my $cli_koha_install_sru = "";
-my $cli_koha_use_memcached = "";
-my $cli_koha_font_dir = "";
+my $cli_zebra_language = "",
+ my $cli_zebra_tokenizer = "";
+my $cli_zebra_user = "";
+my $cli_zebra_pass = "";
+my $cli_zebra_sru_host = "";
+my $cli_zebra_sru_bib_port = "";
+my $cli_zebra_sru_auth_port = "";
+my $cli_koha_user = "";
+my $cli_koha_group = "";
+my $cli_koha_install_sru = "";
+my $cli_koha_use_memcached = "";
+my $cli_koha_font_dir = "";
my $cli_koha_run_database_tests = "";
-my $cli_koha_install_base = "";
+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 = "";
+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(
@@ -654,51 +655,56 @@ my $results = GetOptions(
) or HelpMessage(1);
my %install_log_values = ();
-if ($koha_install_log ne "") {
- get_install_log_values($koha_install_log, \%install_log_values);
+if ( $koha_install_log ne "" ) {
+ get_install_log_values( $koha_install_log, \%install_log_values );
} else {
+
# Try to set install_log_values for provided values;
- get_cli_values(\%install_log_values);
+ get_cli_values( \%install_log_values );
}
-my %config = get_configuration(\%config_defaults, \%valid_config_values, \%install_log_values);
-my ($target_directories, $skip_directories) = get_target_directories(\%config);
-display_configuration(\%config, $target_directories);
+my %config = get_configuration( \%config_defaults, \%valid_config_values, \%install_log_values );
+my ( $target_directories, $skip_directories ) = get_target_directories( \%config );
+display_configuration( \%config, $target_directories );
my $file_map = {};
-get_file_map($target_map, $dirtree, $file_map);
+get_file_map( $target_map, $dirtree, $file_map );
#NOTE: List files generated by build-resources.PL, so that they're copied into blib for installation
#INTRANET_TMPL_DIR
-$file_map->{'koha-tmpl/intranet-tmpl/prog/css/calendar.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/calendar.css';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/css/holds.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/holds.css';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/css/installer.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/installer.css';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/css/mainpage.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/mainpage.css';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/css/calendar.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/calendar.css';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/css/holds.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/holds.css';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/css/installer.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/installer.css';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/css/mainpage.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/mainpage.css';
$file_map->{'koha-tmpl/intranet-tmpl/prog/css/staff-global.css'} = 'blib/INTRANET_TMPL_DIR/prog/css/staff-global.css';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/erm.js'} = 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/erm.js';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/preservation.js'} = 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/preservation.js';
-$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/admin/record_sources.js'} = 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/admin/record_sources.js';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/erm.js'} = 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/erm.js';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/preservation.js'} =
+ 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/preservation.js';
+$file_map->{'koha-tmpl/intranet-tmpl/prog/js/vue/dist/admin/record_sources.js'} =
+ 'blib/INTRANET_TMPL_DIR/prog/js/vue/dist/admin/record_sources.js';
+
#OPAC_TMPL_DIR
-$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/opac.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/opac.css';
-$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/opac-rtl.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/opac-rtl.css';
-$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/print.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/print.css';
+$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/opac.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/opac.css';
+$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/opac-rtl.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/opac-rtl.css';
+$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/print.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/print.css';
$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/print-rtl.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/print-rtl.css';
-$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/sco.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/sco.css';
-$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/sco-rtl.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/sco-rtl.css';
+$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/sco.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/sco.css';
+$file_map->{'koha-tmpl/opac-tmpl/bootstrap/css/sco-rtl.css'} = 'blib/OPAC_TMPL_DIR/bootstrap/css/sco-rtl.css';
+
#API_CGI_DIR
$file_map->{'api/v1/swagger/swagger_bundle.json'} = 'blib/API_CGI_DIR/v1/swagger/swagger_bundle.json';
my $pl_files = {
- 'rewrite-config.PL' => [
- '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'
- ],
- 'fix-perl-path.PL' => [ # this script ensures the correct shebang line for the platform installed on...
- 'blib'
- ],
+ 'rewrite-config.PL' => [
+ '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'
+ ],
+ 'fix-perl-path.PL' => [ # this script ensures the correct shebang line for the platform installed on...
+ 'blib'
+ ],
};
push @{ $pl_files->{'rewrite-config.PL'} }, (
@@ -713,56 +719,59 @@ push @{ $pl_files->{'rewrite-config.PL'} }, (
push @{ $pl_files->{'rewrite-config.PL'} }, (
'blib/SCRIPT_DIR/koha-zebra-ctl.sh',
);
-$config{'ZEBRA_AUTH_CFG'} = 'zebra-authorities-dom.cfg';
-$config{'ZEBRA_BIB_CFG'} = 'zebra-biblios-dom.cfg';
+$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';
$config{'BIB_RETRIEVAL_CFG'} = 'retrieval-info-bib-dom.xml';
-if ($config{'INSTALL_MODE'} ne "dev") {
+if ( $config{'INSTALL_MODE'} ne "dev" ) {
push @{ $pl_files->{'rewrite-config.PL'} }, (
'blib/PERL_MODULE_DIR/C4/Context.pm',
);
}
-$config{ZEBRA_TOKENIZER_STMT} = $config{ZEBRA_TOKENIZER} eq 'icu'
+$config{ZEBRA_TOKENIZER_STMT} =
+ $config{ZEBRA_TOKENIZER} eq 'icu'
? 'icuchain words-icu.xml'
: 'charmap word-phrase-utf.chr';
-$config{ZEBRA_PTOKENIZER_STMT} = $config{ZEBRA_TOKENIZER} eq 'icu'
+$config{ZEBRA_PTOKENIZER_STMT} =
+ $config{ZEBRA_TOKENIZER} eq 'icu'
? 'icuchain phrases-icu.xml'
: 'charmap word-phrase-utf.chr';
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'],
+ 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'],
- ZEBRA_LOCK_DIR => ['var', 'lock', 'zebradb'],
- ZEBRA_DATA_DIR => ['var', 'lib', 'zebradb'],
- ZEBRA_RUN_DIR => ['var', 'run', 'zebradb'],
+ ZEBRA_LOCK_DIR => [ 'var', 'lock', 'zebradb' ],
+ ZEBRA_DATA_DIR => [ 'var', 'lib', 'zebradb' ],
+ ZEBRA_RUN_DIR => [ 'var', 'run', 'zebradb' ],
);
WriteMakefile(
- NAME => 'koha',
- #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 ',
- NO_META => 1,
- PREREQ_PM => $koha_pm->prereq_pm,
+ NAME => 'koha',
- # File tree mapping
- PM => $file_map,
+ #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 ',
+ NO_META => 1,
+ PREREQ_PM => $koha_pm->prereq_pm,
- # Man pages generated from POD
- # ExtUtils::MakeMaker already manage $(DESTDIR)
- INSTALLMAN1DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man1'),
- INSTALLMAN3DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man3'),
+ # File tree mapping
+ PM => $file_map,
- PL_FILES => $pl_files,
+ # Man pages generated from POD
+ # ExtUtils::MakeMaker already manage $(DESTDIR)
+ INSTALLMAN1DIR => File::Spec->catdir( _strip_destdir( $target_directories->{'MAN_DIR'} ), 'man1' ),
+ INSTALLMAN3DIR => File::Spec->catdir( _strip_destdir( $target_directories->{'MAN_DIR'} ), 'man3' ),
+
+ PL_FILES => $pl_files,
);
=head1 FUNCTIONS
@@ -775,15 +784,15 @@ This directory hashing routine was taken from BrowserUK @ http://www.perlmonks.o
=cut
-sub hashdir{
+sub hashdir {
my $dir = shift;
opendir my $dh, $dir or die $!;
my $tree = {}->{$dir} = {};
- while( my $file = readdir($dh) ) {
- next if $file =~ m/^\.{1,2}/ and $file !~ /^\.htaccess/; # .htaccess is a special case
- my $path = $dir .'/' . $file;
+ while ( my $file = readdir($dh) ) {
+ next if $file =~ m/^\.{1,2}/ and $file !~ /^\.htaccess/; # .htaccess is a special case
+ my $path = $dir . '/' . $file;
$tree->{$file} = hashdir($path), next if -d $path;
- push @{$tree->{'.'}}, $file;
+ push @{ $tree->{'.'} }, $file;
}
return $tree;
}
@@ -803,60 +812,64 @@ to its destination value, like this:
sub get_file_map {
my $target_map = shift;
- my $dirtree = shift;
- my $file_map = shift;
- my $curr_path = @_ ? shift : ['.'];
+ my $dirtree = shift;
+ my $file_map = shift;
+ my $curr_path = @_ ? shift : ['.'];
# Traverse the directory tree.
# For each file or directory, identify the
# most specific match in the target_map
- foreach my $dir (sort keys %{ $dirtree }) {
- if ($dir eq '.') {
+ foreach my $dir ( sort keys %{$dirtree} ) {
+ if ( $dir eq '.' ) {
+
# deal with files in directory
- foreach my $file (sort @{ $dirtree->{$dir} }) {
- my $targetdir = undef;
+ foreach my $file ( sort @{ $dirtree->{$dir} } ) {
+ my $targetdir = undef;
my $matchlevel = undef;
+
# first, see if there is a match on this specific
# file in the target map
- my $filepath = join("/", @$curr_path, $file);
- if (exists $target_map->{$filepath}) {
- $targetdir = $target_map->{$filepath};
+ my $filepath = join( "/", @$curr_path, $file );
+ if ( exists $target_map->{$filepath} ) {
+ $targetdir = $target_map->{$filepath};
$matchlevel = scalar(@$curr_path) + 1;
} else {
+
# no match on the specific file; look for
# a directory match
- for (my $i = scalar(@$curr_path) - 1; $i >= 0; $i--) {
- my $dirpath = join("/", @$curr_path[0..$i]);
- if (exists $target_map->{$dirpath}) {
- $targetdir = $target_map->{$dirpath};
+ for ( my $i = scalar(@$curr_path) - 1 ; $i >= 0 ; $i-- ) {
+ my $dirpath = join( "/", @$curr_path[ 0 .. $i ] );
+ if ( exists $target_map->{$dirpath} ) {
+ $targetdir = $target_map->{$dirpath};
$matchlevel = $i + 1;
last;
}
}
}
- if (defined $targetdir) {
- _add_to_file_map($file_map, $targetdir, $curr_path, $file, $matchlevel);
+ if ( defined $targetdir ) {
+ _add_to_file_map( $file_map, $targetdir, $curr_path, $file, $matchlevel );
} else {
- my $path = join("/", @$curr_path);
+ my $path = join( "/", @$curr_path );
print "failed to map: $path/$file\n" if $DEBUG;
}
}
} else {
+
# dealing with subdirectory
push @$curr_path, $dir;
- get_file_map($target_map, $dirtree->{$dir}, $file_map, $curr_path);
+ get_file_map( $target_map, $dirtree->{$dir}, $file_map, $curr_path );
pop @$curr_path;
}
}
}
sub _add_to_file_map {
- my $file_map = shift;
- my $targetdir = shift;
- my $curr_path = shift;
- my $file = shift;
+ my $file_map = shift;
+ my $targetdir = shift;
+ my $curr_path = shift;
+ my $file = shift;
my $matchlevel = shift;
- my $dest_path = @_ ? shift : $curr_path;
+ my $dest_path = @_ ? shift : $curr_path;
# The target can be one of the following:
# 1. scalar representing target symbol
@@ -865,9 +878,10 @@ sub _add_to_file_map {
# Consequently, this routine traverses this structure,
# calling itself recursively, until it deals with
# all of the scalar target symbols.
- if (ref $targetdir eq 'HASH') {
+ if ( ref $targetdir eq 'HASH' ) {
my $subtarget = $targetdir->{target};
- if (exists $targetdir->{trimdir}) {
+ if ( exists $targetdir->{trimdir} ) {
+
# if we get here, we've specified that
# rather than installing the file to
# $(TARGET)/matching/dirs/subdirs/file,
@@ -877,28 +891,30 @@ sub _add_to_file_map {
# Note that this the only place where
# $matchlevel is used.
my @new_dest_path = @$dest_path;
- if ($targetdir->{trimdir} == -1) {
+ if ( $targetdir->{trimdir} == -1 ) {
splice @new_dest_path, 0, $matchlevel;
} else {
splice @new_dest_path, 0, $targetdir->{trimdir};
}
- _add_to_file_map($file_map, $subtarget, $curr_path, $file, $matchlevel, \@new_dest_path);
+ _add_to_file_map( $file_map, $subtarget, $curr_path, $file, $matchlevel, \@new_dest_path );
} else {
+
# actually getting here means that the
# target was unnecessarily listed
# as a hash, but we'll forgive that
- _add_to_file_map($file_map, $subtarget, $curr_path, $file, $matchlevel);
+ _add_to_file_map( $file_map, $subtarget, $curr_path, $file, $matchlevel );
}
- } elsif ($targetdir ne 'NONE' and $targetdir ne '') {
- my $source = File::Spec->catfile(@$curr_path, $file);
- my $destination = File::Spec->catfile('blib', $targetdir, @$dest_path, $file);
+ } elsif ( $targetdir ne 'NONE' and $targetdir ne '' ) {
+ my $source = File::Spec->catfile( @$curr_path, $file );
+ my $destination = File::Spec->catfile( 'blib', $targetdir, @$dest_path, $file );
+
#print "$source => $destination\n"; # DEBUG
# quote spaces in file names
# FIXME: this is of questionable portability and
# probably depends on user's make recognizing this
# quoting syntax -- probably better to remove
# spaces and shell metacharacters from all file names
- $source =~ s/ /\\ /g;
+ $source =~ s/ /\\ /g;
$destination =~ s/ /\\ /g;
$file_map->{$source} = $destination;
@@ -913,7 +929,7 @@ Reads values provided on cli for configuration values
sub get_cli_values {
my $values = shift;
- my $map = {
+ my $map = {
INSTALL_MODE => $cli_koha_install_mode,
DB_TYPE => $cli_koha_db_type,
DB_HOST => $cli_koha_db_host,
@@ -943,10 +959,10 @@ sub get_cli_values {
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},
+ 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});
+ foreach my $key ( keys %{$map} ) {
+ $values->{$key} = $map->{$key} if ( $map->{$key} );
}
}
@@ -959,7 +975,7 @@ Reads value from the Koha install log specified by
sub get_install_log_values {
my $install_log = shift;
- my $values = shift;
+ my $values = shift;
open my $log, '<', $install_log or die "Cannot open install log $install_log: $!\n";
while (<$log>) {
@@ -968,7 +984,7 @@ sub get_install_log_values {
next if /^=/;
next unless m/=/;
s/\s+$//g;
- my ($key, $value) = split /=/, $_, 2;
+ my ( $key, $value ) = split /=/, $_, 2;
$values->{$key} = $value;
}
close $log;
@@ -989,12 +1005,12 @@ This prompts the user for various configuration options.
=cut
sub get_configuration {
- my $defaults = shift;
- my $valid_values = shift;
- my $install_log_values = shift;
- my %config = ();
+ my $defaults = shift;
+ my $valid_values = shift;
+ my $install_log_values = shift;
+ my %config = ();
- my $msg = q(
+ my $msg = q(
By default, Koha can be installed in one of three ways:
standard: Install files in conformance with the Filesystem
@@ -1015,13 +1031,14 @@ dev: Create a set of symbolic links and configuration files to
Koha from a git clone.
Installation mode);
- $msg .= _add_valid_values_disp('INSTALL_MODE', $valid_values);
- $config{'INSTALL_MODE'} = _get_value('INSTALL_MODE', $msg, $defaults->{'INSTALL_MODE'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'INSTALL_MODE', $valid_values );
+ $config{'INSTALL_MODE'} =
+ _get_value( 'INSTALL_MODE', $msg, $defaults->{'INSTALL_MODE'}, $valid_values, $install_log_values );
# set message and default value for INSTALL_BASE
# depending on value of INSTALL_MODE
my $install_base_default = $defaults->{'INSTALL_BASE'};
- if ($config{'INSTALL_MODE'} eq 'dev') {
+ if ( $config{'INSTALL_MODE'} eq 'dev' ) {
$msg = q(
Please specify the directory in which to install Koha's
active configuration files and (if applicable) the
@@ -1029,22 +1046,23 @@ Zebra database. Koha's CGI scripts and templates will
be run from the current directory.
Configuration directory:);
+
# FIXME - home directory portability consideration apply
- $install_base_default =
- $ENV{DESTDIR}
- || ( exists $ENV{HOME} ? "$ENV{HOME}/koha-dev" : "$defaults->{'INSTALL_BASE'}-dev" )
- ;
- } elsif ($config{'INSTALL_MODE'} eq 'single') {
+ $install_base_default = $ENV{DESTDIR}
+ || ( exists $ENV{HOME} ? "$ENV{HOME}/koha-dev" : "$defaults->{'INSTALL_BASE'}-dev" );
+ } elsif ( $config{'INSTALL_MODE'} eq 'single' ) {
$msg = "\nPlease specify the directory in which to install Koha";
+
# FIXME -- we're assuming under a 'single' mode install
# that user will likely want to install under the home
# directory. This is OK in and of itself, but we should
# use File::HomeDir to locate the home directory portably.
# This is deferred for now because File::HomeDir is not yet
# core.
- # --we must also keep this portable to the major OS's -fbcit
- $install_base_default = (exists $ENV{'HOME'}) ? "$ENV{'HOME'}/koha" : $defaults->{'INSTALL_BASE'};
+ # --we must also keep this portable to the major OS's -fbcit
+ $install_base_default = ( exists $ENV{'HOME'} ) ? "$ENV{'HOME'}/koha" : $defaults->{'INSTALL_BASE'};
} else {
+
# must be standard
$msg = q(
Please specify the directory under which most Koha files
@@ -1057,11 +1075,12 @@ as the package name in the FHS layout.
Base installation directory);
}
- $config{'INSTALL_BASE'} = _get_value('INSTALL_BASE', $msg, $install_base_default, $valid_values, $install_log_values);
+ $config{'INSTALL_BASE'} =
+ _get_value( 'INSTALL_BASE', $msg, $install_base_default, $valid_values, $install_log_values );
- $config{'INSTALL_BASE'} = File::Spec->rel2abs($config{'INSTALL_BASE'});
- print "INSTALL_BASE=$config{'INSTALL_BASE'}\r\n" if $DEBUG;
- if ($config{'INSTALL_MODE'} eq "standard") {
+ $config{'INSTALL_BASE'} = File::Spec->rel2abs( $config{'INSTALL_BASE'} );
+ print "INSTALL_BASE=$config{'INSTALL_BASE'}\r\n" if $DEBUG;
+ if ( $config{'INSTALL_MODE'} eq "standard" ) {
$msg = q(
Since you are using the 'standard' install
mode, you should run 'make install' as root.
@@ -1079,7 +1098,8 @@ user should not be the same as the user
account Apache runs under.
User account);
- $config{'KOHA_USER'} = _get_value('KOHA_USER', $msg, $defaults->{'KOHA_USER'}, $valid_values, $install_log_values);
+ $config{'KOHA_USER'} =
+ _get_value( 'KOHA_USER', $msg, $defaults->{'KOHA_USER'}, $valid_values, $install_log_values );
$msg = q(
Please specify the group that should own
@@ -1088,7 +1108,8 @@ not exist right now, but should be created
before you run 'make install'.
Group);
- $config{'KOHA_GROUP'} = _get_value('KOHA_GROUP', $msg, $defaults->{'KOHA_GROUP'}, $valid_values, $install_log_values);
+ $config{'KOHA_GROUP'} =
+ _get_value( 'KOHA_GROUP', $msg, $defaults->{'KOHA_GROUP'}, $valid_values, $install_log_values );
}
$msg = q(
@@ -1098,8 +1119,8 @@ PostgreSQL; please note that at the moment
PostgreSQL support is highly experimental.
DBMS to use);
- $msg .= _add_valid_values_disp('DB_TYPE', $valid_values);
- $config{'DB_TYPE'} = _get_value('DB_TYPE', $msg, $defaults->{'DB_TYPE'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'DB_TYPE', $valid_values );
+ $config{'DB_TYPE'} = _get_value( 'DB_TYPE', $msg, $defaults->{'DB_TYPE'}, $valid_values, $install_log_values );
$msg = q(
Please specify the name or address of your
@@ -1109,49 +1130,59 @@ can be created after running 'make install'
and before you try using Koha for the first time.
Database server);
- $config{'DB_HOST'} = _get_value('DB_HOST', $msg, $defaults->{'DB_HOST'}, $valid_values, $install_log_values);
+ $config{'DB_HOST'} = _get_value( 'DB_HOST', $msg, $defaults->{'DB_HOST'}, $valid_values, $install_log_values );
$msg = q(
Please specify the port used to connect to the
DMBS);
my $db_port_default = $config{'DB_TYPE'} eq 'mysql' ? '3306' : '5432';
- $config{'DB_PORT'} = _get_value('DB_PORT', $msg, $db_port_default, $valid_values, $install_log_values);
+ $config{'DB_PORT'} = _get_value( 'DB_PORT', $msg, $db_port_default, $valid_values, $install_log_values );
$msg = q(
Please specify the name of the database to be
used by Koha);
- $config{'DB_NAME'} = _get_value('DB_NAME', $msg, $defaults->{'DB_NAME'}, $valid_values, $install_log_values);
- if ($config{'DB_TYPE'} eq 'mysql'){
+ $config{'DB_NAME'} = _get_value( 'DB_NAME', $msg, $defaults->{'DB_NAME'}, $valid_values, $install_log_values );
+ if ( $config{'DB_TYPE'} eq 'mysql' ) {
$msg = q(
Please specify whether the connection to MySQL will use TLS
);
- $config{'DB_USE_TLS'} = _get_value('DB_USE_TLS', $msg, $defaults->{'DB_USE_TLS'}, $valid_values, $install_log_values);
+ $config{'DB_USE_TLS'} =
+ _get_value( 'DB_USE_TLS', $msg, $defaults->{'DB_USE_TLS'}, $valid_values, $install_log_values );
}
- if ($config{'DB_USE_TLS'} eq 'yes'){
+ if ( $config{'DB_USE_TLS'} eq 'yes' ) {
$msg = q(
Please enter the path to the CA certificate for TLS
);
- $config{'DB_TLS_CA_CERTIFICATE'} = _get_value('DB_TLS_CA_CERTIFICATE', $msg, $defaults->{'DB_TLS_CA_CERTIFICATE'}, $valid_values, $install_log_values);
+ $config{'DB_TLS_CA_CERTIFICATE'} = _get_value(
+ 'DB_TLS_CA_CERTIFICATE', $msg, $defaults->{'DB_TLS_CA_CERTIFICATE'}, $valid_values,
+ $install_log_values
+ );
$msg = q(
Please enter the path to the client certificate for TLS
);
- $config{'DB_TLS_CLIENT_CERTIFICATE'} = _get_value('DB_TLS_CLIENT_CERTIFICATE', $msg, $defaults->{'DB_TLS_CLIENT_CERTIFICATE'}, $valid_values, $install_log_values);
+ $config{'DB_TLS_CLIENT_CERTIFICATE'} = _get_value(
+ 'DB_TLS_CLIENT_CERTIFICATE', $msg, $defaults->{'DB_TLS_CLIENT_CERTIFICATE'}, $valid_values,
+ $install_log_values
+ );
$msg = q(
Please enter the path to the client key for TLS
);
- $config{'DB_TLS_CLIENT_KEY'} = _get_value('DB_TLS_CLIENT_KEY', $msg, $defaults->{'DB_TLS_CLIENT_KEY'}, $valid_values, $install_log_values);
+ $config{'DB_TLS_CLIENT_KEY'} = _get_value(
+ 'DB_TLS_CLIENT_KEY', $msg, $defaults->{'DB_TLS_CLIENT_KEY'}, $valid_values,
+ $install_log_values
+ );
}
$msg = q(
Please specify the user that owns the database to be
used by Koha);
- $config{'DB_USER'} = _get_value('DB_USER', $msg, $defaults->{'DB_USER'}, $valid_values, $install_log_values);
+ $config{'DB_USER'} = _get_value( 'DB_USER', $msg, $defaults->{'DB_USER'}, $valid_values, $install_log_values );
$msg = q(
Please specify the password of the user that owns the
database to be used by Koha);
- $config{'DB_PASS'} = _get_value('DB_PASS', $msg, $defaults->{'DB_PASS'}, $valid_values, $install_log_values);
+ $config{'DB_PASS'} = _get_value( 'DB_PASS', $msg, $defaults->{'DB_PASS'}, $valid_values, $install_log_values );
print q(
Koha uses the Zebra search engine for high-performance
@@ -1159,7 +1190,7 @@ searching of bibliographic and authority records. Checking
to see if you have installed the Zebra software...
);
- if (defined(my $zebra_path = find_zebra())) {
+ if ( defined( my $zebra_path = find_zebra() ) ) {
$config{'PATH_TO_ZEBRA'} = $zebra_path;
print qq(
Found 'zebrasrv' and 'zebraidx' in $zebra_path.
@@ -1181,16 +1212,18 @@ Koha provides Zebra configuration files for MARC21,
and UNIMARC.
MARC format for Zebra indexing);
- $msg .= _add_valid_values_disp('ZEBRA_MARC_FORMAT', $valid_values);
- $config{'ZEBRA_MARC_FORMAT'} = _get_value('ZEBRA_MARC_FORMAT', $msg, $defaults->{'ZEBRA_MARC_FORMAT'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'ZEBRA_MARC_FORMAT', $valid_values );
+ $config{'ZEBRA_MARC_FORMAT'} =
+ _get_value( 'ZEBRA_MARC_FORMAT', $msg, $defaults->{'ZEBRA_MARC_FORMAT'}, $valid_values, $install_log_values );
$msg = q(
Koha supplies Zebra configuration files tuned for
searching either English (en) or French (fr) MARC
records.
Primary language for Zebra indexing);
- $msg .= _add_valid_values_disp('ZEBRA_LANGUAGE', $valid_values);
- $config{'ZEBRA_LANGUAGE'} = _get_value('ZEBRA_LANGUAGE', $msg, $defaults->{'ZEBRA_LANGUAGE'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'ZEBRA_LANGUAGE', $valid_values );
+ $config{'ZEBRA_LANGUAGE'} =
+ _get_value( 'ZEBRA_LANGUAGE', $msg, $defaults->{'ZEBRA_LANGUAGE'}, $valid_values, $install_log_values );
$msg = q(
Zebra has two methods to perform records tokenization
@@ -1198,16 +1231,19 @@ and characters normalization: CHR and ICU. ICU is
recommended for catalogs containing non-Latin
characters.);
- $msg .= _add_valid_values_disp('ZEBRA_TOKENIZER', $valid_values);
- $config{'ZEBRA_TOKENIZER'} = _get_value('ZEBRA_TOKENIZER', $msg, $defaults->{'ZEBRA_TOKENIZER'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'ZEBRA_TOKENIZER', $valid_values );
+ $config{'ZEBRA_TOKENIZER'} =
+ _get_value( 'ZEBRA_TOKENIZER', $msg, $defaults->{'ZEBRA_TOKENIZER'}, $valid_values, $install_log_values );
$msg = q(
Please specify Zebra database user);
- $config{'ZEBRA_USER'} = _get_value('ZEBRA_USER', $msg, $defaults->{'ZEBRA_USER'}, $valid_values, $install_log_values);
+ $config{'ZEBRA_USER'} =
+ _get_value( 'ZEBRA_USER', $msg, $defaults->{'ZEBRA_USER'}, $valid_values, $install_log_values );
$msg = q(
Please specify the Zebra database password);
- $config{'ZEBRA_PASS'} = _get_value('ZEBRA_PASS', $msg, $defaults->{'ZEBRA_PASS'}, $valid_values, $install_log_values);
+ $config{'ZEBRA_PASS'} =
+ _get_value( 'ZEBRA_PASS', $msg, $defaults->{'ZEBRA_PASS'}, $valid_values, $install_log_values );
$msg = q(
Since you've chosen to use Zebra, you can enable the SRU/
@@ -1219,10 +1255,11 @@ koha-conf.xml will still contain some references to SRU
settings. Those references will be ignored by Koha.
Install the SRU configuration files?);
- $msg .= _add_valid_values_disp('INSTALL_SRU', $valid_values);
- $config{'INSTALL_SRU'} = _get_value('INSTALL_SRU', $msg, $defaults->{'INSTALL_SRU'}, $valid_values, $install_log_values);
+ $msg .= _add_valid_values_disp( 'INSTALL_SRU', $valid_values );
+ $config{'INSTALL_SRU'} =
+ _get_value( 'INSTALL_SRU', $msg, $defaults->{'INSTALL_SRU'}, $valid_values, $install_log_values );
- if ($config{'INSTALL_SRU'} eq 'yes') {
+ if ( $config{'INSTALL_SRU'} eq 'yes' ) {
$msg = q(
Since you've chosen to configure SRU, you must
specify the host and port(s) that the SRU
@@ -1230,112 +1267,141 @@ Servers (bibliographic and authority) should run on.
);
$msg = q(
SRU Database host?);
- $config{'ZEBRA_SRU_HOST'} = _get_value('ZEBRA_SRU_HOST', $msg, $defaults->{'ZEBRA_SRU_HOST'}, $valid_values, $install_log_values);
+ $config{'ZEBRA_SRU_HOST'} =
+ _get_value( 'ZEBRA_SRU_HOST', $msg, $defaults->{'ZEBRA_SRU_HOST'}, $valid_values, $install_log_values );
$msg = q(
SRU port for bibliographic data?);
- $config{'ZEBRA_SRU_BIBLIOS_PORT'} = _get_value('ZEBRA_SRU_BIBLIOS_PORT', $msg, $defaults->{'ZEBRA_SRU_BIBLIOS_PORT'}, $valid_values, $install_log_values);
+ $config{'ZEBRA_SRU_BIBLIOS_PORT'} = _get_value(
+ 'ZEBRA_SRU_BIBLIOS_PORT', $msg, $defaults->{'ZEBRA_SRU_BIBLIOS_PORT'}, $valid_values,
+ $install_log_values
+ );
$msg = q(
SRU port for authority data?);
- $config{'ZEBRA_SRU_AUTHORITIES_PORT'} = _get_value('ZEBRA_SRU_AUTHORITIES_PORT', $msg, $defaults->{'ZEBRA_SRU_AUTHORITIES_PORT'}, $valid_values, $install_log_values);
+ $config{'ZEBRA_SRU_AUTHORITIES_PORT'} = _get_value(
+ 'ZEBRA_SRU_AUTHORITIES_PORT', $msg, $defaults->{'ZEBRA_SRU_AUTHORITIES_PORT'}, $valid_values,
+ $install_log_values
+ );
}
- $msg = q(
+ $msg = q(
Use memcached to cache the results of some function calls?
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);
- if ($config{'USE_MEMCACHED'} eq 'yes'){
- $msg = q(
+ $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 );
+ if ( $config{'USE_MEMCACHED'} eq 'yes' ) {
+ $msg = q(
Since you've chosen to use caching, you must specify the memcached servers and the namespace to use:
);
- $msg = q(
+ $msg = q(
Memcached server address?);
- $config{'MEMCACHED_SERVERS'} = _get_value('MEMCACHED_SERVERS', $msg, $defaults->{'MEMCACHED_SERVERS'}, $valid_values, $install_log_values);
+ $config{'MEMCACHED_SERVERS'} = _get_value(
+ 'MEMCACHED_SERVERS', $msg, $defaults->{'MEMCACHED_SERVERS'}, $valid_values,
+ $install_log_values
+ );
- $msg = q(
+ $msg = q(
Memcached namespace?);
- $config{'MEMCACHED_NAMESPACE'} = _get_value('MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values, $install_log_values);
- }
+ $config{'MEMCACHED_NAMESPACE'} = _get_value(
+ 'MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values,
+ $install_log_values
+ );
+ }
-
- $msg = q(
+ $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(
+ $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(
+ $msg = q(
Elasticsearch server addresses?);
- $config{'ELASTICSEARCH_SERVERS'} = _get_value('ELASTICSEARCH_SERVERS', $msg, $defaults->{'ELASTICSEARCH_SERVERS'}, $valid_values, $install_log_values);
+ $config{'ELASTICSEARCH_SERVERS'} = _get_value(
+ 'ELASTICSEARCH_SERVERS', $msg, $defaults->{'ELASTICSEARCH_SERVERS'}, $valid_values,
+ $install_log_values
+ );
- $msg = q(
+ $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);
- }
+ $config{'ELASTICSEARCH_INDEX'} = _get_value(
+ 'ELASTICSEARCH_INDEX', $msg, $defaults->{'ELASTICSEARCH_INDEX'}, $valid_values,
+ $install_log_values
+ );
+ }
- $msg = q(
+ $msg = q(
Template cache directory?);
- $config{'TEMPLATE_CACHE_DIR'} = _get_value('TEMPLATE_CACHE_DIR', $msg, $defaults->{'TEMPLATE_CACHE_DIR'}, $valid_values, $install_log_values);
+ $config{'TEMPLATE_CACHE_DIR'} =
+ _get_value( 'TEMPLATE_CACHE_DIR', $msg, $defaults->{'TEMPLATE_CACHE_DIR'}, $valid_values, $install_log_values );
- $msg = q(
+ $msg = q(
Path to DejaVu fonts?);
- $config{'FONT_DIR'} = _get_value('FONT_DIR', $msg, $defaults->{'FONT_DIR'}, $valid_values, $install_log_values);
+ $config{'FONT_DIR'} = _get_value( 'FONT_DIR', $msg, $defaults->{'FONT_DIR'}, $valid_values, $install_log_values );
- $msg = q(
+ $msg = q(
SMTP settings
You will be able to set your default SMTP configuration.);
- $msg .= q{
+ $msg .= q{
SMTP host name?};
- $config{'SMTP_HOST'} = _get_value('SMTP_HOST', $msg, $defaults->{'SMTP_HOST'}, $valid_values, $install_log_values);
+ $config{'SMTP_HOST'} =
+ _get_value( 'SMTP_HOST', $msg, $defaults->{'SMTP_HOST'}, $valid_values, $install_log_values );
- $msg = q{
+ $msg = q{
SMTP port?};
- $config{'SMTP_PORT'} = _get_value('SMTP_PORT', $msg, $defaults->{'SMTP_PORT'}, $valid_values, $install_log_values);
+ $config{'SMTP_PORT'} =
+ _get_value( 'SMTP_PORT', $msg, $defaults->{'SMTP_PORT'}, $valid_values, $install_log_values );
- $msg = q{
+ $msg = q{
SMTP timeout (in seconds)?};
- $config{'SMTP_TIMEOUT'} = _get_value('SMTP_TIMEOUT', $msg, $defaults->{'SMTP_TIMEOUT'}, $valid_values, $install_log_values);
+ $config{'SMTP_TIMEOUT'} =
+ _get_value( 'SMTP_TIMEOUT', $msg, $defaults->{'SMTP_TIMEOUT'}, $valid_values, $install_log_values );
- $msg = q{
+ $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 .= _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{
+ $msg = q{
SMTP user name?};
- $config{'SMTP_USER_NAME'} = _get_value('SMTP_USER_NAME', $msg, $defaults->{'SMTP_USER_NAME'}, $valid_values, $install_log_values);
+ $config{'SMTP_USER_NAME'} =
+ _get_value( 'SMTP_USER_NAME', $msg, $defaults->{'SMTP_USER_NAME'}, $valid_values, $install_log_values );
- $msg = q{
+ $msg = q{
SMTP password?};
- $config{'SMTP_PASSWORD'} = _get_value('SMTP_PASSWORD', $msg, $defaults->{'SMTP_PASSWORD'}, $valid_values, $install_log_values);
+ $config{'SMTP_PASSWORD'} =
+ _get_value( 'SMTP_PASSWORD', $msg, $defaults->{'SMTP_PASSWORD'}, $valid_values, $install_log_values );
- $msg = q{
+ $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);
+ $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;
+ $config{'SMTP_DEBUG'} = ( $config{'SMTP_DEBUG'} eq 'yes' ) ? 1 : 0;
- $msg = q(
+ $msg = q(
Would you like to run the database-dependent test suite?);
- $msg .= _add_valid_values_disp( 'RUN_DATABASE_TESTS', $valid_values );
- $config{'RUN_DATABASE_TESTS'} = _get_value( 'RUN_DATABASE_TESTS', $msg, $defaults->{'RUN_DATABASE_TESTS'}, $valid_values, $install_log_values );
+ $msg .= _add_valid_values_disp( 'RUN_DATABASE_TESTS', $valid_values );
+ $config{'RUN_DATABASE_TESTS'} =
+ _get_value( 'RUN_DATABASE_TESTS', $msg, $defaults->{'RUN_DATABASE_TESTS'}, $valid_values, $install_log_values );
- if ( $config{'RUN_DATABASE_TESTS'} eq 'yes' ) {
- $config{'TEST_DB_TYPE'} = $config{'DB_TYPE'};
- $config{'TEST_DB_HOST'} = $config{'DB_HOST'};
- $msg = q(TEST DATABASE
+ if ( $config{'RUN_DATABASE_TESTS'} eq 'yes' ) {
+ $config{'TEST_DB_TYPE'} = $config{'DB_TYPE'};
+ $config{'TEST_DB_HOST'} = $config{'DB_HOST'};
+ $msg = q(TEST DATABASE
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
@@ -1348,22 +1414,27 @@ doing it in a database that you don't want to lose.
Please specify the name of the test database to be
used by Koha);
- $config{'TEST_DB_NAME'} = _get_value('TEST_DB_NAME', $msg, $defaults->{'TEST_DB_NAME'}, $valid_values, $install_log_values);
- while ( $config{'TEST_DB_NAME'} eq $config{'DB_NAME'} ) {
- $msg = q(Please do not use the same database for testing as you do for production. You run the severe risk of data loss.);
- $config{'TEST_DB_NAME'} = _get_value('TEST_DB_NAME', $msg, $defaults->{'TEST_DB_NAME'}, $valid_values, $install_log_values);
- }
+ $config{'TEST_DB_NAME'} =
+ _get_value( 'TEST_DB_NAME', $msg, $defaults->{'TEST_DB_NAME'}, $valid_values, $install_log_values );
+ while ( $config{'TEST_DB_NAME'} eq $config{'DB_NAME'} ) {
+ $msg =
+ q(Please do not use the same database for testing as you do for production. You run the severe risk of data loss.);
+ $config{'TEST_DB_NAME'} =
+ _get_value( 'TEST_DB_NAME', $msg, $defaults->{'TEST_DB_NAME'}, $valid_values, $install_log_values );
+ }
- $msg = q(
+ $msg = q(
Please specify the user that owns the database to be
used by Koha);
- $config{'TEST_DB_USER'} = _get_value('TEST_DB_USER', $msg, $defaults->{'TEST_DB_USER'}, $valid_values, $install_log_values);
+ $config{'TEST_DB_USER'} =
+ _get_value( 'TEST_DB_USER', $msg, $defaults->{'TEST_DB_USER'}, $valid_values, $install_log_values );
- $msg = q(
+ $msg = q(
Please specify the password of the user that owns the
database to be used by Koha);
- $config{'TEST_DB_PASS'} = _get_value('TEST_DB_PASS', $msg, $defaults->{'TEST_DB_PASS'}, $valid_values, $install_log_values);
- }
+ $config{'TEST_DB_PASS'} =
+ _get_value( 'TEST_DB_PASS', $msg, $defaults->{'TEST_DB_PASS'}, $valid_values, $install_log_values );
+ }
print "\n\n";
@@ -1379,44 +1450,45 @@ database to be used by Koha);
}
sub _add_valid_values_disp {
- my $key = shift;
+ my $key = shift;
my $valid_values = shift;
my $disp = "";
- if (exists $valid_values->{$key}) {
- $disp = " (" . join(", ", sort keys %{ $valid_values->{$key} }) . ")";
+ if ( exists $valid_values->{$key} ) {
+ $disp = " (" . join( ", ", sort keys %{ $valid_values->{$key} } ) . ")";
}
return $disp;
}
sub _get_value {
- my $key = shift;
- my $msg = shift;
- my $default = shift;
- my $valid_values = shift;
+ my $key = shift;
+ my $msg = shift;
+ my $default = shift;
+ my $valid_values = shift;
my $install_log_values = shift;
# take value from install log if present
- if (exists $install_log_values{$key}) {
+ if ( exists $install_log_values{$key} ) {
$install_log_values{$key} =~ s/\$/\$\$/g;
return $install_log_values{$key};
}
# override default value from environment
- if (exists $ENV{$key}) {
+ if ( exists $ENV{$key} ) {
$default = $ENV{$key};
$msg .= " (default from environment)";
}
- my $val = prompt($msg, $default);
+ my $val = prompt( $msg, $default );
- while (exists $valid_values->{$key} and
- $val ne $default and
- not exists $valid_values->{$key}->{$val}) {
+ while ( exists $valid_values->{$key}
+ and $val ne $default
+ and not exists $valid_values->{$key}->{$val} )
+ {
my $retry_msg = "Value '$val' is not a valid option.\n";
$retry_msg .= "Please enter a value";
- $retry_msg .= _add_valid_values_disp($key, $valid_values);
- $val = prompt($retry_msg, $default);
+ $retry_msg .= _add_valid_values_disp( $key, $valid_values );
+ $val = prompt( $retry_msg, $default );
}
$val =~ s/\$/\$\$/g;
return $val;
@@ -1441,112 +1513,117 @@ sub get_target_directories {
# get last component of install base directory
# to treat as package name
- my ($volume, $directories, $file) = File::Spec->splitpath($base, 1);
+ my ( $volume, $directories, $file ) = File::Spec->splitpath( $base, 1 );
my @basedir = File::Spec->splitdir($directories);
- if ( $^O eq 'cygwin' ) { shift @basedir; unshift @basedir, 'c:'; } # in a cygwin environment, $volume is returned empty
+ if ( $^O eq 'cygwin' ) {
+ shift @basedir;
+ unshift @basedir, 'c:';
+ } # in a cygwin environment, $volume is returned empty
my $package = pop @basedir;
-
- my %dirmap = ();
+ my %dirmap = ();
my %skipdirs = ();
- if ($mode eq 'single') {
- $dirmap{'API_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'api');
- $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
- $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl');
- $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs');
- $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'cgi-bin');
- $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{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
- $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
- $dirmap{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
- $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');
- $dirmap{'ZEBRA_DATA_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
- $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
- } elsif ($mode eq 'dev') {
- my $curdir = File::Spec->rel2abs(File::Spec->curdir());
- $dirmap{'API_CGI_DIR'} = File::Spec->catdir($curdir, 'api');
- $skipdirs{'API_CGI_DIR'} = 1;
- $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
- $skipdirs{'INTRANET_CGI_DIR'} = 1;
- $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl', 'intranet-tmpl');
+ if ( $mode eq 'single' ) {
+ $dirmap{'API_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'api' );
+ $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'cgi-bin' );
+ $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl' );
+ $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'htdocs' );
+ $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'opac', 'cgi-bin' );
+ $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{'MISC_DIR'} = File::Spec->catdir( @basedir, $package, 'misc' );
+ $dirmap{'SCRIPT_DIR'} = File::Spec->catdir( @basedir, $package, 'bin' );
+ $dirmap{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
+ $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' );
+ $dirmap{'ZEBRA_DATA_DIR'} = File::Spec->catdir( @basedir, $package, 'var', 'lib', 'zebradb' );
+ $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir( @basedir, $package, 'var', 'run', 'zebradb' );
+ } elsif ( $mode eq 'dev' ) {
+ my $curdir = File::Spec->rel2abs( File::Spec->curdir() );
+ $dirmap{'API_CGI_DIR'} = File::Spec->catdir( $curdir, 'api' );
+ $skipdirs{'API_CGI_DIR'} = 1;
+ $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
+ $skipdirs{'INTRANET_CGI_DIR'} = 1;
+ $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir( $curdir, 'koha-tmpl', 'intranet-tmpl' );
$skipdirs{'INTRANET_TMPL_DIR'} = 1;
- $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
- $skipdirs{'INTRANET_WWW_DIR'} = 1;
- $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir($curdir);
- $skipdirs{'OPAC_CGI_DIR'} = 1;
- $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl', 'opac-tmpl');
- $skipdirs{'OPAC_TMPL_DIR'} = 1;
- $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
- $skipdirs{'OPAC_WWW_DIR'} = 1;
+ $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir( $curdir, 'koha-tmpl' );
+ $skipdirs{'INTRANET_WWW_DIR'} = 1;
+ $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir($curdir);
+ $skipdirs{'OPAC_CGI_DIR'} = 1;
+ $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir( $curdir, 'koha-tmpl', 'opac-tmpl' );
+ $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');
+ $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{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
- $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
+ $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{'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)
#Used by supportdir in koha-conf.xml (BZ 12031)
- $dirmap{'SCRIPT_NONDEV_DIR'} = File::Spec->catdir($curdir, 'misc');
+ $dirmap{'SCRIPT_NONDEV_DIR'} = File::Spec->catdir( $curdir, 'misc' );
$skipdirs{'SCRIPT_NONDEV_DIR'} = 1;
- $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{'ZEBRA_DATA_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
- $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
+ $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{'ZEBRA_DATA_DIR'} = File::Spec->catdir( @basedir, $package, 'var', 'lib', 'zebradb' );
+ $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir( @basedir, $package, 'var', 'run', 'zebradb' );
} else {
+
# mode is standard, i.e., 'fhs'
- $dirmap{'API_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'api');
- $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
- $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl');
- $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs');
- $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'cgi-bin');
- $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{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
- $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
- $dirmap{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
- $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');
- $dirmap{'ZEBRA_DATA_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'lib', $package, 'zebradb');
- $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'run', $package, 'zebradb');
+ $dirmap{'API_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'api' );
+ $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'cgi-bin' );
+ $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl' );
+ $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir( @basedir, $package, 'intranet', 'htdocs' );
+ $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir( @basedir, $package, 'opac', 'cgi-bin' );
+ $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{'MISC_DIR'} = File::Spec->catdir( @basedir, $package, 'misc' );
+ $dirmap{'SCRIPT_DIR'} = File::Spec->catdir( @basedir, $package, 'bin' );
+ $dirmap{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
+ $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' );
+ $dirmap{'ZEBRA_DATA_DIR'} = File::Spec->catdir( File::Spec->rootdir(), 'var', 'lib', $package, 'zebradb' );
+ $dirmap{'ZEBRA_RUN_DIR'} = File::Spec->catdir( File::Spec->rootdir(), 'var', 'run', $package, 'zebradb' );
}
- _get_env_overrides(\%dirmap);
- _get_argv_overrides(\%dirmap);
- _add_destdir(\%dirmap);
+ _get_env_overrides( \%dirmap );
+ _get_argv_overrides( \%dirmap );
+ _add_destdir( \%dirmap );
return \%dirmap, \%skipdirs;
}
@@ -1561,9 +1638,9 @@ the test suite.
sub get_test_dir {
my ($dirname) = @_;
- my @basedir = (File::Spec->rel2abs(File::Spec->curdir()), 't', 'run');
- if (exists $test_suite_override_dirs{$dirname}) {
- return File::Spec->catdir(@basedir, @{ $test_suite_override_dirs{$dirname} });
+ my @basedir = ( File::Spec->rel2abs( File::Spec->curdir() ), 't', 'run' );
+ if ( exists $test_suite_override_dirs{$dirname} ) {
+ return File::Spec->catdir( @basedir, @{ $test_suite_override_dirs{$dirname} } );
} else {
return;
}
@@ -1573,8 +1650,8 @@ sub get_test_dir {
sub _get_env_overrides {
my $dirmap = shift;
- foreach my $key (keys %$dirmap) {
- if (exists $ENV{$key}) {
+ foreach my $key ( keys %$dirmap ) {
+ if ( exists $ENV{$key} ) {
$dirmap->{$key} = $ENV{$key};
print "Setting $key from environment\n";
}
@@ -1585,8 +1662,8 @@ sub _get_argv_overrides {
my $dirmap = shift;
my @new_argv = ();
- for (my $i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] =~ /^([^=]+)=([^=]+)$/ and exists $dirmap->{$1}) {
+ for ( my $i = 0 ; $i <= $#ARGV ; $i++ ) {
+ if ( $ARGV[$i] =~ /^([^=]+)=([^=]+)$/ and exists $dirmap->{$1} ) {
$dirmap->{$1} = $2;
} else {
push @new_argv, $ARGV[$i];
@@ -1604,24 +1681,24 @@ sub _strip_destdir {
sub _add_destdir {
my $dirmap = shift;
- foreach my $key (keys %$dirmap) {
- $dirmap->{$key} = '$(DESTDIR)'.$dirmap->{$key};
+ foreach my $key ( keys %$dirmap ) {
+ $dirmap->{$key} = '$(DESTDIR)' . $dirmap->{$key};
}
}
sub display_configuration {
- my $config = shift;
- my $dirmap = shift;
+ my $config = shift;
+ my $dirmap = shift;
my @version = grep /\/usr\/share\/perl\//, @INC;
push @version, ('/usr/share/perl/5.10') if !$version[0];
print "\n\nKoha will be installed with the following configuration parameters:\n\n";
- foreach my $key (sort keys %$config) {
- print sprintf("%-25.25s%s\n", $key, $config->{$key});
+ foreach my $key ( sort keys %$config ) {
+ print sprintf( "%-25.25s%s\n", $key, $config->{$key} );
}
print "\nand in the following directories:\n\n";
- foreach my $key (sort keys %$dirmap) {
- print sprintf("%-25.25s%s\n", $key, $dirmap->{$key});
+ foreach my $key ( sort keys %$dirmap ) {
+ print sprintf( "%-25.25s%s\n", $key, $dirmap->{$key} );
}
print "\n\nTo change any configuration setting, please run\n";
print "perl Makefile.PL again. To override one of the target\n";
@@ -1645,17 +1722,18 @@ a few other directories for zebrasrv and zebraidx.
sub find_zebra {
my @search_dirs = map {
- my $abs = File::Spec->rel2abs($_);
- my ($toss, $directories);
- ($toss, $directories, $toss) = File::Spec->splitpath($abs, 1);
- $directories;
- } split /:/, $ENV{PATH};
+ my $abs = File::Spec->rel2abs($_);
+ my ( $toss, $directories );
+ ( $toss, $directories, $toss ) = File::Spec->splitpath( $abs, 1 );
+ $directories;
+ } split /:/, $ENV{PATH};
push @search_dirs, qw(/usr/local/bin /opt/local/bin /usr/bin);
- my @zebrasrv_dirs = grep { -x File::Spec->catpath('', $_, 'zebrasrv') } @search_dirs;
+ my @zebrasrv_dirs = grep { -x File::Spec->catpath( '', $_, 'zebrasrv' ) } @search_dirs;
return unless @zebrasrv_dirs;
+
# verify that directory that contains zebrasrv also contains zebraidx
foreach my $dir (@zebrasrv_dirs) {
- return $dir if -x File::Spec->catpath('', $dir, 'zebraidx');
+ return $dir if -x File::Spec->catpath( '', $dir, 'zebraidx' );
}
return;
}
@@ -1673,59 +1751,64 @@ sub test {
}
sub install {
- my $self = shift;
+ my $self = shift;
my $install = "";
+
# NOTE: we're *not* doing this: my $install = $self->SUPER::install(@_);
# 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 });
+ 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 .= qq(
+ # 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 .= qq(
KOHA_INST_$key = blib/$key
KOHA_DEST_$key = $target_directories->{$key}
) unless exists $skip_directories->{$key};
- }
- $install .= qq(
+ }
+ $install .= qq(
install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_env_vars
\t\$(NOECHO) \$(NOOP)
);
- $install .= "install_koha ::\n";
- $install .= "\t\$(NOECHO) umask 022; \$(MOD_INSTALL) \\\n";
- foreach my $key (sort keys %$target_directories) {
- $install .= "\t\t\$(KOHA_INST_$key) \$(KOHA_DEST_$key) \\\n"
- unless exists $skip_directories->{$key};
- }
- $install .= "\t\t\$(INST_MAN1DIR) \$(DESTINSTALLMAN1DIR) \\\n";
- $install .= "\t\t\$(INST_MAN3DIR) \$(DESTINSTALLMAN3DIR)\n";
+ $install .= "install_koha ::\n";
+ $install .= "\t\$(NOECHO) umask 022; \$(MOD_INSTALL) \\\n";
+ foreach my $key ( sort keys %$target_directories ) {
+ $install .= "\t\t\$(KOHA_INST_$key) \$(KOHA_DEST_$key) \\\n"
+ unless exists $skip_directories->{$key};
+ }
+ $install .= "\t\t\$(INST_MAN1DIR) \$(DESTINSTALLMAN1DIR) \\\n";
+ $install .= "\t\t\$(INST_MAN3DIR) \$(DESTINSTALLMAN3DIR)\n";
- $install .= "\n";
- $install .= "set_koha_ownership ::\n";
-# Do not try to change ownership if DESTDIR is set
- if ($config{'INSTALL_MODE'} eq 'standard' and $config{'KOHA_USER'} ne "root") {
- foreach my $key (sort keys %$target_directories) {
- $install .= "\t\$(NOECHO) if test -z \"\$(DESTDIR)\"; then chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key); fi\n"
- unless exists $skip_directories->{$key};
- }
- } else {
- $install .= "\t\t\$(NOECHO) \$(NOOP)\n\n";
- }
+ $install .= "\n";
+ $install .= "set_koha_ownership ::\n";
- $install .= "\n";
- $install .= "set_koha_permissions ::\n";
- # This is necessary because EU::MM installs files
- # as either 0444 or 0555, and we want the owner
- # of Koha's files to have write permission by default.
- foreach my $key (sort keys %$target_directories) {
- $install .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_$key)\n"
- unless exists $skip_directories->{$key};
- }
- }
+ # Do not try to change ownership if DESTDIR is set
+ if ( $config{'INSTALL_MODE'} eq 'standard' and $config{'KOHA_USER'} ne "root" ) {
+ foreach my $key ( sort keys %$target_directories ) {
+ $install .=
+ "\t\$(NOECHO) if test -z \"\$(DESTDIR)\"; then chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key); fi\n"
+ unless exists $skip_directories->{$key};
+ }
+ } else {
+ $install .= "\t\t\$(NOECHO) \$(NOOP)\n\n";
+ }
- $install .= "\n";
+ $install .= "\n";
+ $install .= "set_koha_permissions ::\n";
+
+ # This is necessary because EU::MM installs files
+ # as either 0444 or 0555, and we want the owner
+ # of Koha's files to have write permission by default.
+ foreach my $key ( sort keys %$target_directories ) {
+ $install .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_$key)\n"
+ unless exists $skip_directories->{$key};
+ }
+ }
+
+ $install .= "\n";
$install .= "warn_koha_env_vars ::\n";
$install .= "\t\$(NOECHO) \$(ECHO)\n";
@@ -1769,7 +1852,7 @@ sub upgrade {
my $upgrade = "";
my $backup_suffix;
- if (exists $install_log_values{'KOHA_INSTALLED_VERSION'}) {
+ if ( exists $install_log_values{'KOHA_INSTALLED_VERSION'} ) {
my $version = $install_log_values{'KOHA_INSTALLED_VERSION'};
$version =~ s/\./_/g;
$backup_suffix = "_koha_$version";
@@ -1785,17 +1868,22 @@ upgrade :: make_upgrade_backup install
make_upgrade_backup ::
\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
- 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};
+ foreach my $key (
+ qw/KOHA_CONF_DIR INTRANET_TMPL_DIR INTRANET_WWW_DIR OPAC_TMPL_DIR OPAC_WWW_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};
}
$upgrade =~ s/\\\n$/\n/;
return $upgrade;
}
+
sub postamble {
+
# put directory mappings into Makefile
# so that Make will export as environment
# variables -- this is for the use of
@@ -1804,17 +1892,17 @@ sub postamble {
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"
+ 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 .= "\n\n";
- $env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);
- }
+ # Hereagain, we must alter syntax per platform...
+ {
+ $env .= join( "\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories );
+ $env .= "\n\n";
+ $env .= join( "\n", map { "export __${_}__ := $config{$_}" } keys %config );
+ }
return "$env\n";
}
@@ -1836,17 +1924,17 @@ sub _build_perl5lib_string {
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){
+ 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);
+ if (@paths) {
+ $perl5lib_str = join( ':', @paths );
}
}
return $perl5lib_str;
diff --git a/fix-perl-path.PL b/fix-perl-path.PL
index f9db358e5a..9a04a68987 100644
--- a/fix-perl-path.PL
+++ b/fix-perl-path.PL
@@ -20,15 +20,15 @@ use ExtUtils::MakeMaker::Config;
use Tie::File;
my $basedir = (shift);
-my $DEBUG = 0;
+my $DEBUG = 0;
$DEBUG = 1 if $basedir eq 'test';
my $bindir = $Config{installbin};
-$bindir =~ s!\\!/!g; # make all directory separators uniform since Win32 does not care and *nix does...
+$bindir =~ s!\\!/!g; # make all directory separators uniform since Win32 does not care and *nix does...
my $shebang = "#!$bindir\/perl";
-warn "Perl binary located in $bindir on this system.\n" if $DEBUG;
+warn "Perl binary located in $bindir on this system.\n" if $DEBUG;
warn "The shebang line for this sytems should be $shebang\n\n" if $DEBUG;
die if $basedir eq 'test';
@@ -59,25 +59,26 @@ in a manner similar to 'fixshebang (foodir)' but may be supplied with any direct
=cut
-sub fixshebang{
- my $dir = shift;
+sub fixshebang {
+ my $dir = shift;
opendir my $dh, $dir or die $!;
- warn "Reading $dir contents.\n" if $DEBUG;
- while( my $file = readdir($dh) ) {
- # this may be used to exclude any desired files from the scan
+ warn "Reading $dir contents.\n" if $DEBUG;
+ while ( my $file = readdir($dh) ) {
+
+ # this may be used to exclude any desired files from the scan
# if ( $file =~ /foo/ ) { next; }
- # handle files... other extensions could be substituted/added if needed
- if ( $file =~ /\.pl$/ ) {
+ # handle files... other extensions could be substituted/added if needed
+ if ( $file =~ /\.pl$/ ) {
my @filearray;
- my $pathfile =$dir . '/' . $file;
- warn "Found a perl script named $pathfile\n" if $DEBUG;
+ my $pathfile = $dir . '/' . $file;
+ warn "Found a perl script named $pathfile\n" if $DEBUG;
# At this point, file is in 'blib' and by default
# has mode a-w. Therefore, must change permission
# to make it writable. Note that stat and chmod
# (the Perl functions) should work on Win32
my $old_perm;
- $old_perm = (stat $pathfile)[2] & oct(7777);
+ $old_perm = ( stat $pathfile )[2] & oct(7777);
my $new_perm = $old_perm | oct(200);
chmod $new_perm, $pathfile;
@@ -88,30 +89,29 @@ sub fixshebang{
tie @filearray, 'Tie::File', $pathfile, recsep => "\x0a" or die $!;
warn "First line of $file is $filearray[0]\n\n" if $DEBUG;
- if ( ( $filearray[0] =~ /#!.*perl/ ) && ( $filearray[0] !~ /$shebang|"$shebang -w"/ ) ) {
- warn "\n\tRe-writing shebang line for $pathfile\n" if $DEBUG;
- warn "\tOriginal shebang line: $filearray[0]\n" if $DEBUG;
+ if ( ( $filearray[0] =~ /#!.*perl/ ) && ( $filearray[0] !~ /$shebang|"$shebang -w"/ ) ) {
+ warn "\n\tRe-writing shebang line for $pathfile\n" if $DEBUG;
+ warn "\tOriginal shebang line: $filearray[0]\n" if $DEBUG;
$filearray[0] =~ /-w$/ ? $filearray[0] = "$shebang -w" : $filearray[0] = $shebang;
warn "\tNew shebang line is: $filearray[0]\n\n" if $DEBUG;
- }
- elsif ( $filearray[0] =~ /$shebang|"$shebang -w"/ ) {
+ } elsif ( $filearray[0] =~ /$shebang|"$shebang -w"/ ) {
warn "\n\tShebang line is correct.\n\n" if $DEBUG;
- }
- else {
+ } else {
warn "\n\tNo shebang line found in $pathfile\n\n" if $DEBUG;
- }
+ }
untie @filearray;
chmod $old_perm, $pathfile;
- }
- # handle directories
- elsif ( -d ($dir . '/' . $file) && $file !~ /^\.{1,2}/ ) {
- my $dirpath = $dir . '/' . $file;
- warn "Found a subdir named $dirpath\n" if $DEBUG;
- fixshebang ($dirpath);
- }
- }
- closedir $dh;
+ }
+
+ # handle directories
+ elsif ( -d ( $dir . '/' . $file ) && $file !~ /^\.{1,2}/ ) {
+ my $dirpath = $dir . '/' . $file;
+ warn "Found a subdir named $dirpath\n" if $DEBUG;
+ fixshebang($dirpath);
+ }
+ }
+ closedir $dh;
}
-fixshebang ($basedir);
+fixshebang($basedir);
diff --git a/rewrite-config.PL b/rewrite-config.PL
index b0ecb8f80d..7bf7ca90d9 100644
--- a/rewrite-config.PL
+++ b/rewrite-config.PL
@@ -16,7 +16,7 @@
# along with Koha; if not, see .
#
# Current maintainer MJR http://mjr.towers.org.uk/
-#
+#
# 2007/11/12 Added DB_PORT and changed other keywords to reflect multi-dbms support. -fbcit
use Modern::Perl;
@@ -71,107 +71,107 @@ if ( $myhost = $ENV{WEBSERVER_HOST} || hostname ) {
my $myip;
unless ( $myip = $ENV{WEBSERVER_IP} ) {
- my $byname = gethostbyname( $myhost )
- or die "Could not get the IP address of $myhost, DNS fault? ($!)";
+ my $byname = gethostbyname($myhost)
+ or die "Could not get the IP address of $myhost, DNS fault? ($!)";
$myip = inet_ntoa $byname
- or die "can't inet_ntoa ($!)";
+ or die "can't inet_ntoa ($!)";
}
-
my $prefix = $ENV{'INSTALL_BASE'} || "/usr";
# These are our configuration guesses
# Keys were extracted by
# "",/'
my %configuration = (
- "__KOHA_INSTALLED_VERSION__" => "no_version_found",
- "__LOG_DIR__" => "/var/log",
- "__PLUGINS_DIR__" => "/var/lib/koha/plugins",
- "__DB_TYPE__" => "mysql",
- "__DB_NAME__" => "koha",
- "__DB_HOST__" => $myhost,
- "__DB_PORT__" => "3306",
- "__DB_USER__" => "kohaadmin",
- "__DB_PASS__" => "katikoan",
- "__DB_USE_TLS__" => "no",
- "__DB_TLS_CA_CERTIFICATE__" => "",
- "__DB_TLS_CLIENT_CERTIFICATE__" => "",
- "__DB_TLS_CLIENT_KEY__"=>"",
- "__WEBMASTER_EMAIL__" => 'webmaster@'.$mydomain,
- "__WEBSERVER_DOMAIN__" => $mydomain,
- "__WEBSERVER_HOST__" => $myhost,
- "__WEBSERVER_IP__" => $myip,
- "__WEBSERVER_PORT__" => "80",
- "__WEBSERVER_PORT_LIBRARIAN__" => "8080",
- "__ZEBRA_SRU_HOST__" => $myhost,
- "__ZEBRA_SRU_BIBLIOS_PORT__" => "9998",
- "__ZEBRA_SRU_AUTHORITIES_PORT__" => "9999",
- "__KOHA_USER__" => "koha",
- "__KOHA_GROUP__" => "koha",
- "__ZEBRA_PASS__" => "zebrastripes",
- "__ZEBRA_USER__" => "kohauser",
- '__BACKUP_DIR__' => "$prefix/var/spool",
- '__API_CGI_DIR__' => "$prefix/api",
- '__INTRANET_CGI_DIR__' => "$prefix/intranet/cgi-bin",
- '__INTRANET_TMPL_DIR__' => "$prefix/intranet/templates",
- '__INTRANET_WWW_DIR__' => "$prefix/intranet/www",
- '__OPAC_CGI_DIR__' => "$prefix/opac/cgi-bin",
- '__OPAC_TMPL_DIR__' => "$prefix/opac/templates",
- '__OPAC_WWW_DIR__' => "$prefix/opac/www",
- '__PERL_MODULE_DIR__' => ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/lib/perl5/site_perl/%vd",$^V))."/koha",
- '__KOHA_CONF_DIR__' => "$prefix/etc/koha",
- '__ZEBRA_CONF_DIR__' => "$prefix/etc/koha/zebradb",
- '__MISC_DIR__' => "$prefix/misc",
- '__SCRIPT_DIR__' => "$prefix/bin",
- '__SCRIPT_NONDEV_DIR__' => "$prefix/bin",
- '__MAN_DIR__' => "$prefix/man",
- '__DOC_DIR__' => "$prefix/doc",
- '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
- '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
- '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
- '__ZEBRA_MARC_FORMAT__' => 'marc21',
- '__ZEBRA_LANGUAGE__' => 'en',
- '__ZEBRA_TOKENIZER__' => 'chr',
- '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
- '__ZEBRA_PTOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
- '__AUTH_RETRIEVAL_CFG__' => 'retrieval-info-auth-dom.xml',
- '__BIB_RETRIEVAL_CFG__' => 'retrieval-info-bib-dom.xml',
- '__ZEBRA_AUTH_CFG__' => 'zebra-authorities-dom.cfg',
- '__ZEBRA_BIB_CFG__' => 'zebra-biblios-dom.cfg',
- "__MERGE_SERVER_HOST__" => $myhost,
- "__INSTALL_MODE__" => 'standard',
- "__INSTALL_BASE__" => '/usr/share/koha',
- "__INSTALL_SRU__" => 'yes',
- "__RUN_DATABASE_TESTS__" => 'no',
- "__PATH_TO_ZEBRA__" => "",
- "__USE_MEMCACHED__" => 'yes',
- "__MEMCACHED_SERVERS__" => "",
- "__MEMCACHED_NAMESPACE__" => "",
- "__USE_ELASTICSEARCH__" => 'no',
- "__ELASTICSEARCH_SERVERS__" => "localhost:9200",
- "__ELASTICSEARCH_INDEX__" => "koha",
- "__FONT_DIR__" => "/usr/share/fonts/truetype/dejavu",
- "__TEMPLATE_CACHE_DIR__" => "/tmp/koha",
- '__SMTP_HOST__' => 'localhost',
- '__SMTP_PORT__' => '25',
- '__SMTP_TIMEOUT__' => '120',
- '__SMTP_SSL_MODE__' => 'disabled',
- '__SMTP_USER_NAME__' => '',
- '__SMTP_PASSWORD__' => '',
- '__SMTP_DEBUG__' => '0',
- '__PERL_MODULE_LIB_DIR__' => "$prefix/lib",
- '__PERL5LIB_DIRS__' => "$prefix/lib",
+ "__KOHA_INSTALLED_VERSION__" => "no_version_found",
+ "__LOG_DIR__" => "/var/log",
+ "__PLUGINS_DIR__" => "/var/lib/koha/plugins",
+ "__DB_TYPE__" => "mysql",
+ "__DB_NAME__" => "koha",
+ "__DB_HOST__" => $myhost,
+ "__DB_PORT__" => "3306",
+ "__DB_USER__" => "kohaadmin",
+ "__DB_PASS__" => "katikoan",
+ "__DB_USE_TLS__" => "no",
+ "__DB_TLS_CA_CERTIFICATE__" => "",
+ "__DB_TLS_CLIENT_CERTIFICATE__" => "",
+ "__DB_TLS_CLIENT_KEY__" => "",
+ "__WEBMASTER_EMAIL__" => 'webmaster@' . $mydomain,
+ "__WEBSERVER_DOMAIN__" => $mydomain,
+ "__WEBSERVER_HOST__" => $myhost,
+ "__WEBSERVER_IP__" => $myip,
+ "__WEBSERVER_PORT__" => "80",
+ "__WEBSERVER_PORT_LIBRARIAN__" => "8080",
+ "__ZEBRA_SRU_HOST__" => $myhost,
+ "__ZEBRA_SRU_BIBLIOS_PORT__" => "9998",
+ "__ZEBRA_SRU_AUTHORITIES_PORT__" => "9999",
+ "__KOHA_USER__" => "koha",
+ "__KOHA_GROUP__" => "koha",
+ "__ZEBRA_PASS__" => "zebrastripes",
+ "__ZEBRA_USER__" => "kohauser",
+ '__BACKUP_DIR__' => "$prefix/var/spool",
+ '__API_CGI_DIR__' => "$prefix/api",
+ '__INTRANET_CGI_DIR__' => "$prefix/intranet/cgi-bin",
+ '__INTRANET_TMPL_DIR__' => "$prefix/intranet/templates",
+ '__INTRANET_WWW_DIR__' => "$prefix/intranet/www",
+ '__OPAC_CGI_DIR__' => "$prefix/opac/cgi-bin",
+ '__OPAC_TMPL_DIR__' => "$prefix/opac/templates",
+ '__OPAC_WWW_DIR__' => "$prefix/opac/www",
+ '__PERL_MODULE_DIR__' => ( $ENV{'INSTALLSITELIB'} || sprintf( $prefix . "/lib/perl5/site_perl/%vd", $^V ) )
+ . "/koha",
+ '__KOHA_CONF_DIR__' => "$prefix/etc/koha",
+ '__ZEBRA_CONF_DIR__' => "$prefix/etc/koha/zebradb",
+ '__MISC_DIR__' => "$prefix/misc",
+ '__SCRIPT_DIR__' => "$prefix/bin",
+ '__SCRIPT_NONDEV_DIR__' => "$prefix/bin",
+ '__MAN_DIR__' => "$prefix/man",
+ '__DOC_DIR__' => "$prefix/doc",
+ '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
+ '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
+ '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
+ '__ZEBRA_MARC_FORMAT__' => 'marc21',
+ '__ZEBRA_LANGUAGE__' => 'en',
+ '__ZEBRA_TOKENIZER__' => 'chr',
+ '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
+ '__ZEBRA_PTOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
+ '__AUTH_RETRIEVAL_CFG__' => 'retrieval-info-auth-dom.xml',
+ '__BIB_RETRIEVAL_CFG__' => 'retrieval-info-bib-dom.xml',
+ '__ZEBRA_AUTH_CFG__' => 'zebra-authorities-dom.cfg',
+ '__ZEBRA_BIB_CFG__' => 'zebra-biblios-dom.cfg',
+ "__MERGE_SERVER_HOST__" => $myhost,
+ "__INSTALL_MODE__" => 'standard',
+ "__INSTALL_BASE__" => '/usr/share/koha',
+ "__INSTALL_SRU__" => 'yes',
+ "__RUN_DATABASE_TESTS__" => 'no',
+ "__PATH_TO_ZEBRA__" => "",
+ "__USE_MEMCACHED__" => 'yes',
+ "__MEMCACHED_SERVERS__" => "",
+ "__MEMCACHED_NAMESPACE__" => "",
+ "__USE_ELASTICSEARCH__" => 'no',
+ "__ELASTICSEARCH_SERVERS__" => "localhost:9200",
+ "__ELASTICSEARCH_INDEX__" => "koha",
+ "__FONT_DIR__" => "/usr/share/fonts/truetype/dejavu",
+ "__TEMPLATE_CACHE_DIR__" => "/tmp/koha",
+ '__SMTP_HOST__' => 'localhost',
+ '__SMTP_PORT__' => '25',
+ '__SMTP_TIMEOUT__' => '120',
+ '__SMTP_SSL_MODE__' => 'disabled',
+ '__SMTP_USER_NAME__' => '',
+ '__SMTP_PASSWORD__' => '',
+ '__SMTP_DEBUG__' => '0',
+ '__PERL_MODULE_LIB_DIR__' => "$prefix/lib",
+ '__PERL5LIB_DIRS__' => "$prefix/lib",
);
# Override configuration from the environment
-foreach my $key (keys %configuration) {
- if (defined($ENV{$key})) {
- $configuration{$key} = $ENV{$key};
- }
+foreach my $key ( keys %configuration ) {
+ if ( defined( $ENV{$key} ) ) {
+ $configuration{$key} = $ENV{$key};
+ }
}
my $fname = $ARGV[0];
-my $file = &read_file($fname);
+my $file = &read_file($fname);
$file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
# At this point, file is in 'blib' and by default
@@ -179,11 +179,11 @@ $file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
# to make it writable. Note that stat and chmod
# (the Perl functions) should work on Win32
my $old_perm;
-$old_perm = (stat $fname)[2] & oct(7777);
+$old_perm = ( stat $fname )[2] & oct(7777);
my $new_perm = $old_perm | oct(200);
chmod $new_perm, $fname;
-open(my $output, ">", $fname) || die "Can't open $fname for write: $!";
+open( my $output, ">", $fname ) || die "Can't open $fname for write: $!";
print $output $file;
close($output);
@@ -191,11 +191,11 @@ chmod $old_perm, $fname;
# Idea taken from perlfaq5
sub read_file {
- local $/;
- open(my $fh , '<', $_[0]) || die "Can't open $_[0] for read";
- my $file = <$fh>;
- close $fh;
- return $file;
+ local $/;
+ open( my $fh, '<', $_[0] ) || die "Can't open $_[0] for read";
+ my $file = <$fh>;
+ close $fh;
+ return $file;
}
__END__