diff options
author | Ulrich Müller <ulm@gentoo.org> | 2020-01-20 17:32:43 +0100 |
---|---|---|
committer | Ulrich Müller <ulm@gentoo.org> | 2020-01-23 01:01:01 +0100 |
commit | 9e1a56d2ff7389708c55423037cb96570e4d52ed (patch) | |
tree | 256b3746bff7969f34508fc1610b08ebd79751b9 /general-concepts/dependencies/text.xml | |
parent | general-concepts/dependencies: Drop section on if-else USE blocks. (diff) | |
download | devmanual-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.xml | 40 |
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> |