Not sure how useful is this, but individual changes are probably ok, and the test RPM did install, reinstall and remove just fine. --- output.py | 7 +++++-- yum/history.py | 1 + yum/packages.py | 3 +++ yum/transactioninfo.py | 3 +++ 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/output.py b/output.py index 041910c..de77d69 100755 --- a/output.py +++ b/output.py @@ -1482,6 +1482,7 @@ class YumOutput: def _add_line(lines, data, a_wid, po, obsoletes=[]): (n,a,e,v,r) = po.pkgtup + n = to_unicode(n) evr = po.printVer() repoid = po.ui_from_repo pkgsize = float(po.size) @@ -1708,6 +1709,7 @@ Transaction Summary out += '\n%s:\n' % action for txmbr in pkglist: (n,a,e,v,r) = txmbr.pkgtup + n = to_unicode(n) msg = "%s.%s %s:%s-%s" % (n,a,e,v,r) msgs.append(msg) for num in (8, 7, 6, 5, 4, 3, 2): @@ -2894,7 +2896,7 @@ class DepSolveProgressCallBack: yb = self.ayum - prob_pkg = "%s (%s)" % (reqPo, reqPo.ui_from_repo) + prob_pkg = u"%s (%s)" % (reqPo, reqPo.ui_from_repo) msg = _('Package: %s') % (prob_pkg,) ui_req = formatRequire(needname, needversion, needflags) msg += _('\n Requires: %s') % (ui_req,) @@ -3211,13 +3213,14 @@ class YumCliRPMCallBack(RPMBaseCallback): def _out_event(self, te_current, te_total, ts_current, ts_total, percent, process, pkgname, wid1): if self.output and (sys.stdout.isatty() or te_current == te_total): + pkgname = to_unicode(pkgname) (fmt, wid1, wid2) = self._makefmt(percent, ts_current, ts_total, progress=sys.stdout.isatty(), pkgname=pkgname, wid1=wid1) msg = fmt % (utf8_width_fill(process, wid1, wid1), utf8_width_fill(pkgname, wid2, wid2)) if msg != self.lastmsg: - sys.stdout.write(to_unicode(msg)) + sys.stdout.write(msg) sys.stdout.flush() self.lastmsg = msg if te_current == te_total: diff --git a/yum/history.py b/yum/history.py index 6f60f54..6fc1ecd 100644 --- a/yum/history.py +++ b/yum/history.py @@ -726,6 +726,7 @@ class YumHistory: except (sqlite.OperationalError, sqlite.DatabaseError): self.conf.readable = False return None + self._conn.text_factory = str # Note that this is required due to changing the history DB in the # callback for removed txmbrs ... which happens inside the chroot, diff --git a/yum/packages.py b/yum/packages.py index cc1f1e3..247ca6d 100644 --- a/yum/packages.py +++ b/yum/packages.py @@ -330,6 +330,9 @@ class PackageObject(object): self.arch) envra = property(fget=lambda self: self._envra()) + def __unicode__(self): + return str(self).decode('UTF-8') + def __str__(self): return self.ui_envra diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py index d34f3a8..2cabfc9 100644 --- a/yum/transactioninfo.py +++ b/yum/transactioninfo.py @@ -864,6 +864,9 @@ class TransactionMember: def __hash__(self): return object.__hash__(self) + def __unicode__(self): + return str(self).decode('UTF-8') + def __str__(self): return "%s.%s %s:%s-%s - %s" % (self.name, self.arch, self.epoch, self.version, self.release, self.ts_state) -- 1.7.11.7 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel