From 3d7d269d4ba537c12c28b50aac9530bd0340f6b4 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Aug 08 2016 22:16:33 +0000 Subject: [PATCH 1/3] debug output --- diff --git a/builder/mergerepos b/builder/mergerepos index 25bf801..73da6fd 100755 --- a/builder/mergerepos +++ b/builder/mergerepos @@ -201,6 +201,9 @@ class RepoMerge(object): if pkg.repoid != other_repoid: # We found a rpm built from an srpm with the same name in a previous repo. # The previous repo takes precendence, so ignore the srpm found here. + sys.stderr.write('Package provided by earlier repo: %s ' + '(repos %r, %r)\n' + % (srpm_name, other_repoid, pkg.repoid)) continue else: # We're in the same repo, so compare srpm NVRs @@ -212,7 +215,14 @@ class RepoMerge(object): # The current package we're processing is from a newer srpm than the # existing srpm in the dict, so update the dict include_srpms[srpm_name] = (pkg.sourcerpm, pkg.repoid) + sys.stderr.write('Replacing older source nvr: ' + '%s > %s\n' % (other_srpm, pkg.sourcerpm)) + elif cmp < 0: + sys.stderr.write('Ignoring older source nvr: ' + '%s < %s\n' % (other_srpm, pkg.sourcerpm)) elif self.blocked.has_key(srpm_name): + print >> sys.stderr, 'Ignoring blocked package: %s\n' \ + % pkg.sourcerpm continue else: include_srpms[srpm_name] = (pkg.sourcerpm, pkg.repoid) From 91b6b16d582f63f9223659531d7a3f9350e0c13d Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Aug 08 2016 22:16:33 +0000 Subject: [PATCH 2/3] more debugging output in mergerepos --- diff --git a/builder/mergerepos b/builder/mergerepos index 73da6fd..f623be5 100755 --- a/builder/mergerepos +++ b/builder/mergerepos @@ -216,10 +216,11 @@ class RepoMerge(object): # existing srpm in the dict, so update the dict include_srpms[srpm_name] = (pkg.sourcerpm, pkg.repoid) sys.stderr.write('Replacing older source nvr: ' - '%s > %s\n' % (other_srpm, pkg.sourcerpm)) + '%s > %s\n' % (pkg.sourcerpm, other_srpm)) elif cmp < 0: sys.stderr.write('Ignoring older source nvr: ' - '%s < %s\n' % (other_srpm, pkg.sourcerpm)) + '%s < %s\n' % (pkg.sourcerpm, other_srpm)) + # otherwise same, so we already have it elif self.blocked.has_key(srpm_name): print >> sys.stderr, 'Ignoring blocked package: %s\n' \ % pkg.sourcerpm @@ -236,12 +237,18 @@ class RepoMerge(object): srpm_name, ver, rel, epoch, arch = rpmUtils.miscutils.splitFilename(pkg.sourcerpm) incl_srpm, incl_repoid = include_srpms.get(srpm_name, (None, None)) pkg_nvra = str(pkg) - if incl_srpm == pkg.sourcerpm and not seen_rpms.has_key(pkg_nvra): + if seen_rpms.has_key(pkg_nvra): + sys.stderr.write('Duplicate rpm: %s\n' % pkg_nvra) + elif incl_srpm is None: + sys.stderr.write('Excluding %s (%s is blocked)\n' + % (pkg_nvra, srpm_name)) + repo.sack.delPackage(pkg) + elif incl_srpm == pkg.sourcerpm: origins.write('%s\t%s\n' % (pkg_nvra, repo.urls[0])) seen_rpms[pkg_nvra] = 1 else: - # Either the srpm is in the block list, it is not built from the srpm we - # identified above, or it's a duplicate, so exclude it + sys.stderr.write('Excluding %s (wrong srpm version ' + '%s != %s)' % (pkg_nvra, incl_srpm, pkg.sourcerpm)) repo.sack.delPackage(pkg) origins.close() From 4b62f3c2dd7d0ffdd493af22fba9f1795f0b20c2 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Aug 08 2016 22:16:33 +0000 Subject: [PATCH 3/3] clean up output --- diff --git a/builder/mergerepos b/builder/mergerepos index f623be5..1f486d6 100755 --- a/builder/mergerepos +++ b/builder/mergerepos @@ -186,6 +186,7 @@ class RepoMerge(object): include_srpms = {} # calculating what "builds" (srpms) we're allowing into the repo + seen_srpms = {} for reponum, repo in enumerate(repos): for pkg in repo.sack: if reponum == 0 and not pkg.basepath: @@ -195,15 +196,20 @@ class RepoMerge(object): #force the pkg object to report a relative location loc = """\n""" % yum.misc.to_xml(pkg.remote_path, attrib=True) pkg._return_remote_location = make_const_func(loc) + if pkg.sourcerpm in seen_srpms: + # we're just looking at sourcerpms this pass and we've + # already seen this one + continue + seen_srpms[pkg.sourcerpm] = 1 srpm_name, ver, rel, epoch, arch = rpmUtils.miscutils.splitFilename(pkg.sourcerpm) if include_srpms.has_key(srpm_name): other_srpm, other_repoid = include_srpms[srpm_name] if pkg.repoid != other_repoid: # We found a rpm built from an srpm with the same name in a previous repo. # The previous repo takes precendence, so ignore the srpm found here. - sys.stderr.write('Package provided by earlier repo: %s ' - '(repos %r, %r)\n' - % (srpm_name, other_repoid, pkg.repoid)) + sys.stderr.write('Package %s already provided by repo %s' + ' (at %s in repo %s)\n' + % (srpm_name, other_repoid, str(pkg), pkg.repoid)) continue else: # We're in the same repo, so compare srpm NVRs @@ -248,7 +254,7 @@ class RepoMerge(object): seen_rpms[pkg_nvra] = 1 else: sys.stderr.write('Excluding %s (wrong srpm version ' - '%s != %s)' % (pkg_nvra, incl_srpm, pkg.sourcerpm)) + '%s != %s)\n' % (pkg_nvra, pkg.sourcerpm, incl_srpm)) repo.sack.delPackage(pkg) origins.close()