diff options
authorMichał Górny <mgorny@gentoo.org>2017-09-06 11:59:41 +0200
committerGöktürk Yüksek <gokturk@gentoo.org>2017-09-25 00:28:38 -0400
commit0fb64d84c35060f60f767fa98553789f660a82f6 (patch)
treec3783206ed9fcabd5a23a837005ee80bdffb1c9c /general-concepts
parentebuild-writing/eapi: Replace nonfatal example with something correct (diff)
general-concepts/dependencies: Improve the description of blockers
Improve the text describing blockers to clearly explain the difference between soft and hard blockers, and how are they supposed to be used. Emphasize on using in RDEPEND.
Diffstat (limited to 'general-concepts')
1 files changed, 23 insertions, 8 deletions
diff --git a/general-concepts/dependencies/text.xml b/general-concepts/dependencies/text.xml
index 18fcefd..f83506a 100644
--- a/general-concepts/dependencies/text.xml
+++ b/general-concepts/dependencies/text.xml
@@ -209,19 +209,35 @@ asterisk. Also note that when selecting all versions in a specific
-Sometimes two packages cannot be installed in parallel. This is handled by
-blockers. A softblocker is specified as follows:
+When two packages (package slots, versions) can not be installed
+simultaneously, blockers can be used to expose such a conflict
+to the package manager.
+There are two kinds of blockers: soft blockers and hard blockers.
+<p>A soft blocker is defined using the following syntax:</p>
<codesample lang="ebuild">
-Portage will try to resolve this conflict automatically if possible.
-Sometimes we need to use a hardblocker to ensure correct emerge order.
-Those cannot be resolved by Portage and must be taken care of by the user.
-A hardblocker is specified as follows:
+The package manager will try to resolve this conflict automatically.
+The package blocked by a soft blocker can be uninstalled <e>after</e>
+installing the package blocking it. However, it exempts the common
+files from file collision checks. Soft blockers are usually used
+to solve file collisions between packages and are meaningful only
+in <c>RDEPEND</c>.
+If it is strictly necessary to resolve the blocker before the package
+is built (installed) or if automatic resolution is undesired,
+a hard blocker must be used instead. Hard blockers are not resolved
+automatically, and are expressed using the following syntax:
<codesample lang="ebuild">
@@ -229,8 +245,7 @@ RDEPEND="!!app-misc/foo"
-Hardblockers always take precedence over softblockers and need at least EAPI=2.
-Also note that blockers are usually <e>runtime</e> rather than buildtime.
+Hard blocks require EAPI 2 or newer.