From 8499cc08ff79c7bcbdf2e0b06c816015f6f51be9 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 19 Mar 2015 16:54:02 +0100 Subject: [PATCH] [PASSED QA] Bug 13876: Fallback to /tmp if logdir is not writable If the logdir directory is not writable by the koha user, the installer should not explode. This patch uses a temporary directory as a fallback. That means that the history won't be kept. Test plan: 0/ Generate an update (modify updatedatabase.pl and kohaversion) 1/ Make sure the permission are not correct on $logdir 2/ Go on the interface and execute the update entry. 3/ Confirm that the log has been created in a temporaty directory. Retry with correct permissions and confirm the log will be created in $logdir. Signed-off-by: Marcel de Rooy Adding a follow-up for completely resolving encountered issues. Signed-off-by: Katrin Fischer Signed-off-by: Chris Nighswonger Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- installer/install.pl | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/installer/install.pl b/installer/install.pl index 46f3e3a..63094ab 100755 --- a/installer/install.pl +++ b/installer/install.pl @@ -7,6 +7,7 @@ use diagnostics; use C4::InstallAuth; use CGI qw ( -utf8 ); use POSIX qw(strftime); +use File::Temp qw( tempdir ); use C4::Context; use C4::Output; @@ -322,6 +323,9 @@ elsif ( $step && $step == 3 ) { my $now = POSIX::strftime( "%Y-%m-%dT%H:%M:%S", localtime() ); my $logdir = C4::Context->config('logdir'); + unless ( -w $logdir ) { + $logdir = tempdir; + } my ( $logfilepath, $logfilepath_errors ) = ( $logdir . "/updatedatabase_$now.log", $logdir . "/updatedatabase-error_$now.log" ); my $cmd = C4::Context->config("intranetdir") . "/installer/data/$info{dbms}/updatedatabase.pl > $logfilepath 2> $logfilepath_errors"; -- 1.7.2.5