aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2020-01-20 17:32:43 +0100
committerUlrich Müller <ulm@gentoo.org>2020-01-23 01:01:01 +0100
commit9e1a56d2ff7389708c55423037cb96570e4d52ed (patch)
tree256b3746bff7969f34508fc1610b08ebd79751b9 /general-concepts/dependencies/text.xml
parentgeneral-concepts/dependencies: Drop section on if-else USE blocks. (diff)
downloaddevmanual-9e1a56d2ff7389708c55423037cb96570e4d52ed.tar.gz
devmanual-9e1a56d2ff7389708c55423037cb96570e4d52ed.tar.bz2
devmanual-9e1a56d2ff7389708c55423037cb96570e4d52ed.zip
ebuild-writing/eapi: Move EAPI=2 information to other sections.
- doman language support: incorporated into function-reference/install-functions - Blockers incorporated into general-concepts/dependencies (also say "weak" and "strong" blockers instead of "soft" and "hard", in order to agree with the terms used in PMS) - USE dependencies: already in general-concepts/dependencies - SRC_URI arrows: incorporated into ebuild-writing/variables - src_prepare: already in ebuild-writing/functions/src_prepare - src_configure: already in ebuild-writing/functions/src_configure - Execution order: already in ebuild-writing/functions - Default phase functions moved to ebuild-writing/functions Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'general-concepts/dependencies/text.xml')
-rw-r--r--general-concepts/dependencies/text.xml40
1 files changed, 25 insertions, 15 deletions
diff --git a/general-concepts/dependencies/text.xml b/general-concepts/dependencies/text.xml
index 4e3a84e..7992571 100644
--- a/general-concepts/dependencies/text.xml
+++ b/general-concepts/dependencies/text.xml
@@ -218,39 +218,48 @@ to the package manager.
</p>
<p>
-The following description applies to all EAPIs starting with EAPI 2.
+There are two kinds of blockers: <e>weak blockers</e> and <e>strong
+blockers</e>.
</p>
<p>
-There are two kinds of blockers: soft blockers and hard blockers.
+A weak blocker is defined using the following syntax:
</p>
-<p>A soft blocker is defined using the following syntax:</p>
-
<codesample lang="ebuild">
RDEPEND="!app-misc/foo"
</codesample>
<p>
The package manager will try to resolve this conflict automatically.
-The package blocked by a soft blocker can be uninstalled <e>after</e>
+The package blocked by a weak 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
+files from file collision checks. Weak blockers are usually used
to solve file collisions between packages and are meaningful only
in <c>RDEPEND</c>.
</p>
+<p>
+More specifically, installation of the newer package may overwrite any
+colliding files that belong to the older package that is explicitly blocked.
+When such file collisions occur, the colliding files cease to belong to the
+older package, and they remain installed after the older package is eventually
+uninstalled. The older package is uninstalled only after any newer blocking
+packages have been merged on top of it.
+</p>
+
<warning>
-Soft blockers that are pure <c>DEPEND</c> <e>do not work correctly</e>.
+Weak blockers that are pure <c>DEPEND</c> <e>do not work correctly</e>.
While Portage seemingly queues the package for removal, it <e>does not</e>
exempt their contents from file collision checks. Always include your
-soft blockers in <c>RDEPEND</c>!
+weak blockers in <c>RDEPEND</c>!
</warning>
<p>
If it is strictly necessary to resolve the blocker before the package
-is built (installed), a hard blocker must be used instead. Hard blockers
-are expressed using the following syntax:
+is built (installed), a strong blocker must be used instead. In this case,
+temporary simultaneous installation of the conflicting packages is not allowed.
+Strong blockers are expressed using the following syntax:
</p>
<codesample lang="ebuild">
@@ -258,7 +267,7 @@ RDEPEND="!!app-misc/foo"
</codesample>
<p>
-Hard blockers apply accordingly to the dependency type defining them.
+Strong blockers apply accordingly to the dependency type defining them.
Blockers defined in <c>RDEPEND</c> are enforced as long as the package
is installed (but do not prevent building binary packages). Blockers
defined purely in <c>DEPEND</c> are enforced only for building
@@ -266,6 +275,11 @@ the package from source, and may not apply once the package is installed
or when it is installed from a binary package.
</p>
+<note>
+If both weak and strong blockers match a given package, the strong blocker
+takes precedence.
+</note>
+
<p>
Specific versions can also be blocked:
</p>
@@ -464,10 +478,6 @@ flag is not necessary if and only if all of the following hold:
<body>
<p>
-In order to use built with use dependencies you must specify <c>EAPI=2</c>.
-</p>
-
-<p>
Available specifiers are:
</p>