From 48dc1cb4b0520f195aa0f3eb86bb0a26067ed520 Mon Sep 17 00:00:00 2001
From: Chris Nighswonger
Date: Mon, 11 Jan 2010 09:34:00 -0500
Subject: [PATCH] [25/30] Fixing up the installer to check for new optional
dependencies
---
Makefile.PL | 4 +--
installer/install.pl | 32 +++++++++++++------
.../prog/en/modules/installer/step1.tmpl | 13 ++++----
3 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/Makefile.PL b/Makefile.PL
index 005ab81a56..aa4591171b 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -556,9 +556,9 @@ WriteMakefile(
'Digest::SHA' => 5.43,
'Email::Date' => 1.103,
'File::Temp' => 0.16,
- 'GD' => 2.39, #optional
+ 'GD' => 2.39, #optional, used for patron image feature
'GD::Barcode::UPCE' => 1.1,
- 'Graphics::Magick' => 1.37
+ 'Graphics::Magick' => 1.3.7, #optional, used for patron cards creator
'Getopt::Long' => 2.35,
'Getopt::Std' => 1.05,
'HTML::Template::Pro' => 0.69,
diff --git a/installer/install.pl b/installer/install.pl
index 9d2196207a..4142d06417 100755
--- a/installer/install.pl
+++ b/installer/install.pl
@@ -131,6 +131,18 @@ if ( $step && $step == 1 ) {
{ name => "GD::Barcode", usagebarcode => 1, usagespine => 1 };
}
}
+ unless ( eval { require GD } ) {
+ if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal
+ push @missing,
+ { name => "GD", usagepatronimages => 1 };
+ }
+ }
+ unless ( eval { require Graphics::Magick } ) {
+ if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal
+ push @missing,
+ { name => "Graphics::Magick", usagepatroncards => 1 };
+ }
+ }
unless ( eval { require Data::Random } ) {
if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal
push @missing, { name => "Data::Random", usagebarcode => 1 };
@@ -230,7 +242,7 @@ elsif ( $step && $step == 2 ) {
}
$template->param( "checkgrantaccess" => $grantaccess );
} # End mysql connect check...
-
+
elsif ( $info{dbms} eq "Pg" ) {
# Check if database has been created...
my $rv = $dbh->do( "SELECT * FROM pg_catalog.pg_database WHERE datname = \'$info{dbname}\';" );
@@ -257,7 +269,7 @@ elsif ( $step && $step == 3 ) {
#
# STEP 3 : database setup
#
-#
+#
my $op = $query->param('op');
if ( $op && $op eq 'finished' ) {
#
@@ -298,7 +310,7 @@ elsif ( $step && $step == 3 ) {
#
#
# (note that the term "selectframeworks is not correct. The user can select various files, not only frameworks)
-
+
#Framework Selection
#sql data for import are supposed to be located in installer/data//
# Where is en|fr or any international abbreviation (provided language hash is updated... This will be a problem with internationlisation.)
@@ -314,15 +326,15 @@ elsif ( $step && $step == 3 ) {
my $marcflavour = $query->param('marcflavour');
if ($marcflavour){
$installer->set_marcflavour_syspref($marcflavour);
- };
+ };
$marcflavour = C4::Context->preference('marcflavour') unless ($marcflavour);
#Insert into database the selected marcflavour
- undef $/;
+ undef $/;
my ($marc_defaulted_to_en, $fwklist) = $installer->marc_framework_sql_list($langchoice, $marcflavour);
$template->param('en_marc_frameworks' => $marc_defaulted_to_en);
$template->param( "frameworksloop" => $fwklist );
$template->param( "marcflavour" => ucfirst($marcflavour));
-
+
my ($sample_defaulted_to_en, $levellist) = $installer->sample_data_sql_list($langchoice, $marcflavour);
$template->param( "en_sample_data" => $sample_defaulted_to_en);
$template->param( "levelloop" => $levellist );
@@ -334,7 +346,7 @@ elsif ( $step && $step == 3 ) {
# 1ST install, 2nd sub-step : show the user the marcflavour available.
#
#
-
+
#Choose Marc Flavour
#sql data are supposed to be located in installer/data///marcflavour/marcflavourname
# Where is database type according to DBD syntax
@@ -362,13 +374,13 @@ elsif ( $step && $step == 3 ) {
}
my @listdir = grep { !/^\./ && -d "$dir/$_" } readdir(MYDIR);
closedir MYDIR;
- my $marcflavour=C4::Context->preference("marcflavour");
+ my $marcflavour=C4::Context->preference("marcflavour");
my @flavourlist;
foreach my $marc (@listdir) {
- my %cell=(
+ my %cell=(
"label"=> ucfirst($marc),
"code"=>uc($marc),
- "checked"=> defined($marcflavour) ? uc($marc) eq $marcflavour : 0);
+ "checked"=> defined($marcflavour) ? uc($marc) eq $marcflavour : 0);
# $cell{"description"}= do { local $/ = undef; open INPUT "<$dir/$marc.txt"||""; };
push @flavourlist, \%cell;
}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl
index dcb90a438d..3226622153 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl
@@ -38,15 +38,16 @@ listed, please inform your systems administrator.
This module is used whenever Koha has to send email.
-
-
+
This module is needed if you intend to print barcodes.
-
-
+
This module is needed if you intend to print spine labels.
-
-
+
This module is needed if you intend to use LDAP for authentication.
+
+ This module is needed if you intend to use patron images.
+
+ This module is needed if you intend to use the patron card creator.