Rewrite the Conflicts Handling section.
Sponsored by: Absolight
This commit is contained in:
parent
57f4a59962
commit
5a1f690c69
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=51397
1 changed files with 92 additions and 41 deletions
|
|
@ -7332,52 +7332,103 @@ DISTVERSION= 1.0</programlisting>
|
|||
those other ports for a few months to cater for users who only
|
||||
update once in a while.</para>
|
||||
|
||||
<sect2 xml:id="conflicts-conflicts_install">
|
||||
<title><varname>CONFLICTS_INSTALL</varname></title>
|
||||
<variablelist xml:id="conflicts-variables">
|
||||
<varlistentry xml:id="conclicts-conflicts_install">
|
||||
<term><varname>CONFLICTS_INSTALL</varname></term>
|
||||
|
||||
<para>If the package cannot coexist with other packages
|
||||
(because of file conflicts, runtime incompatibilities, etc.),
|
||||
list the other package names in
|
||||
<varname>CONFLICTS_INSTALL</varname>. Use
|
||||
shell globs like <literal>*</literal> and <literal>?</literal>
|
||||
here. Enumerate package names in there, not port names or
|
||||
origins. Please make sure
|
||||
that <varname>CONFLICTS_INSTALL</varname> does not match this
|
||||
port's package itself. Otherwise enforcing its installation
|
||||
with <varname>FORCE_PKG_REGISTER</varname> will no longer
|
||||
work. <varname>CONFLICTS_INSTALL</varname> check is done
|
||||
after the build stage and prior to the install stage.</para>
|
||||
</sect2>
|
||||
<listitem> <para>If the package cannot coexist with other
|
||||
packages (because of file conflicts, runtime
|
||||
incompatibilities, etc.).
|
||||
<varname>CONFLICTS_INSTALL</varname> check is done after the
|
||||
build stage and prior to the install stage.</para>
|
||||
</listitem> </varlistentry>
|
||||
|
||||
<sect2 xml:id="conflicts-conflicts_build">
|
||||
<title><varname>CONFLICTS_BUILD</varname></title>
|
||||
<varlistentry xml:id="conclicts-conflicts_build">
|
||||
<term><varname>CONFLICTS_BUILD</varname></term>
|
||||
|
||||
<para>If the port cannot be built when other specific ports are
|
||||
already installed, list the other port names in
|
||||
<varname>CONFLICTS_BUILD</varname>. Use
|
||||
shell globs like <literal>*</literal> and <literal>?</literal>
|
||||
here. Use package names, not port names or origins.
|
||||
<varname>CONFLICTS_BUILD</varname> check is done prior to the
|
||||
build stage. Build conflicts are not recorded in the
|
||||
resulting package.</para>
|
||||
</sect2>
|
||||
<listitem>
|
||||
<para>If the port cannot be built when other specific ports
|
||||
are already installed. Build conflicts are not recorded
|
||||
in the resulting package.</para>
|
||||
</listitem>
|
||||
|
||||
<sect2 xml:id="conflicts-conflicts">
|
||||
<title><varname>CONFLICTS</varname></title>
|
||||
</varlistentry>
|
||||
|
||||
<para>If the port cannot be built if a certain port is already
|
||||
installed and the resulting package cannot coexist with the
|
||||
other package, list the other package name in
|
||||
<varname>CONFLICTS</varname>. use shell
|
||||
globs like <literal>*</literal> and <literal>?</literal> here.
|
||||
Enumerate package names in there, not port names or
|
||||
origins. Please make sure that
|
||||
<varname>CONFLICTS</varname> does not match this
|
||||
port's package itself. Otherwise enforcing its installation
|
||||
with <varname>FORCE_PKG_REGISTER</varname> will no longer
|
||||
work. <varname>CONFLICTS</varname> check is done prior to the
|
||||
build stage and prior to the install stage.</para>
|
||||
</sect2>
|
||||
<varlistentry xml:id="conclicts-conflicts">
|
||||
<term><varname>CONFLICTS</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>If the port cannot be built if a certain port is
|
||||
already installed and the resulting package cannot coexist
|
||||
with the other package. <varname>CONFLICTS</varname>
|
||||
check is done prior to the build stage and prior to the
|
||||
install stage.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>The most common content of one of these variable is the
|
||||
package base of another port. The package base is the package
|
||||
name without the appended version, it can be obtained by running
|
||||
<command>make -V PKGBASE</command>.</para>
|
||||
|
||||
<example xml:id="conflicts-ex1">
|
||||
<title>Basic usage of
|
||||
<varname>CONFLICTS<replaceable>*</replaceable></varname></title>
|
||||
|
||||
<para><package role="port">dns/bind99</package> cannot be
|
||||
installed if <package role="port">dns/bind910</package> is
|
||||
present because they install same files. First gather the
|
||||
package base to use:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>make -C dns/bind99 -V PKGBASE</userinput>
|
||||
bind99
|
||||
&prompt.user; <userinput>make -C dns/bind910 -V PKGBASE</userinput>
|
||||
bind910</screen>
|
||||
|
||||
<para>Then add to the <filename>Makefile</filename> of <package
|
||||
role="port">dns/bind99</package>:</para>
|
||||
|
||||
<programlisting>CONFLICTS_INSTALL= bind910</programlisting>
|
||||
|
||||
<para>And add to the <filename>Makefile</filename> of <package
|
||||
role="port">dns/bind910</package>:</para>
|
||||
|
||||
<programlisting>CONFLICTS_INSTALL= bind99</programlisting>
|
||||
</example>
|
||||
|
||||
<para>Sometime, only some version of another port is incompatible,
|
||||
in this case, use the full package name, with the version, and
|
||||
use shell globs, like <literal>*</literal> and
|
||||
<literal>?</literal> to make sure all possible versions are
|
||||
matched.</para>
|
||||
|
||||
<example xml:id="conflicts-ex2">
|
||||
<title>Using <varname>CONFLICTS<replaceable>*</replaceable></varname> With Globs.</title>
|
||||
|
||||
<para>From versions from 2.0 and up-to 2.4.1_2, <package
|
||||
role="port">deskutils/gnotime</package> used to install a
|
||||
bundled version of <package
|
||||
role="port">databases/qof</package>.</para>
|
||||
|
||||
<para>To reflect this past, the <filename>Makefile</filename> of
|
||||
<package role="port">databases/qof</package> contains:</para>
|
||||
|
||||
<programlisting>CONFLICTS_INSTALL= gnotime-2.[0-3]* \
|
||||
gnotime-2.4.0* gnotime-2.4.1 \
|
||||
gnotime-2.4.1_[12]</programlisting>
|
||||
|
||||
<para>The first entry match versions <literal>2.0</literal>
|
||||
through <literal>2.3</literal>, the second all the revisions
|
||||
of <literal>2.4.0</literal>, the third the exact
|
||||
<literal>2.4.1</literal> version, and the last the first and
|
||||
second revisions of the <literal>2.4.1</literal>
|
||||
version.</para>
|
||||
|
||||
<para><package role="port">deskutils/gnotime</package> does not
|
||||
have any conflicts line because its current version does not
|
||||
conflict with anything else.</para>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="install">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue