--- /usr/bin/koji 2007-04-23 23:54:14.000000000 +0200 +++ koji 2007-04-24 12:03:33.000000000 +0200 @@ -40,8 +40,7 @@ import urllib import xmlrpclib import optparse -#for import-comps handler (currently disabled) -#from rhpl.comps import Comps +from yum.comps import Comps # fix OptionParser for python 2.3 (optparse verion 1.4.1+) # code taken from optparse version 1.5a2 @@ -891,49 +890,50 @@ print _("done") sys.stdout.flush() -# Currently disabled, needs porting to yum.comps -#def handle_import_comps(options, session, args): -# "Import group/package information from a comps file" -# usage = _("usage: %prog import-comps [options] ") -# usage += _("\n(Specify the --help global option for a list of other help options)") -# parser = OptionParser(usage=usage) -# parser.add_option("--force", action="store_true", help=_("force import")) -# (local_options, args) = parser.parse_args(args) -# if len(args) != 2: -# parser.error(_("Incorrect number of arguments")) -# assert False -# comps = Comps(args[0]) -# tag = args[1] -# force = local_options.force +def handle_import_comps(options, session, args): + "[admin] Import group/package information from a comps file" + usage = _("usage: %prog import-comps [options] ") + usage += _("\n(Specify the --help global option for a list of other help options)") + parser = OptionParser(usage=usage) + parser.add_option("--force", action="store_true", help=_("force import")) + (local_options, args) = parser.parse_args(args) + if len(args) != 2: + parser.error(_("Incorrect number of arguments")) + assert False + activate_session(session) + comps = Comps() + comps.add(args[0]) + tag = args[1] + force = local_options.force # #add all the groups first (so that group reqs do not break) -# for name,group in comps.groups.items(): -# print "Group: %s (%s)" % (group.id,name) -# session.groupListAdd(tag,group.id,force=force,display_name=name, -# is_default=bool(group.default), -# uservisible=bool(group.user_visible), -# description=group.description, -# langonly=group.langonly, + for group in comps.groups: + print "Group: %s (%s)" % (group.groupid,group.name) + session.groupListAdd(tag,group.groupid,force=force,display_name=group.name, + is_default=bool(group.default), + uservisible=bool(group.user_visible), + description=group.description, + langonly=group.langonly) +# no biarchonly in yum.comps # biarchonly=bool(group.biarchonly)) # #for k in ('id','biarchonly','langonly','user_visible','default','description'): # # print " %s: %s" %(k,getattr(group,k)) -# for name,group in comps.groups.items(): -# print "Group: %s (%s)" % (group.id,name) -# for pkg in group.pkgs.values(): -# pkg = pkg.copy() -# pkg_name = pkg['package'] -# if group.pkgConditionals.has_key(pkg_name): -# pkg['requires'] = group.pkgConditionals[pkg_name] + for group in comps.groups: + print "Group: %s (%s)" % (group.groupid,group.name) + for p in group.packages: + pkg = {} + pkg_name = p.__str__() + if group.conditional_packages.has_key(pkg_name): + pkg['requires'] = group.conditional_packages[pkg_name] +# no basearchonly attrib support in yum.comps # pkg['basearchonly'] = bool(pkg['baseonly']) -# del pkg['package'] -# del pkg['baseonly'] -# print " Package: %s: %r" % (pkg_name, pkg) -# session.groupPackageListAdd(tag,group.id,pkg_name,force=force, **pkg) + print " Package: %s: %r" % (pkg_name, pkg) + session.groupPackageListAdd(tag,group.groupid,pkg_name,force=force, **pkg) # for type,req in group.groups.values(): # print " Req: %s (%s)" % (req,type) -# session.groupReqListAdd(tag,group.id,req,force=force,type=type) +# session.groupReqListAdd(tag,group.groupid,req,force=force,type=type) # for type,req in group.metapkgs.values(): # print " Metapkg: %s (%s)" %(req,type) -# session.groupReqListAdd(tag,group.id,req,force=force,type=type,is_metapkg=True) +# session.groupReqListAdd(tag,group.groupid,req,force=force,type=type,is_metapkg=True) def handle_import_sig(options, session, args): "[admin] Import signatures into the database"