diff --git a/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml b/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml index 90b1ed5be9..2ebcba4c2b 100644 --- a/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml +++ b/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml @@ -7332,52 +7332,103 @@ DISTVERSION= 1.0 those other ports for a few months to cater for users who only update once in a while. - - <varname>CONFLICTS_INSTALL</varname> + + + CONFLICTS_INSTALL - If the package cannot coexist with other packages - (because of file conflicts, runtime incompatibilities, etc.), - list the other package names in - CONFLICTS_INSTALL. Use - shell globs like * and ? - here. Enumerate package names in there, not port names or - origins. Please make sure - that CONFLICTS_INSTALL does not match this - port's package itself. Otherwise enforcing its installation - with FORCE_PKG_REGISTER will no longer - work. CONFLICTS_INSTALL check is done - after the build stage and prior to the install stage. - + If the package cannot coexist with other + packages (because of file conflicts, runtime + incompatibilities, etc.). + CONFLICTS_INSTALL check is done after the + build stage and prior to the install stage. + - - <varname>CONFLICTS_BUILD</varname> + + CONFLICTS_BUILD - If the port cannot be built when other specific ports are - already installed, list the other port names in - CONFLICTS_BUILD. Use - shell globs like * and ? - here. Use package names, not port names or origins. - CONFLICTS_BUILD check is done prior to the - build stage. Build conflicts are not recorded in the - resulting package. - + + If the port cannot be built when other specific ports + are already installed. Build conflicts are not recorded + in the resulting package. + - - <varname>CONFLICTS</varname> + - 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 - CONFLICTS. use shell - globs like * and ? here. - Enumerate package names in there, not port names or - origins. Please make sure that - CONFLICTS does not match this - port's package itself. Otherwise enforcing its installation - with FORCE_PKG_REGISTER will no longer - work. CONFLICTS check is done prior to the - build stage and prior to the install stage. - + + CONFLICTS + + + If the port cannot be built if a certain port is + already installed and the resulting package cannot coexist + with the other package. CONFLICTS + check is done prior to the build stage and prior to the + install stage. + + + + + 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 + make -V PKGBASE. + + + Basic usage of + <varname>CONFLICTS<replaceable>*</replaceable></varname> + + dns/bind99 cannot be + installed if dns/bind910 is + present because they install same files. First gather the + package base to use: + + &prompt.user; make -C dns/bind99 -V PKGBASE +bind99 +&prompt.user; make -C dns/bind910 -V PKGBASE +bind910 + + Then add to the Makefile of dns/bind99: + + CONFLICTS_INSTALL= bind910 + + And add to the Makefile of dns/bind910: + + CONFLICTS_INSTALL= bind99 + + + 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 * and + ? to make sure all possible versions are + matched. + + + Using <varname>CONFLICTS<replaceable>*</replaceable></varname> With Globs. + + From versions from 2.0 and up-to 2.4.1_2, deskutils/gnotime used to install a + bundled version of databases/qof. + + To reflect this past, the Makefile of + databases/qof contains: + + CONFLICTS_INSTALL= gnotime-2.[0-3]* \ + gnotime-2.4.0* gnotime-2.4.1 \ + gnotime-2.4.1_[12] + + The first entry match versions 2.0 + through 2.3, the second all the revisions + of 2.4.0, the third the exact + 2.4.1 version, and the last the first and + second revisions of the 2.4.1 + version. + + deskutils/gnotime does not + have any conflicts line because its current version does not + conflict with anything else. +