X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=Makefile.PL;h=af6ea2dfb117136c4b391c65a35b9fd8df3a241b;hb=9374c646e164db5f48f88e3a8fcb904a79922013;hp=8b896338f48aafec38b7ec17459afc10546648f3;hpb=88e7faf8600b64884649f8c02104bf848df37a9b;p=koha.git diff --git a/Makefile.PL b/Makefile.PL index 8b896338f4..af6ea2dfb1 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,19 +1,20 @@ # Copyright 2007 MJ Ray +# Copyright 2016 PTFS Europe # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . # # Current maintainer MJR http://mjr.towers.org.uk/ # @@ -23,7 +24,7 @@ use warnings; use ExtUtils::MakeMaker; use POSIX; use File::Spec; -use Getopt::Long; +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 lib $FindBin::Bin; @@ -72,6 +73,36 @@ Makefile.PL - Koha packager and installer make clean +=head2 CLI PARAMETERS + + --prev-install-log Read configuration from previous installation + --install_mode Installation mode (dev, standard, single) + --db_type Database (mysql, Pg) + --db_host Database host (e.g. localhost) + --db_port Database port (e.g. 3306) + --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_language Zebra language (e.g. en) + --zebra_tokenizer Zebra tokenizer (chr, icu) + --zebra_user Zebra user (e.g. kohauser) + --zebra_pass Zebra password (e.g. zebrastripes) + --zebra_sru_host Zebra SRU servername (e.g. localhost) + --zebra_sru_biblios_port Zebra SRU biblios port (e.g. 9998) + --zebra_sru_authorities_port Zebra SRU biblios port (e.g. 9999) + --auth_index_mode Authority index mode (grs1, dom) + --bib_index_mode Bibliographic index mode (grs1, dom) + --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/ttf-dejavu) + --run_database_tests Run database dependent tests (yes, no) + --install_base Base directory of installation (e.g. /usr/share/koha) + --help Display this help message + =head1 DESCRIPTION This is a packager and installer that uses @@ -240,6 +271,10 @@ Directory for external Koha plugins. Directory for PazPar2 configuration files. +=item FONT_DIR + +Directory where DejaVu fonts are installed. + =item NONE This is a dummy target used to explicitly state @@ -256,6 +291,7 @@ my $target_map = { './about.pl' => 'INTRANET_CGI_DIR', './acqui' => 'INTRANET_CGI_DIR', './admin' => 'INTRANET_CGI_DIR', + './api' => { target => 'API_CGI_DIR', trimdir => -1 }, './authorities' => 'INTRANET_CGI_DIR', './basket' => 'INTRANET_CGI_DIR', './C4' => 'PERL_MODULE_DIR', @@ -267,9 +303,10 @@ my $target_map = { './changelanguage.pl' => 'INTRANET_CGI_DIR', './check_sysprefs.pl' => 'NONE', './circ' => 'INTRANET_CGI_DIR', + './clubs' => 'INTRANET_CGI_DIR', './course_reserves' => 'INTRANET_CGI_DIR', './docs/history.txt' => { target => 'DOC_DIR', trimdir => -1 }, - './offline_circ' => 'INTRANET_CGI_DIR', + './offline_circ' => 'INTRANET_CGI_DIR', './edithelp.pl' => 'INTRANET_CGI_DIR', './etc' => { target => 'KOHA_CONF_DIR', trimdir => -1 }, './etc/zebradb' => { target => 'ZEBRA_CONF_DIR', trimdir => -1 }, @@ -279,9 +316,10 @@ my $target_map = { './installer' => 'INTRANET_CGI_DIR', './errors' => {target => 'INTRANET_CGI_DIR'}, './Koha' => 'PERL_MODULE_DIR', + './Koha.pm' => 'PERL_MODULE_DIR', './koha-tmpl/intranet-tmpl' => {target => 'INTRANET_TMPL_DIR', trimdir => -1}, './koha-tmpl/opac-tmpl' => {target => 'OPAC_TMPL_DIR', trimdir => -1}, - './kohaversion.pl' => 'INTRANET_CGI_DIR', + './kohaversion.pl' => 'INTRANET_CGI_DIR', './labels' => 'INTRANET_CGI_DIR', './mainpage.pl' => 'INTRANET_CGI_DIR', './Makefile.PL' => 'NONE', @@ -304,6 +342,7 @@ my $target_map = { './reviews' => 'INTRANET_CGI_DIR', './rewrite-config.PL' => 'NONE', './reviews' => 'INTRANET_CGI_DIR', + './rotating_collections' => 'INTRANET_CGI_DIR', './serials' => 'INTRANET_CGI_DIR', './services' => 'INTRANET_CGI_DIR', './skel' => 'NONE', @@ -418,6 +457,10 @@ my %config_defaults = ( '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', 'INSTALL_PAZPAR2' => 'no', 'AUTH_INDEX_MODE' => 'dom', @@ -440,23 +483,16 @@ my %config_defaults = ( 'PATH_TO_ZEBRA' => '', 'USE_MEMCACHED' => 'no', 'MEMCACHED_SERVERS' => '127.0.0.1:11211', - 'MEMCACHED_NAMESPACE' => 'KOHA' + 'MEMCACHED_NAMESPACE' => 'KOHA', + 'FONT_DIR' => '/usr/share/fonts/truetype/ttf-dejavu' ); # set some default configuration options based on OS # more conditions need to be added for other OS's -# this should probably also incorporate usage of Win32::GetOSName() and/or Win32::GetOSVersion() -# to allow for more granular decisions based on which Win32 platform warn "Your platform appears to be $^O.\n" if $DEBUG; -if ( $^O eq 'MSWin32' ) { - # 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... -} -elsif ( $^O eq 'cygwin' ) { +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'; @@ -471,11 +507,12 @@ else { 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 }, 'AUTH_INDEX_MODE' => { 'grs1' => 1, 'dom' => 1 }, 'BIB_INDEX_MODE' => { 'grs1' => 1, 'dom' => 1 }, 'ZEBRA_MARC_FORMAT' => { 'marc21' => 1, 'normarc' => 1, 'unimarc' => 1 }, # FIXME should generate from contents of distributation - 'ZEBRA_LANGUAGE' => { 'en' => 1, 'es' => 1, 'fr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution + 'ZEBRA_LANGUAGE' => { 'cs' => 1, 'en' => 1, 'es' => 1, 'fr' => 1, 'gr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution 'ZEBRA_TOKENIZER' => { chr => 1, icu => 1 }, 'RUN_DATABASE_TESTS' => { 'yes' => 1, 'no' => 1 }, 'USE_MEMCACHED' => { 'yes' => 1, 'no' => 1 }, @@ -483,14 +520,68 @@ my %valid_config_values = ( # get settings from command-line 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_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_auth_index_mode = ""; +my $cli_koha_bib_index_mode = ""; +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 = ""; Getopt::Long::Configure('pass_through'); my $results = GetOptions( - "prev-install-log=s" => \$koha_install_log -); + "prev-install-log=s" => \$koha_install_log, + "install_mode=s" => \$cli_koha_install_mode, + "db_type=s" => \$cli_koha_db_type, + "db_host=s" => \$cli_koha_db_host, + "db_port=s" => \$cli_koha_db_port, + "db_name=s" => \$cli_koha_db_name, + "db_user=s" => \$cli_koha_db_user, + "db_pass=s" => \$cli_koha_db_pass, + "zebra_marc_format=s" => \$cli_zebra_marc_format, + "zebra_language=s" => \$cli_zebra_language, + "zebra_tokenizer=s" => \$cli_zebra_tokenizer, + "zebra_user=s" => \$cli_zebra_user, + "zebra_pass=s" => \$cli_zebra_pass, + "zebra_sru_host=s" => \$cli_zebra_sru_host, + "zebra_sru_biblios_port=s" => \$cli_zebra_sru_bib_port, + "zebra_sru_authorities_port=s" => \$cli_zebra_sru_auth_port, + "auth_index_mode=s" => \$cli_koha_auth_index_mode, + "bib_index_mode=s" => \$cli_koha_bib_index_mode, + "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, + "help" => sub { HelpMessage(0) }, +) or HelpMessage(1); my %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); } my %config = get_configuration(\%config_defaults, \%valid_config_values, \%install_log_values); @@ -503,6 +594,7 @@ 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/ZEBRA_CONF_DIR/etc/default.idx', 'blib/MISC_DIR/koha-install-log' ], @@ -560,6 +652,10 @@ $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' + ? 'icuchain phrases-icu.xml' + : 'charmap word-phrase-utf.chr'; + my %test_suite_override_dirs = ( KOHA_CONF_DIR => ['etc'], ZEBRA_CONF_DIR => ['etc', 'zebradb'], @@ -731,6 +827,46 @@ sub _add_to_file_map { } } +=head2 get_cli_values + +Reads values provided on cli for configuration values + +=cut + +sub get_cli_values { + my $values = shift; + my $map = { + INSTALL_MODE => $cli_koha_install_mode, + DB_TYPE => $cli_koha_db_type, + DB_HOST => $cli_koha_db_host, + DB_PORT => $cli_koha_db_port, + DB_NAME => $cli_koha_db_name, + DB_USER => $cli_koha_db_user, + DB_PASS => $cli_koha_db_pass, + ZEBRA_MARC_FORMAT => $cli_zebra_marc_format, + ZEBRA_LANGUAGE => $cli_zebra_language, + ZEBRA_TOKENIZER => $cli_zebra_tokenizer, + ZEBRA_USER => $cli_zebra_user, + ZEBRA_PASS => $cli_zebra_pass, + ZEBRA_SRU_HOST => $cli_zebra_sru_host, + ZEBRA_SRU_BIBLIOS_PORT => $cli_zebra_sru_bib_port, + ZEBRA_SRU_AUTHORITIES_PORT => $cli_zebra_sru_auth_port, + AUTH_INDEX_MODE => $cli_koha_auth_index_mode, + BIB_INDEX_MODE => $cli_koha_bib_index_mode, + 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 + }; + foreach my $key (keys %{$map}) { + $values->{$key} = $map->{$key} if ($map->{$key}); + } +} + =head2 get_install_log_values Reads value from the Koha install log specified by @@ -902,6 +1038,27 @@ DMBS); 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'){ + $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); + } + 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); + + $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); + $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); + } $msg = q( Please specify the user that owns the database to be @@ -956,10 +1113,10 @@ Primary language for Zebra indexing); Koha can use one of two different indexing modes for the MARC bibliographic records: -grs1 - uses the Zebra GRS-1 filter, available - for legacy support dom - uses the DOM XML filter; offers improved functionality. +grs1 - [DEPRECATED] uses the Zebra GRS-1 filter, + available for legacy support Bibliographic indexing mode); $msg .= _add_valid_values_disp('BIB_INDEX_MODE', $valid_values); @@ -970,10 +1127,10 @@ Bibliographic indexing mode); Koha can use one of two different indexing modes for the MARC authorities records: -grs1 - uses the Zebra GRS-1 filter, available - for legacy support dom - uses the DOM XML filter; offers improved functionality. +grs1 - [DEPRECATED] uses the Zebra GRS-1 filter, + available for legacy support Authorities indexing mode); $msg .= _add_valid_values_disp('AUTH_INDEX_MODE', $valid_values); @@ -1065,7 +1222,7 @@ PazPar2 port?); } $msg = q( -Use memcached and memoize to cache the results of some function calls? +Use memcached to cache the results of some function calls? This provides a signficant performance improvement. You will need a Memcached server running.); $msg .= _add_valid_values_disp('USE_MEMCACHED', $valid_values); @@ -1083,6 +1240,9 @@ Memcached namespace?); $config{'MEMCACHED_NAMESPACE'} = _get_value('MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values, $install_log_values); } + $msg = q( +Path to DejaVu fonts?); + $config{'FONT_DIR'} = _get_value('FONT_DIR', $msg, $defaults->{'FONT_DIR'}, $valid_values, $install_log_values); $msg = q( @@ -1203,9 +1363,7 @@ sub get_target_directories { my @basedir = File::Spec->splitdir($directories); - # for Win32 we need to prepend the volume to the directory path - if ( $^O eq 'MSWin32' ) { shift @basedir; unshift @basedir, $volume; } - elsif ( $^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; @@ -1213,6 +1371,7 @@ sub get_target_directories { 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'); @@ -1236,6 +1395,8 @@ sub get_target_directories { $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'); @@ -1255,7 +1416,9 @@ sub get_target_directories { $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'}; + #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'); $skipdirs{'SCRIPT_NONDEV_DIR'} = 1; $dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man'); $dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc'); @@ -1267,6 +1430,7 @@ sub get_target_directories { $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'); @@ -1292,7 +1456,7 @@ sub get_target_directories { _get_env_overrides(\%dirmap); _get_argv_overrides(\%dirmap); - _add_destdir(\%dirmap) unless ($^O eq 'MSWin32'); + _add_destdir(\%dirmap); return \%dirmap, \%skipdirs; } @@ -1380,8 +1544,6 @@ sub display_configuration { print "perl Makefile.PL\n"; print "\nor\n\n"; print "DB_USER=my_koha DOC_DIR=/usr/local/info perl Makefile.PL\n\n"; - print "If installing on a Win32 platform, be sure to use:\n"; - print "'dmake -x MAXLINELENGTH=300000'\n\n"; } =head2 find_zebra @@ -1389,8 +1551,6 @@ sub display_configuration { Attempt to find Zebra - check user's PATH and a few other directories for zebrasrv and zebraidx. -FIXME: doesn't handle Win32 - =cut sub find_zebra { @@ -1412,8 +1572,6 @@ sub find_zebra { package MY; -# This will have to be reworked in order to accommodate Win32... - sub test { my $self = shift; my $test = $self->SUPER::test(@_); @@ -1474,26 +1632,7 @@ install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_en unless exists $skip_directories->{$key}; } } - elsif ($^O eq 'MSWin32' ) { # On Win32, the install probably needs to be done under the user account koha will be running as... - # We can attempt some creative things with command line utils such as CACLS which allows permission - # management from Win32 cmd.exe, but permissions really only apply to NTFS. - 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 :: all install_koha warn_koha_env_vars -\t\$(NOECHO) \$(NOOP) -); - $install .= "install_koha ::\n"; - $install .= "\t\$(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 .= "\n"; $install .= "warn_koha_env_vars ::\n"; @@ -1528,10 +1667,10 @@ sub _update_zebra_conf_target { my $target = "\nupdate_zebra_conf ::\n"; $target .= "\tumask 022; \$(MOD_INSTALL) \\\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" unless $^O eq "MSWin32"; + $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" unless $^O eq "MSWin32"; + $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_PAZPAR2_CONF_DIR)\n"; return $target; } @@ -1549,7 +1688,7 @@ sub upgrade { } $upgrade .= qq/ -MOD_BACKUP = \$(ABSPERLRUN) -Minstall_misc::UpgradeBackup -e 'backup_changed_files({\@ARGV}, '$backup_suffix', '\''\$(VERBINST)'\'', '\''\$(UNINST)'\'');' -- +MOD_BACKUP = \$(ABSPERLRUN) -MC4::Installer::UpgradeBackup -e 'backup_changed_files({\@ARGV}, '$backup_suffix', '\''\$(VERBINST)'\'', '\''\$(UNINST)'\'');' -- upgrade :: make_upgrade_backup install \t\$(NOECHO) \$(NOOP) @@ -1566,7 +1705,6 @@ make_upgrade_backup :: return $upgrade; } - sub postamble { # put directory mappings into Makefile # so that Make will export as environment @@ -1575,13 +1713,7 @@ sub postamble { my $env; # Hereagain, we must alter syntax per platform... - if ( $^O eq 'MSWin32' ) { - # NOTE: it is imperative that there be no whitespaces in ENV=value... - $env = join("\n", map { "__${_}__=$target_directories->{$_}" } keys %$target_directories); - $env .= "\n\n"; - $env .= join("\n", map { "__${_}__=$config{$_}" } keys %config); - } - else { + { $env = join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories); $env .= "\n\n"; $env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);