[Catalyst] modperl 1.3 wierdness

2008-04-20 Thread Toby Corkindale
Hi guys,
I have an application that runs well on modperl 2.0, fcgi and the standalone
server.. but due to some stubborn/paranoid sysadmins[1] we are going to have to
run it under modperl 1.3.

This has resulted in some wierdness I haven't seen before, and I wondered if
anyone else had hit it?

I'll try and make a working mock-up I can post to the list to demonstrate the
problem IF no-one else has seen it before.

Given that I have:
My::Schema (DBIx::Class::Schema)
--> My::Schema::OneTable
--> My::Schema::TableTwo
and
My::App (Catalyst)
--> My::App::Model::DB (Catalyst::Model::DBIC::Schema)

During Apache start-up I see:
-
Subroutine My::App::Model::DB::OneTable::ACCEPT_CONTEXT redefined at
lib/My/App/Model/DB.pm
Subroutine My::App::Model::DB::TableTwo::ACCEPT_CONTEXT redefined at
lib/My/App/Model/DB.pm
Syntax error on line 7 of apache.conf:
Can't locate My/App/Model/DB/OneTable.pm in @INC ([snip]).
Compilation failed in require.
-

This is weird - why is it trying to load the *schema*'s subclasses under the
Catalyst's model? (Which of course fails..)

Cheers,
Toby

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-04-21 Thread Toby Corkindale
On Mon, Apr 21, 2008 at 04:54:00PM +1000, Toby Corkindale wrote:
> Hi guys,
> I have an application that runs well on modperl 2.0, fcgi and the standalone
> server.. but due to some stubborn/paranoid sysadmins[1] we are going to have
> to run it under modperl 1.3.

Footnotes:
1) This is their job, to be paranoid and stubborn.

2) We're actually running mod perl 1.29. Ick.


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-04-21 Thread Toby Corkindale
On Mon, Apr 21, 2008 at 04:54:00PM +1000, Toby Corkindale wrote:
> Hi guys,
> I have an application that runs well on modperl 2.0, fcgi and the standalone
> server.. but due to some stubborn/paranoid sysadmins[1] we are going to have
> to run it under modperl 1.3.
> 
> This has resulted in some wierdness I haven't seen before, and I wondered if
> anyone else had hit it?
[snip]
> During Apache start-up I see:
> -
> Subroutine My::App::Model::DB::OneTable::ACCEPT_CONTEXT redefined at
> lib/My/App/Model/DB.pm
> Subroutine My::App::Model::DB::TableTwo::ACCEPT_CONTEXT redefined at
> lib/My/App/Model/DB.pm
> Syntax error on line 7 of apache.conf:
> Can't locate My/App/Model/DB/OneTable.pm in @INC ([snip]).
> Compilation failed in require.
> -

The above problem was solved by changing the apache config.
Before:

   use lib qw(/my/home/dir);

PerlModule My::App

After:

   use lib qw(/my/home/dir);
   use My::App;



I'm still seeing some problems indicating the Plugin::ConfigLoader isn't, well,
loading anything, though. Odd.

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-04-21 Thread Matt S Trout
On Mon, Apr 21, 2008 at 07:09:26PM +1000, Toby Corkindale wrote:
> The above problem was solved by changing the apache config.
> Before:
> 
>use lib qw(/my/home/dir);
> 
> PerlModule My::App
> 
> After:
> 
>use lib qw(/my/home/dir);
>use My::App;
> 

Yep. PerlModule will do double-loading, as documented, which Catalyst can't
handle  (and shouldn't need to).

I suspect you'd've found changing PerlModule to PerlRequire would have done
the trick as well, though my MP1's rusty.
 
> I'm still seeing some problems indicating the Plugin::ConfigLoader isn't, 
> well,
> loading anything, though. Odd.

If you didn't make install it and deleted the Makefile.PL, it's not going to.

Catalyst uses the presence of Makefile.PL to check if it's running in an
unpacked dist versus running installed; since obviously an unpacked dist
-must- have a Makefile.PL otherwise it's not a valid dist[0]

Choose one option :)

[0] Yes, we do check for Build.PL as well. Hush.

-- 
  Matt S Trout   Need help with your Catalyst or DBIx::Class project?
   Technical Directorhttp://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/http://www.shadowcat.co.uk/servers/

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-04-27 Thread Toby Corkindale
On Mon, Apr 21, 2008 at 07:23:44PM +0100, Matt S Trout wrote:
> On Mon, Apr 21, 2008 at 07:09:26PM +1000, Toby Corkindale wrote:
> > The above problem was solved by changing the apache config.
> > Before:
> > 
> >use lib qw(/my/home/dir);
> > 
> > PerlModule My::App
> > 
> > After:
> > 
> >use lib qw(/my/home/dir);
> >use My::App;
> > 
> 
> Yep. PerlModule will do double-loading, as documented, which Catalyst can't
> handle  (and shouldn't need to).
> 
> I suspect you'd've found changing PerlModule to PerlRequire would have done
> the trick as well, though my MP1's rusty.

As is mine.. I wish we'd move away from it here :(

> > I'm still seeing some problems indicating the Plugin::ConfigLoader isn't,
> > well, loading anything, though. Odd.
> 
> If you didn't make install it and deleted the Makefile.PL, it's not going to.
> 
> Catalyst uses the presence of Makefile.PL to check if it's running in an
> unpacked dist versus running installed; since obviously an unpacked dist
> -must- have a Makefile.PL otherwise it's not a valid dist[0]

Aaah yes, I remember hitting this way back! That magic Makefile-detection..

Unfortunately due to somewhat unusual app deployment tactics here, apps get
"installed" manually, into their own little area, along with their required
perl dependencies, thus losing the Makefile.PL, but also requiring that the
config file lived in the same non-standard location.

(it does kind of make sense..)

> Choose one option :)

Erm, does stripping out ConfigLoader and replacing it with a similarly
operating plugin that knows to look in our company-specific locations count? :)

Thanks for the help!
-Toby

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-05-03 Thread Matt S Trout
On Mon, Apr 28, 2008 at 11:30:53AM +1000, Toby Corkindale wrote:
> Unfortunately due to somewhat unusual app deployment tactics here, apps get
> "installed" manually, into their own little area, along with their required
> perl dependencies, thus losing the Makefile.PL, but also requiring that the
> config file lived in the same non-standard location.

How about using

__PACKAGE__->config(
  'Plugin::ConfigLoader' => {
file => __PACKAGE__->path_to(...)
  }
);

or setting an environment variable?

-- 
  Matt S Trout   Need help with your Catalyst or DBIx::Class project?
   Technical Directorhttp://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/http://www.shadowcat.co.uk/servers/

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-05-04 Thread Toby Corkindale
On Sat, May 03, 2008 at 11:22:49PM +0100, Matt S Trout wrote:
> On Mon, Apr 28, 2008 at 11:30:53AM +1000, Toby Corkindale wrote:
> > Unfortunately due to somewhat unusual app deployment tactics here, apps get
> > "installed" manually, into their own little area, along with their required
> > perl dependencies, thus losing the Makefile.PL, but also requiring that the
> > config file lived in the same non-standard location.
> 
> How about using
> 
> __PACKAGE__->config(
>   'Plugin::ConfigLoader' => {
> file => __PACKAGE__->path_to(...)
>   }
> );
> 
> or setting an environment variable?

The location varies depending on build version and status, but could have been
solved with the env variable part combined with the loader options..
But at the time it was 8pm at night and I wanted to go home, and hacking up a
little DIY loader was quicker than trying to figure out what was going wrong
with the plugin.. You know how it gets sometimes?


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] modperl 1.3 wierdness

2008-05-05 Thread Matt S Trout
On Sun, May 04, 2008 at 11:19:24PM +1000, Toby Corkindale wrote:
> On Sat, May 03, 2008 at 11:22:49PM +0100, Matt S Trout wrote:
> > On Mon, Apr 28, 2008 at 11:30:53AM +1000, Toby Corkindale wrote:
> > > Unfortunately due to somewhat unusual app deployment tactics here, apps 
> > > get
> > > "installed" manually, into their own little area, along with their 
> > > required
> > > perl dependencies, thus losing the Makefile.PL, but also requiring that 
> > > the
> > > config file lived in the same non-standard location.
> > 
> > How about using
> > 
> > __PACKAGE__->config(
> >   'Plugin::ConfigLoader' => {
> > file => __PACKAGE__->path_to(...)
> >   }
> > );
> > 
> > or setting an environment variable?
> 
> The location varies depending on build version and status, but could have been
> solved with the env variable part combined with the loader options..
> But at the time it was 8pm at night and I wanted to go home, and hacking up a
> little DIY loader was quicker than trying to figure out what was going wrong
> with the plugin.. You know how it gets sometimes?

Yes, but I've had hacked the app back out of whatever broken-ass deployment
system can't handle a checkout dir -and- doesn't use 'make install' so
Catalyst's "find the config when installed as a normal perl/CPAN dist" logic
didn't work either. Because really, if it can't handle a straight CPAN
module properly deploying perl stuff using it ain't a good idea.

-- 
  Matt S Trout   Need help with your Catalyst or DBIx::Class project?
   Technical Directorhttp://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/http://www.shadowcat.co.uk/servers/

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/