diff options
author | 2020-01-21 11:58:34 +0100 | |
---|---|---|
committer | 2020-01-23 08:48:06 +0100 | |
commit | fc3dbac6583d211d9ad804d82f47c1bb50722ced (patch) | |
tree | a0af78368ea5c5bf93ad3bf96636774cd092ca9d /ebuild-maintenance | |
parent | ebuild-maintenance/removal: New chapter. (diff) | |
download | devmanual-fc3dbac6583d211d9ad804d82f47c1bb50722ced.tar.gz devmanual-fc3dbac6583d211d9ad804d82f47c1bb50722ced.tar.bz2 devmanual-fc3dbac6583d211d9ad804d82f47c1bb50722ced.zip |
ebuild-maintenance/collisions: New chapter.
Split off from ebuild-maintenance/maintenance-tasks.
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'ebuild-maintenance')
-rw-r--r-- | ebuild-maintenance/collisions/text.xml | 49 | ||||
-rw-r--r-- | ebuild-maintenance/maintenance-tasks/text.xml | 47 | ||||
-rw-r--r-- | ebuild-maintenance/text.xml | 1 |
3 files changed, 50 insertions, 47 deletions
diff --git a/ebuild-maintenance/collisions/text.xml b/ebuild-maintenance/collisions/text.xml new file mode 100644 index 0000000..6f5cec6 --- /dev/null +++ b/ebuild-maintenance/collisions/text.xml @@ -0,0 +1,49 @@ +<?xml version="1.0"?> +<guide self="ebuild-maintenance/collisions/"> +<chapter> +<title>Package Collisions</title> +<body> + +<p> +When you encounter a package that is trying to install files that are +already provided by another package (detectable with +<c>FEATURES=collision-protect</c> for example) you have to fix this +situation before you can commit the ebuild or, if you encounter this +with an existing package, file a bug about that package (see below for +a few exceptions). The reason file conflicts are critical is because +if "foo" provides the file <c>/usr/bin/example</c> and "bar" is +going to overwrite it, and later "bar" is unmerged, Portage will remove +<c>/usr/bin/example</c> and it is therefore likely it will break +"foo". +</p> + +<p> +The most obvious fix is to add a blocking dependency to both packages +that want to install that file, so they can't be installed at the same +time. But unless there are also other reasons for those packages to +block each other you should avoid this if possible and rather fix the +package, which could include one or more of the following steps: +</p> + +<ul> + <li>Make "foo" (R)DEPEND on "bar" and not install the conflicting + file.</li> + <li>Remove conflicting files from "foo" in <c>src_install</c> + or <c>pkg_preinst</c>.</li> + <li>Move conflicting files into a new subpackage and make "foo" and + "bar" both (R)DEPEND on that package.</li> + <li>Change the location where "foo" or "bar" installs conflicting + files.</li> +</ul> + +<p> +In some cases conflicting files can't be really fixed or aren't +critical, currently known exceptions are Perl module manpages +(overwriting the ones from Perl itself) and <c>CONFIG_PROTECT</c>'ed +files (which should still be fixed, but aren't critical as Portage +won't overwrite them). +</p> + +</body> +</chapter> +</guide> diff --git a/ebuild-maintenance/maintenance-tasks/text.xml b/ebuild-maintenance/maintenance-tasks/text.xml index 8a2c3fc..ccdefe9 100644 --- a/ebuild-maintenance/maintenance-tasks/text.xml +++ b/ebuild-maintenance/maintenance-tasks/text.xml @@ -12,53 +12,6 @@ developers may not be familiar with. </body> <section> -<title>Conflicting files</title> -<body> - -<p> -When you encounter a package that is trying to install files that are -already provided by another package (detectable with -<c>FEATURES=collision-protect</c> for example) you have to fix this -situation before you can commit the ebuild or, if you encounter this -with an existing package, file a bug about that package (see below for -a few exceptions). The reason file conflicts are critical is because -if "foo" provides the file <c>/usr/bin/example</c> and "bar" is -going to overwrite it, and later "bar" is unmerged, Portage will remove -<c>/usr/bin/example</c> and it is therefore likely it will break -"foo". -</p> - -<p> -The most obvious fix is to add a blocking dependency to both packages -that want to install that file, so they can't be installed at the same -time. But unless there are also other reasons for those packages to -block each other you should avoid this if possible and rather fix the -package, which could include one or more of the following steps: -</p> - -<ul> - <li>Make "foo" (R)DEPEND on "bar" and not install the conflicting - file.</li> - <li>Remove conflicting files from "foo" in <c>src_install</c> - or <c>pkg_preinst</c>.</li> - <li>Move conflicting files into a new subpackage and make "foo" and - "bar" both (R)DEPEND on that package.</li> - <li>Change the location where "foo" or "bar" installs conflicting - files.</li> -</ul> - -<p> -In some cases conflicting files can't be really fixed or aren't -critical, currently known exceptions are Perl module manpages -(overwriting the ones from Perl itself) and <c>CONFIG_PROTECT</c>'ed -files (which should still be fixed, but aren't critical as Portage -won't overwrite them). -</p> - -</body> -</section> - -<section> <title>Homepage unavailable</title> <body> diff --git a/ebuild-maintenance/text.xml b/ebuild-maintenance/text.xml index b298807..1917b07 100644 --- a/ebuild-maintenance/text.xml +++ b/ebuild-maintenance/text.xml @@ -20,6 +20,7 @@ This section covers various tasks related to working with ebuilds. <include href="new-ebuild/"/> <include href="git/"/> <include href="package-moves/"/> +<include href="collisions/"/> <include href="removal/"/> <include href="stabilization/"/> <include href="maintenance-tasks/"/> |