The problem is inherent on line 103 in 
/usr/lib/perl5/site_perl/5.6.1/i386-linux/urpm.pm, where a check is done 
to see if read_config has been previously called by checking 
$urpmi->{media}. Unfortunatley this variable has, at some point, been 
referenced and is set to a null array even though read_config hasn't 
been called yet.

It would be better coding practice to use a real flag, than to check 
something that's "supposed to be undefined" - at any rate, removing the 
check (leaving the second half on the line intact) eliminates the 
symptom - but isn't the fix.

In /usr/sbin/urpmi, the logic that determines when read_config gets 
called needs re-examined. In particular, the referencing of 
$urpmi->{media} in other routines (the filter_xxx, for example) when 
read_config hasn't been called is a problem. Again, if a routine needs a 
variable set in another routine it's probably a good idea to validate 
that said routine has been called.

Lastly, I'd like to comment on Mandrake's decidedly inadvisable practice 
of putting broken packages in the cooker mirrors, PARTICULARLY the ones 
that are used to maintain cooker distributions (urpmi, grpmi, rpmdrake). 
If you don't have a solid, broad-based, thorough testbed for exercizing 
these packages out, then spend some time and effort to CREATE ONE. This 
is not the first time that you've broken the update mechanisms, and it 
only demonstrates your lack of testing and quality assurance. While I 
realize cooker is a place for new code, that's a poor excuse for your 
failure to thoroughly work out your code prior to letting the world try 
it - again, and in particular, the code that most everyone uses to 
update their test systems.

Those of us on the bleeding edge would appreciate your work much more if 
you'd at least care enough to validate that code which you have complete 
control over prior to its release, even in a "pre-beta" environment.

Regards,
Paul


Reply via email to