Douglas Kline <[EMAIL PROTECTED]> said:
>> Douglas Kline <[EMAIL PROTECTED]> said:
>> >
>> > Now I'm getting a different error:  The variable basepath is being defined 
> to
>> > its own name as a value in Engine.pm.   When Engine.pm starts, the variable
>  is
>> > undefined.  In the initialize sub-routine in Engine.pm it's defined in the
>> > command
>> >
>> > $self->{basepath} = $basepath = $config->param("basepath")
>> >
>> > to its own name which, of course, leads to an error.
>> > 
>> > Earlier tests before I ran into this problem showed that fink was able to
>> > locate the pathnames correctly in at least some cases.  Any ideas as to wha
> t's
>> > going wrong here?  Should that sub-routine in Engine.pm be getting the corr
> ect
>> > value from somewhere or should it be set elsewhere?
>> 
>> I don't understand that analysis. The $config object, which is a
>> Config not an Engine, was established in Engine::new_with_config().
>> What's the exact error you're getting? Insert some print statements
>> there to see what the values are.
>
>
> The error I get is:
>
> Failed: Can't cd to basepath/fink: No such file or directory
>
> I had already tried the print statements.  Near the beginning of Engine.pm,
> just before the line
>
> END { }                         # module clean-up code here (global 
> destructor)
[...added...]
> &print_breaking("ENGINE:  basepath is $basepath.");
[...gives...]
> Use of uninitialized value in concatenation (.) or string at 
> /a/kodos/DataCenter/FINK/src/fink.build/fink-0.24.10-21/t/basepath/lib/perl5/Fi
> nk/Engine.pm line 125.
> basepath is .

That's not really useful or relevant: the $basepath variable isn't in
scope there. Well actually it is highly useful, as now I know that
you're using a fairly old version of fink. And that you're talking
about a problem that's happening during fink's self-test, not during
fink runtime?

> Inside the initialize sub-routine, just before the end of the sub-routine, the
> output of the same diagnostic command is:
>
> basepath is basepath.
>
> So now the variable has its own name as a value.  Inside the process
> sub-routine, just before the if-statement that runs restart_as_root which I've
> commented out, the output of the diagnostic command is the same as the 
> previous
> case.  Then I get the error message from the cd command.
>
> I'll look into the new_with_config sub-routine.  However it seems that the
> commands I've cited show that the variable is being defined in Engine.pm.

Right. In certain subroutines and scopes, based on values passed from
the callers of those subs. Gotta trace backward to see where it's
being defined. Carp::cluck is very useful for that. At least at
certain points in the self-test, "basepath" is a reasonable value for
$basepath.

With the number and types of changes you've made and the amount of
information we can't see, it's gonna be virtually impossible to lead
you remotely through solving this:(

dan

-- 
Daniel Macks
[EMAIL PROTECTED]
http://www.netspace.org/~dmacks




_______________________________________________
Fink-beginners mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-beginners

Reply via email to