On Fri, 2007-04-27 at 11:46 +0200, Alicia Amadoz wrote: > Ok, I would try it but where should I write that code? maybe at the > startup.perl file? > > Thanks, > Alicia
No, you need to find the Bio::DB::WedbDBSeqI module and edit that. > > > On Fri, 2007-04-27 at 10:19 +0200, Clinton Gormley wrote: > > > On Fri, 2007-04-27 at 09:43 +0200, Alicia Amadoz wrote: > > > > Hi, > > > > > > > > > > > [error] \n------------- EXCEPTION: Bio::Root::Exception > > > > -------------\nMSG: Can't locate Apache/SubProcess.pm in @INC (....)\n > > > > BEGIN failed--compilation aborted at (eval 47) line > > > > 2.\n\nApache::SubProcess module required for running under > > > > mod_perl\nSTACK: Error::throw\nSTACK: Bio::Root::Root::throw ... > > > > > > The error is that it can't locate Apache::SubProcess, but you're using > > > mod_perl 2, which uses Apache2::Subprocess. > > > > > > > > > Clint > > > > > > I'm not familiar with bioperl, but doing a code search, it seems that > > Bio::DB::WebDBSeql has just (v 1.5.2) added the dependency on > > Apache::SubProcess, but purely as a way of cleaning up the environment > > after forking: > > > > http://doc.bioperl.org/releases/bioperl-1.5.2/Bio/DB/WebDBSeqI.html#CODE25 > > > > ---------------------------------------------------------------- > > sub _open_pipe { > > my ($self) = @_; > > > > if($ENV{MOD_PERL} and ! our $loaded_apache_sp) { > > eval 'use Apache::SubProcess'; > > $@ and $self->throw("[EMAIL PROTECTED]::SubProcess module required for > running under mod_perl"); > > $loaded_apache_sp = 1; > > } > > > > my $pipe = IO::Pipe->new(); > > > > $SIG{CHLD} = 'IGNORE'; > > defined(my $pid = fork) > > or $self->throw("Couldn't fork: $!"); > > > > unless($pid) { > > #CHILD > > $pipe->writer(); > > > > #if we're running under mod_perl, clean up some things after this fork > > if ($ENV{MOD_PERL} and my $r = eval{Apache->request} ) { > > $r->cleanup_for_exec; > > #don't read or write the mod_perl parent's tied filehandles > > close STDIN; close STDOUT; > > setsid() or $self->throw('Could not detach from parent'); > > } > > } else { > > #PARENT > > $pipe->reader(); > > } > > return ( $pid, $pipe ); > > } > > ---------------------------------------------------------------- > > > > > > In mod_perl 2, cleanup_for_exec is no longer required: > > > http://perl.apache.org/docs/2.0/user/porting/compat.html#C__r_E_gt_cleanup_for_exec_ > > > > So, you could probably just do this (warning : untested) : > > ---------------------------------------------------------------- > > my $MP1 = $ENV{MOD_PERL} > > && ! (exists $ENV{MOD_PERL_API_VERSION} and > > $ENV{MOD_PERL_API_VERSION} >= 2); > > > > sub _open_pipe { > > my ($self) = @_; > > > > if($MP1! our $loaded_apache_sp) { > > eval 'use Apache::SubProcess'; > > $@ and $self->throw("[EMAIL PROTECTED]::SubProcess module required for > running under mod_perl"); > > $loaded_apache_sp = 1; > > } > > > > my $pipe = IO::Pipe->new(); > > > > $SIG{CHLD} = 'IGNORE'; > > defined(my $pid = fork) > > or $self->throw("Couldn't fork: $!"); > > > > unless($pid) { > > #CHILD > > $pipe->writer(); > > > > #if we're running under mod_perl, clean up some things after this fork > > if ($MP1 and my $r = eval{Apache->request} ) { > > $r->cleanup_for_exec; > > #don't read or write the mod_perl parent's tied filehandles > > close STDIN; close STDOUT; > > setsid() or $self->throw('Could not detach from parent'); > > } > > } else { > > #PARENT > > $pipe->reader(); > > } > > return ( $pid, $pipe ); > > } > > > > > > > > > > > -- > *********************************************** > Alicia Amadoz Navarro > > Evolutionary Genetics Unit > Cavanilles Institute for Biodiversity and > Evolutionary Biology > University of Valencia > Apartado Oficial 22085 > E-46071 Valencia SPAIN > Phone: (+34) 96 354 3687 > FAX: (+34) 96 354 3733 > e-mail: [EMAIL PROTECTED] > http://www.uv.es/~biodiver/v/index.htm > > *********************************************** > NOTE! For shipments by EXPRESS COURIER use "Instituto > Cavanilles de Biodiversidad y Biología Evolutiva, > Polígono de la Coma s/n, 46980 Paterna (Valencia), > Spain" instead of P.O. Box no. and Post Code/City above. > > >