On Fri, 2011-11-04 at 16:04 +0100, Zdeněk Pavlas wrote: > --- > yum-debug-restore.py | 10 +++++++++- > 1 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/yum-debug-restore.py b/yum-debug-restore.py > index fd95741..27deea3 100755 > --- a/yum-debug-restore.py > +++ b/yum-debug-restore.py > @@ -107,11 +107,14 @@ def pkg_data2list(yb, opkgtups, opkgmaps, > install_latest, ignore_arch): > ret = [] > npkgtups = set() > npkgmaps = {} > + installonly = set(yb.conf.installonlypkgs) > for po in sorted(yb.rpmdb.returnPackages()): > arch = po.arch > if ignore_arch: > arch = None > - if False: pass > + if po.name in installonly:
The "if False:" thing is just a way so that you can move/add sections to the conditional without having to change anything from "if" to "elif" ... and so all the conditionals line up. > + if not po.pkgtup in opkgtups: > + ret.append(("remove", pkgtup2str(*po.pkgtup))) The * is wrong here ... we also generally don't do it for non-function arguments as RHEL-5 python is too old to accept that. > elif (po.name, arch) not in opkgmaps: > ret.append(("remove", str(po))) > elif po.pkgtup not in opkgtups: > @@ -129,6 +132,8 @@ def pkg_data2list(yb, opkgtups, opkgmaps, install_latest, > ignore_arch): > npkgmaps[(po.name, None)] = po > > for name, arch in sorted(opkgmaps): > + if name in installonly: > + continue Doesn't this mean it doesn't install any installonly packages? > if ignore_arch and arch is not None: > continue > if (name, arch) in npkgmaps: > @@ -139,6 +144,9 @@ def pkg_data2list(yb, opkgtups, opkgmaps, install_latest, > ignore_arch): > ret.append(("install", "%s.%s" % (name, arch))) > else: > ret.append(("install", pkgtup2str(opkgmaps[(name, arch)]))) > + for pkgtup in opkgtups: > + if pkgtup[0] in installonly and not pkgtup in npkgtups: > + ret.append(("remove", pkgtup2str(pkgtup))) > return ret > > def main(): _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel