From 3d1d7622df1d2a2dbade851137c5acf8806a21e3 Mon Sep 17 00:00:00 2001
From: Chris Nighswonger
Date: Tue, 5 May 2015 15:00:30 -0400
Subject: [PATCH] Bug 14152: Re-check required dependencies during upgrade
process
This code causes the installer to re-check dependencies during the
upgrade process.
Test Plan
---------
1) Log in to staff client
2) Koha Administration -> Global system preferences -> Local
3) Change Version to previous version -- DO NOT HIT SAVE YET!
4) In command line: sudo apt-get purge libpdf-fromhtml-perl
NOTE: This could be ANY required library. I chose
PDF::FromHTML, because it has been a thorn in my side.
5) NOW! Hit the 'Save' button.
6) Log in, etc. etc...
-- Blows up on redirect to log in.
7) In command line, add it back (I had to compile my own so,
I used sudo dpkg -i /path/to/libpdf-fromhtml-perl...)
8) Apply patch
9) Edit the C4/Installer/PerlDependencies.pm to make
PDF::FromHTML required. See also bug 14103.
10) Log in to staff client
11) Koha Administration -> Global system preferences -> Local
12) Change Version to previous version -- DO NOT HIT SAVE YET!
13) In command line: sudo apt-get purge libpdf-fromhtml-perl
14) NOW! Hit the 'Save' button.
15) Log in, etc. etc...
16) Once warned you are missing it, add it back at the command line.
17) Click 'Recheck'
-- Proceeds as expected now.
Signed-off-by: Mark Tompsett
---
C4/Auth.pm | 2 +-
installer/install.pl | 19 ++++++++++---------
.../intranet-tmpl/prog/en/modules/installer/step1.tt | 15 ++++++++++++++-
3 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/C4/Auth.pm b/C4/Auth.pm
index 4b02701..f5a6d65 100644
--- a/C4/Auth.pm
+++ b/C4/Auth.pm
@@ -671,7 +671,7 @@ sub _version_check {
my $warning = "Database update needed, redirecting to %s. Database is $version and Koha is $kohaversion";
if ( $type ne 'opac' ) {
warn sprintf( $warning, 'Installer' );
- print $query->redirect("/cgi-bin/koha/installer/install.pl?step=3");
+ print $query->redirect("/cgi-bin/koha/installer/install.pl?step=1&op=updatestructure");
} else {
warn sprintf( "OPAC: " . $warning, 'maintenance' );
print $query->redirect("/cgi-bin/koha/maintenance.pl");
diff --git a/installer/install.pl b/installer/install.pl
index 1fbc685..ae506ba 100755
--- a/installer/install.pl
+++ b/installer/install.pl
@@ -53,9 +53,10 @@ my $dbh = DBI->connect(
);
if ( $step && $step == 1 ) {
- #First Step
+ #First Step (for both fresh installations and upgrades)
#Checking ALL perl Modules and services needed are installed.
#Whenever there is an error, adding a report to the page
+ my $op = $query->param('op') || 'noop';
$template->param( language => 1 );
$template->param( 'checkmodule' => 1 ); # we start with the assumption that there are no problems and set this to 0 if there are
@@ -84,7 +85,7 @@ if ( $step && $step == 1 ) {
);
}
@components = sort {$a->{'name'} cmp $b->{'name'}} @components;
- $template->param( missing_modules => \@components, checkmodule => $checkmodule );
+ $template->param( missing_modules => \@components, checkmodule => $checkmodule, op => $op );
}
}
elsif ( $step && $step == 2 ) {
@@ -312,13 +313,13 @@ elsif ( $step && $step == 3 ) {
#
#Do updatedatabase And report
- if ( ! defined $ENV{PERL5LIB} ) {
- my $find = "C4/Context.pm";
- my $path = $INC{$find};
- $path =~ s/\Q$find\E//;
- $ENV{PERL5LIB} = "$path:$path/installer";
- warn "# plack? inserted PERL5LIB $ENV{PERL5LIB}\n";
- }
+ if ( ! defined $ENV{PERL5LIB} ) {
+ my $find = "C4/Context.pm";
+ my $path = $INC{$find};
+ $path =~ s/\Q$find\E//;
+ $ENV{PERL5LIB} = "$path:$path/installer";
+ warn "# plack? inserted PERL5LIB $ENV{PERL5LIB}\n";
+ }
my $now = POSIX::strftime( "%Y-%m-%dT%H:%M:%S", localtime() );
my $logdir = C4::Context->config('logdir');
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tt
index 038c9dc..4fb70b5 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tt
@@ -30,7 +30,9 @@ listed, please inform your systems administrator.
[% END %]
[% IF ( language ) %]
- [% UNLESS ( checkmodule ) %]
+ [% IF ( checkmodule ) %]
+ All required Perl modules appear to be installed.
+ [% ELSE %]
[% IF ( missing_modules ) %]
Some Perl modules are missing. Modules in red must be installed before you may continue.
@@ -57,11 +59,22 @@ listed, please inform your systems administrator.
[% END %]
--
2.1.4