Re: Treating 'not found' packages as errors

seth vidal <[email protected]>
Newsgroups gmane.linux.rpm.yum
Message-ID <1209077537.15548.4.camel@cutter>
On Thu, 2008-04-24 at 17:15 +0200, Anders Blomdell wrote:
> seth vidal wrote:
> > On Thu, 2008-04-24 at 11:44 +0200, Anders Blomdell wrote:
> > 
> >> OK, found it. Kind of shared error, fix is:
> >>
> >> --- __init__.py~        2007-12-05 23:27:40.000000000 +0100
> >> +++ __init__.py 2008-04-24 11:40:59.000000000 +0200
> >> @@ -589,7 +589,7 @@
> >>          self.plugins.run('pretrans')
> >>
> >>          errors = self.ts.run(cb.callback, '')
> >> -        if errors:
> >> +        if errors != None:
> >>              raise Errors.YumBaseError, errors
> >>
> >>          if not self.conf.keepcache:
> > 
> > Ah, what version of yum are you using?
> > 
> > B/c the above is already fixed in HEAD and in the version released in
> > fedora rawhide.
> 
> OK, found it in the git repository:
> 
>         errors = self.ts.run(cb.callback, '')
>         # ts.run() exit codes are, hmm, "creative": None means all ok, empty
>         # list means some errors happened in the transaction and non-empty
>         # list that there were errors preventing the ts from starting...
>         if errors is None:
>             pass
>         elif len(errors) == 0:
>             errstring = _('Warning: scriptlet or other non-fatal errors occurred
> during transaction.')
>             self.verbose_logger.debug(errstring)
>         else:
>             raise Errors.YumBaseError, errors
> 
> Why doesn't 'len(errors) == 0' case not raise an exception?

b/c an empty list means there were scriptlet errors (%post, %pre, etc)
and raising an exception there will break anaconda, as was discovered
last week.

-sv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.