diff options
author | Michał Górny <mgorny@gentoo.org> | 2020-01-08 12:20:11 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2020-01-08 12:20:11 +0100 |
commit | a3c415c2ec65f0e5ab2b3cfc62ccd8a0cf42fdc1 (patch) | |
tree | 0a5a0521105e6c25bb54c9af51ccdcfc2a89b048 /dependencies.rst | |
parent | More on slots and subslots (diff) | |
download | policy-guide-a3c415c2ec65f0e5ab2b3cfc62ccd8a0cf42fdc1.tar.gz policy-guide-a3c415c2ec65f0e5ab2b3cfc62ccd8a0cf42fdc1.tar.bz2 policy-guide-a3c415c2ec65f0e5ab2b3cfc62ccd8a0cf42fdc1.zip |
dependencies: revbumps
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dependencies.rst')
-rw-r--r-- | dependencies.rst | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/dependencies.rst b/dependencies.rst index 69dd4f5..ff6756f 100644 --- a/dependencies.rst +++ b/dependencies.rst @@ -97,5 +97,46 @@ Opponents claim that the future use of subslots is not 100% predictable. They point out the case of Qt packages as an example. +.. index:: + single: dependency; dynamic + pair: dependency; revision bump + +Revision bumps on runtime dependency changes +-------------------------------------------- +:Source: Council +:Reference: https://projects.gentoo.org/council/meeting-logs/20151011-summary.txt +:Reported: no + +It must not be assumed that changes to package's dependencies will +be implicitly propagated to users who have installed the package +already. Whenever the change needs to be propagated (e.g. to prevent +a missing runtime dependency from being cleaned), the package revision +must be increased. + +This does not apply to build-time dependencies. + +*Rationale*: developers were historically relying on Portage's behavior +called *dynamic dependencies* which caused Portage to implicitly use +dependencies specified in matching ebuilds for installed packages. This +is non-portable and unreliable. Users using different package managers, +disabling the feature or simply missing the timeframe during which +the old ebuild version existed had experienced dependency graph breakage +and other problems due to it. + +The policy requires developers to explicitly account for that +possibility. Revision bumps ensure that users who installed the package +from the previous ebuild version rebuild it and get the updated +dependencies as a result. + +.. Note:: + + The dynamic dependency usage problem has a flip side. You can't rely + on in-place dependency changes *not* being propagated either. For + example, if you notice that a package linked to libfoo unnecessarily, + and decide to remove the dependency and code responsible for linking + to it in place, Portage may apply the former immediately even + if the package installed by the user still links to libfoo. + + .. _GLEP 62: https://www.gentoo.org/glep/glep-0062.html .. _Paludis: https://paludis.exherbo.org/ |