add_pkg_deps: use dep priority to ignore blockers
(cherry picked from commit dbb89fde73049da97fdbfa157618977317440db5)
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 22937aa..bb96da6 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -1373,20 +1373,17 @@
 			(depend_root, edepend["DEPEND"],
 				self._priority(buildtime=True,
 				optional=(pkg.built or ignore_build_time_deps),
-				ignored=ignore_build_time_deps),
-				pkg.built or ignore_build_time_deps),
+				ignored=ignore_build_time_deps)),
 			(myroot, edepend["RDEPEND"],
-				self._priority(runtime=True),
-				False),
+				self._priority(runtime=True)),
 			(myroot, edepend["PDEPEND"],
-				self._priority(runtime_post=True),
-				False)
+				self._priority(runtime_post=True))
 		)
 
 		debug = "--debug" in self._frozen_config.myopts
 		strict = mytype != "installed"
 
-		for dep_root, dep_string, dep_priority, ignore_blockers in deps:
+		for dep_root, dep_string, dep_priority in deps:
 				if not dep_string:
 					continue
 				if debug:
@@ -1437,14 +1434,14 @@
 
 				if not self._add_pkg_dep_string(
 					pkg, dep_root, dep_priority, dep_string,
-					allow_unsatisfied, ignore_blockers=ignore_blockers):
+					allow_unsatisfied):
 					return 0
 
 		self._dynamic_config._traversed_pkg_deps.add(pkg)
 		return 1
 
 	def _add_pkg_dep_string(self, pkg, dep_root, dep_priority, dep_string,
-		allow_unsatisfied, ignore_blockers=False):
+		allow_unsatisfied):
 		_autounmask_backup = self._dynamic_config._autounmask
 		if dep_priority.optional or dep_priority.ignored:
 			# Temporarily disable autounmask for deps that
@@ -1453,12 +1450,12 @@
 		try:
 			return self._wrapped_add_pkg_dep_string(
 				pkg, dep_root, dep_priority, dep_string,
-				allow_unsatisfied, ignore_blockers=ignore_blockers)
+				allow_unsatisfied)
 		finally:
 			self._dynamic_config._autounmask = _autounmask_backup
 
 	def _wrapped_add_pkg_dep_string(self, pkg, dep_root, dep_priority,
-		dep_string, allow_unsatisfied, ignore_blockers=False):
+		dep_string, allow_unsatisfied):
 		depth = pkg.depth + 1
 		deep = self._dynamic_config.myparams.get("deep", 0)
 		recurse_satisfied = deep is True or depth <= deep
@@ -1505,7 +1502,8 @@
 			is_virt = hasattr(atom, '_orig_atom')
 			atom = getattr(atom, '_orig_atom', atom)
 
-			if ignore_blockers and atom.blocker:
+			if atom.blocker and \
+				(dep_priority.optional or dep_priority.ignored):
 				# For --with-bdeps, ignore build-time only blockers
 				# that originate from built packages.
 				continue