} rec.update( re.search( '(?P<name>[^/]+)-(?P<version>[\w\.]+)-(?P<release>[\w\.]+)\.(?P<arch>\w+).rpm$', file).groupdict()) rec['repo'] = repo(file) if rec['arch'] in ('src', 'nosrc'): rec['dist'] = rec['arch'] else: rec['dist'] = dist(file) return rec sys.stdout = os.fdopen(1, 'w', 0) con, cur = darlib.opendb() darlib.createtb(cur, 'pkg') #pkgcon.autocommit = 1 #list = [] #for arg in sys.argv[1:]: # if os.path.isfile(arg): # list += open(arg, 'r').readlines() # elif os.path.isdir(arg): # list += glob.glob(os.path.join(arg, '*/*.rpm')) # #if not list: # list += glob.glob(os.path.join(packagedir, '*/*.rpm')) for builder in ('dag', 'dries'): try:
import darlib packagedir = '/dar/packages' try: builder = sys.argv[1] except: builder = 'dag' def vercmp((e1, v1, r1), (e2, v2, r2)): return rpm.labelCompare((e1, v1, r1), (e2, v2, r2)) def filename(rec): return '%(parent)s/%(name)s-%(version)s-%(release)s.%(arch)s.rpm' % rec sys.stdout = os.fdopen(1, 'w', 0) con, cur = darlib.opendb() cur.execute('select distinct name, parent, builder from pkg order by parent, name') for name, parent, builder in cur.fetchall(): if parent.find('kernel') == 0: continue cur.execute('select name, arch, version, release, dist, repo, parent from pkg where name = "%s" and builder = "%s" and arch != "src" order by dist, version, release, arch' % (name, builder)) pkgs = cur.fetchall() A = {} obsoletelist = [] for A['name'], A['arch'], A['version'], A['release'], A['dist'], A['repo'], A['parent'] in pkgs: if A['arch'] == 'nosrc': continue if A['repo'] == 'test': continue B = {} for B['name'], B['arch'], B['version'], B['release'], B['dist'], B['repo'], B['parent'] in pkgs: if B['arch'] == 'nosrc': continue if B['repo'] == 'test': continue