From owner-svn-doc-head@freebsd.org Thu Jan 25 16:21:53 2018 Return-Path: Delivered-To: svn-doc-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0680EBD142; Thu, 25 Jan 2018 16:21:52 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 91FAD84C5E; Thu, 25 Jan 2018 16:21:52 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8CB1A736A; Thu, 25 Jan 2018 16:21:52 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0PGLqL0042040; Thu, 25 Jan 2018 16:21:52 GMT (envelope-from mat@FreeBSD.org) Received: (from mat@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0PGLqdK042039; Thu, 25 Jan 2018 16:21:52 GMT (envelope-from mat@FreeBSD.org) Message-Id: <201801251621.w0PGLqdK042039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mat set sender to mat@FreeBSD.org using -f From: Mathieu Arnold Date: Thu, 25 Jan 2018 16:21:52 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r51397 - head/en_US.ISO8859-1/books/porters-handbook/makefiles X-SVN-Group: doc-head X-SVN-Commit-Author: mat X-SVN-Commit-Paths: head/en_US.ISO8859-1/books/porters-handbook/makefiles X-SVN-Commit-Revision: 51397 X-SVN-Commit-Repository: doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jan 2018 16:21:53 -0000 Author: mat Date: Thu Jan 25 16:21:52 2018 New Revision: 51397 URL: https://svnweb.freebsd.org/changeset/doc/51397 Log: Rewrite the Conflicts Handling section. Sponsored by: Absolight Modified: head/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml Modified: head/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml Thu Jan 25 16:21:48 2018 (r51396) +++ head/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml Thu Jan 25 16:21:52 2018 (r51397) @@ -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. +