From 0888a3ceaf7102c52cd98bb22550fc3882e572c0 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 6 Aug 2020 11:05:55 -0400 Subject: [PATCH] Bug 26163: Add plugin directories to PERL5LIB It would be nice if we could create Koha objects and schema files to be used in plugins. The problem is that by the time the Plugin directories are added to @INC only at the point that Koha::Plugins is evaluated. This is too late for loading additional Schema files that may be part of a plugin. In addition, it makes sense to allow plugins to have a 'lib' directory so that any additional object and schema files can be stored inside the plugin assets directory and not pollute the root plugins directory. Without such a 'lib' directory, we would need to place them in the plugins directory such as '/var/lib/koha/instancename/plugins/Koha/MyObject.pm'. This file would not be removed when the plugin is uninstalled. Test Plan: 1) Apply this patch 2) Start koha-testing-docker or Update your plack.psgi file with the changes from the patch ( e.g. /etc/koha/sites/kohadevbox/plack.psgi ) 3) Install the Kitchen Sink plugin, version 2.1.42 https://github.com/bywatersolutions/koha-plugin-kitchen-sink/releases/download/v2.1.42/koha-plugin-kitchen-sink-v2.1.42.kpz 4) Restart all the things! 5) Note the message "Kitchen Sink test module was loaded!" in the plack error log when you visit the plugin's pages ( confi, tool, report ) Signed-off-by: Tomas Cohen Arazi --- debian/scripts/koha-plack | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/scripts/koha-plack b/debian/scripts/koha-plack index 3dcce331a9..ecc904e902 100755 --- a/debian/scripts/koha-plack +++ b/debian/scripts/koha-plack @@ -336,6 +336,14 @@ _do_instance() { adjust_paths_dev_install $name PERL5LIB=$PERL5LIB:$KOHA_HOME/installer:$KOHA_HOME/lib/installer + + for dir in $(xmlstarlet sel -t -v 'yazgfs/config/pluginsdir' "/etc/koha/sites/${name}/koha-conf.xml"); do + PERL5LIB=$PERL5LIB:$dir + for lib in $(find $dir -name 'lib'); do + PERL5LIB=$PERL5LIB:$lib + done; + done; + # If debug mode is enabled, add the debugger lib path # to PERL5LIB if appropriate #FIXME: many of these variables should be set in a higher scope -- 2.28.0