[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Perl can't find my libraries when run via the subversion post-commit script

From: Craig Thayer <CThayer_at_sensorlogic.com>
Date: Thu, 4 Mar 2010 11:20:25 -0600

David,

Thank you for your reply.

Yes, I have tested the script on the Subversion server and it runs just fine. And I agree it is obvious that Perl is including the directories to my libraries (so the use lib statements are working as designed as you stated). However, it is Perl that is complaining that it can't find my libraries even though they are clearly in the @INC path. I have never run into this situation before and I believe it has to do with the fact that the Subversion hook is running with no environment defined, but why it makes Perl not able to find my libs ONLY when it runs as a Subversion hook I haven't a clue.

I have temporarily resolved the problem by moving my libraries to the /usr/lib/perl5/site_perl path (which I didn't want to do) which is predefined by my Perl installation in @INC. The script now runs via the Subversion hook and finds my libraries just fine. I would, however, like to understand what causes Perl to not recognize my added paths to @INC when it runs as a Subversion hook.

Craig

-----Original Message-----
From: David Weintraub [mailto:qazwart_at_gmail.com]
Sent: Wednesday, March 03, 2010 9:57 PM
To: Craig Thayer
Cc: users_at_subversion.apache.org
Subject: Re: Perl can't find my libraries when run via the subversion post-commit script

On Wed, Mar 3, 2010 at 3:15 PM, Craig Thayer <CThayer_at_sensorlogic.com> wrote:
> I am at a loss as to why my perl script cannot find my libraries when
> invoked by the subversion post-commit script.  My script runs just fine when
> invoked manually in a terminal window.  I'm aware that the subversion
> post-commit script runs with no environment defined, but the error I'm
> getting (below) makes no sense since the module perl claims it can't find
> (Log.pm) is, in fact, in the '/root/perl5/lib' directory which is clearly
> listed in the @INC array.

Have you tried logging into the server as the user that runs
Subversion and tried running the Perl script as that user (and not as
part of the hook)? You might find the error when you try to execute as
the user that is running the Subversion server.

It is obvious that the Perl program is including the directories you
want to include in the @INC array, so the problem is not in the use
lib statements.

I wonder if there is a permission issue going on -- especially since
these are not standard Perl directories.

-- 
David Weintraub
qazwart_at_gmail.com
Received on 2010-03-04 18:20:59 CET

This is an archived mail posted to the Subversion Users mailing list.