From 1ab20270d78c099b6f61022c3112728e4f139a0c 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 curbside pickup plugin, 1.0.9: https://github.com/bywatersolutions/koha-plugin-curbside-pickup/releases/tag/v1.0.9 4) Restart all the things! 5) Verify that the curbside pickup plugin's config and tools interfaces appear. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Galen Charlton --- 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.11.0