[EP-tech] Re: Problem with the RSS plugin

Sebastien Francois sf2 at ecs.soton.ac.uk
Tue Oct 23 16:15:59 BST 2012

On 23/10/12 15:01, Ian Stuart wrote:
> On 23/10/12 15:01, Sebastien Francois wrote:
>> Hi Malcolm:
>> You can copy .pm files to:
>> 1- perl_lib/EPrints/Plugin/ .... -> usually considered "hacky" as you're
>> changing the core. It will work but as PERL told you, you need to first
>> "use" the plugin somewhere (usually this is done in perl_lib/EPrints.pm
>> -> add "use EPrints::Plugin::Export::ALLRSS" there and restart the web
>> server). But see, you've just patched a core file (EPrints.pm).
>> 2- (EPrints 3.1+) local archive:
>> archives/{id}/cfg/plugins/EPrints/Plugin/Export/ -> nothing else required
>> 3- (EPrints 3.3+) the bazaar directory:
>> lib/plugins/EPrints/Plugin/Export/ - this time you need to explicitly
>> enable that plugin in your local conf, something like:
>> $c->{plugins}{"Export::ALLRSS"}{params}{disable} = 0;
>> and restart the web server.
>> If you have only one repository running in your EPrints install, I would
>> go for option #2. If more than one, option #3.
> Isn't that the other way around?
> lib/plugins/EPrints/Plugin/Export/ is global, therefore all repos will
> pick it up.
> archives/{id}/cfg/plugins/EPrints/Plugin/Export/ is specific to the
> repo, therefore properly localised
I don't think I said otherwise.

-> lib/plugins/... is global but won't be picked up locally unless 
explicitly enabled in the local conf.

-> archives/{id}/.... appears local but the truth is that if you have 
two repositories with the same "local" plugin only one will be loaded 
globally (namespace clash) so if repo1 makes a change to their "local" 
version, repo2 will inherit the change because at the end of the day, 
the same process (modperl) cannot load twice the same package/module.

Having a plugin in archives/{id}/... does not guarantee it's localised 
(that's why the bazaar doesn't install stuff there).


More information about the Eprints-tech mailing list