On Wed, 2013-04-03 at 15:14 -0700, Brian C. Lane wrote:
On Wed, Apr 03, 2013 at 05:04:58PM -0400, Chris Lumens wrote:
> > + log.info("Running anaconda-yum to install packages")
> > + # Watch output for progress, debug and error information
> > + install_errors = []
> > + try:
> > + for line in execReadlines("anaconda-yum", args):
> > + if line.startswith("PROGRESS_"):
> > + key, text = line.split(":", 2)
> > + msg = progress_map[key] + text
> > + progress.send_message(msg)
> > + log.debug(msg)
> > + elif line.startswith("DEBUG:"):
> > + log.debug(line[6:])
> > + elif line.startswith("INFO:"):
> > + log.info(line[5:])
> > + elif line.startswith("WARN:"):
> > + log.warn(line[5:])
> > + elif line.startswith("ERROR:"):
> > + log.error(line[6:])
> > + install_errors.append(line[6:])
> > + else:
> > + log.debug(line)
> > + except IOError as e:
> > + log.error("Error running anaconda-yum: %s" % e)
> > + exn = PayloadInstallError(str(e))
> > + if errorHandler.cb(exn) == ERROR_RAISE:
> > + raise exn
> > + finally:
> > + # log the contents of the scriptlet logfile if any
> > + if os.path.exists(script_log):
> > log.info("==== start rpm scriptlet logs ====")
> > - with open(script_log.name) as f:
> > + with open(script_log) as f:
> > for l in f:
> > log.info(l)
> > log.info("==== end rpm scriptlet logs ====")
> > - os.unlink(script_log.name)
> > + os.unlink(script_log)
> > +
> > + if install_errors:
> > + exn = PayloadInstallError("\n".join(install_errors))
> > + if errorHandler.cb(exn) == ERROR_RAISE:
> > + raise exn
> >
> > def writeMultiLibConfig(self):
> > if not self.data.packages.multiLib:
>
> This section is most concerning to me, from a translation perspective.
> I'm not sure how good of a job we are doing right now with displaying
> correctly translated messages and yum errors but if we're not doing a
> good job of it, we could easily fix it given everything is in the same
> process.
>
> Do you have any idea what shape it's in given these patches?
It looks like yum is translated, but I am not sure what's going to
happen to those translations when they get passed through the
stdout|stdin link to the main process. I wanted to keep our translations
out of the anaconda-yum script because of this so that's why I made the
PROGRESS_* mapping.
If they do get mangled I'm not sure what we can do about it.
I believe we could
use the 'codecs' module for correct utf-8 handling in
that case (we could e.g. wrap the Popen.stdout file object).
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic