Commits

Michał Górny  committed a992897

Perform portdb matching in main process once again.

The portdb matches can fail in the subprocess, so perform them in the
main process.

  • Participants
  • Parent commits 77b3f4c

Comments (0)

Files changed (1)

File smartliverebuild/core.py

 						for vcs in inherits:
 							vcscl = getvcs(vcs, allowed, remote_only = opts.remote_only)
 							if vcscl is not None:
-								vcs = vcscl(pkg.atom.slotted, pkg.environ, opts)
+								vcs = vcscl(str(pkg.atom.slotted), pkg.environ, opts)
 
 								uri = str(vcs)
 								if uri not in rebuilds:
 						if opts.debug:
 							raise
 						out.err('Error enumerating %s: [%s] %s' % (pkg.id, e.__class__.__name__, e))
-						erraneous.append(pkg.id)
+						erraneous.append(str(pkg.atom.slotted))
 
 				while processes:
 					if loop_iter((opts.jobs == 1)):
 				for vcs in processes:
 					del vcs
 
-			# Check portdb for matches. Drop unmatched packages.
-			for p in list(packages):
-				if p not in pm.stack:
-					out.err('No packages matching %s in portdb, skipping.' % p)
-					packages.remove(p)
-
 			if cliargs:
 				nm = set(filt.nonmatched)
 				for i, el in enumerate(cliargs):
 		if opts.erraneous_merge and len(erraneous) > 0:
 			packages.extend(erraneous)
 
+		# Check portdb for matches. Drop unmatched packages.
+		for p in list(packages):
+			if pm.Atom(p) not in pm.stack:
+				out.err('No packages matching %s in portdb, skipping.' % p)
+				packages.remove(p)
+
 		if opts.quickpkg and len(packages) >= 1:
 			out.s1('Calling quickpkg to create %s%d%s binary packages ...' % (out.white, len(packages), out.s1reset))