From eae05654f6444517cb672ebdb17483d1f3f08b1d Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 2 Mar 2018 10:36:34 -0300 Subject: [PATCH] [17.11.x] Bug 19546: Run starman from the instance's home dir This patch makes koha-plack jump into the instance's home directory to run. It is required because Perl 5.18 introduced a breaking change that makes perl die if @INC includes directories for which the user doesn't have read permission, and need to be traversed when querying for a lib. This is the case of '.', which is introduced automatically into @INC until Perl 5.26 (which removes the 'feature'). The Mojolicious::Plugins lib prefixes the plugin names with 'Mojolicious::Plugin' so it first looks (for example) for Mojolicious::Plugin::Koha::REST::Plugin::Pagination (Pagination is just the first one on the list). When it looks for it at '.' it dies (because of Perl's behaviour) so it doesn't query for the right namespace (the following to try). I only reproduced it in koha-testing-docker. To test, you just need to try this patched koha-plack and make sure it doesn't break due to this permissions issue. To test: - In your koha-testing-docker clone, run: $ docker-compose up -p test - Open a shell inside the container (on a separate terminal): $ docker exec -it test_koha_1 bash - From within the /root directory, restart plack: $ cd /root $ koha-plack --restart kohadev => FAIL: Logs show plack is broken due to permissions problems trying to find Mojolicious::Plugin::Koha::REST::Plugin::Pagination - Use the patched script from this patch: $ /kohadevbox/koha/debian/scripts/koha-plack --restart kohadev => SUCCESS: Plack runs fine, no error in the logs - Sign off :-D Note: people who has environments in which the problems is reproducible, please test this version of koha-plack and stamp your sign-off, PLEASE. Signed-off-by: Kyle M Hall Signed-off-by: Marcel de Rooy --- debian/scripts/koha-plack | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/debian/scripts/koha-plack b/debian/scripts/koha-plack index 5e1fc9cf65..530949edf7 100755 --- a/debian/scripts/koha-plack +++ b/debian/scripts/koha-plack @@ -92,11 +92,18 @@ start_plack() log_daemon_msg "Starting Plack daemon for ${instancename}" + # Change to the instance's user dir + current_dir=$(pwd) + eval cd ~$instance_user + if ${STARMAN} ${STARMANOPTS}; then log_end_msg 0 else log_end_msg 1 fi + # Go back to the original dir + cd $current_dir + else log_daemon_msg "Error: Plack already running for ${instancename}" log_end_msg 1 -- 2.17.0