From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 18C751382C5 for ; Sat, 24 Feb 2018 12:58:52 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id EBDB3E082F; Sat, 24 Feb 2018 12:58:50 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BADDBE0824 for ; Sat, 24 Feb 2018 12:58:50 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B4525335C2F for ; Sat, 24 Feb 2018 12:58:49 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id B5F9323C for ; Sat, 24 Feb 2018 12:58:46 +0000 (UTC) From: "Ulrich Müller" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" Message-ID: <1519476924.080a25221d9d5920738b046f2f3ccaf94a0c9ab6.ulm@gentoo> Subject: [gentoo-commits] proj/pms:eapi-7 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: dependencies.tex eapi-differences.tex ebuild-vars.tex eclasses.tex metadata-cache.tex X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: 080a25221d9d5920738b046f2f3ccaf94a0c9ab6 X-VCS-Branch: eapi-7 Date: Sat, 24 Feb 2018 12:58:46 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 50e56395-d06a-46d3-9672-c540a4a6935c X-Archives-Hash: 3ec9d551bd93eb6c61fe4ec4ebb606d2 commit: 080a25221d9d5920738b046f2f3ccaf94a0c9ab6 Author: Michał Górny gentoo org> AuthorDate: Wed Oct 4 16:19:16 2017 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Sat Feb 24 12:55:24 2018 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=080a2522 EAPI 7 has BDEPEND Bug: https://bugs.gentoo.org/317337 dependencies.tex | 33 ++++++++++++++++++++++++++++++--- eapi-differences.tex | 4 ++++ ebuild-vars.tex | 1 + eclasses.tex | 11 ++++++----- metadata-cache.tex | 3 ++- 5 files changed, 43 insertions(+), 9 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 51c67a4..e53cff6 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -15,7 +15,7 @@ None (ebuilds can rely only on the packages in the system~set) \\ \addlinespace \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, - \t{src_install} & \t{DEPEND} \\ + \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & \t{RDEPEND} (unless the particular dependency results in a circular dependency, in which @@ -38,6 +38,32 @@ There are three classes of dependencies supported by ebuilds: the package manager finishes the batch of installs. \end{compactitem} +\featurelabel{bdepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} +as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: + +\begin{compactitem} +\item \t{BDEPEND} build dependencies that are binary compatible with the native build system + (\t{CBUILD}). The ebuild is allowed to call binary executables installed by this kind of + dependency. + \item \t{DEPEND} build dependencies that are binary compatible with the system being built + (\t{CHOST}). The ebuild must not execute binary executables installed by this kind of + dependency. +\end{compactitem} + +\ChangeWhenAddingAnEAPI{7} +\begin{centertable}{EAPIs supporting additional dependency types} + \label{tab:depend-table} + \begin{tabular}{ll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6 & No \\ + 7 & Yes \\ + \bottomrule + \end{tabular} +\end{centertable} + Table~\ref{tab:phase-function-dependency-classes} lists dependencies which must be satisfied before a particular phase function is executed. @@ -51,7 +77,8 @@ The following elements are recognised in at least one class of specification. Al be surrounded on both sides by whitespace, except at the start and end of the string. \begin{compactitem} -\item A package dependency specification. Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}. +\item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, + \t{PDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{SRC_URI} and \t{HOMEPAGE}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -69,7 +96,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. - Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. + Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. \item \featurelabel{binding-any-of} A binding-any-of group, which has the same format as the any-of group, but begins with the string \t{||=} instead. Permitted in \t{DEPEND}, \t{RDEPEND} in EAPIs listed in table~\ref{tab:dep-groups} as supporting \t{||=} groups. diff --git a/eapi-differences.tex b/eapi-differences.tex index 0f6371b..8f7db7e 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -77,6 +77,9 @@ Bash version & \compactfeatureref{bash-version} & \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & Optionally & Yes & Yes & Yes & Yes \\ +\t{BDEPEND} & \compactfeatureref{bdepend} & + No & No & No & No & Yes \\ + Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & Yes & Yes & Yes & Yes & No \\ @@ -427,6 +430,7 @@ EAPI 7 is EAPI 6 with the following changes: \item \t{ROOT}, \t{EROOT}, \t{D}, \t{ED} no longer end with a trailing slash, \featureref{trailing-slash}. \item \t{econf} adds \t{-{}-with-sysroot}, \featureref{econf-options}. +\item \t{BDEPEND}, \featureref{bdepend}. \end{compactitem} \ChangeWhenAddingAnEAPI{7} diff --git a/ebuild-vars.tex b/ebuild-vars.tex index b871b3a..b873051 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -90,6 +90,7 @@ Ebuilds may define any of the following variables: for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for details. \item[PDEPEND] See section~\ref{sec:dependencies}. +\item[BDEPEND] See section~\ref{sec:dependencies}. \end{description} \ChangeWhenAddingAnEAPI{7} diff --git a/eclasses.tex b/eclasses.tex index fc72508..c00070d 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,12 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{IUSE_RUNTIME}, \t{REQUIRED_USE}, \t{DEPEND}, \t{RDEPEND} and \t{PDEPEND} variables -are handled specially when set by an eclass. They must be accumulated across eclasses, appending -the value set by each eclass to the resulting value after the previous one is loaded. Then the -eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is -done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +The \t{IUSE}, \t{IUSE_RUNTIME}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and +\t{PDEPEND} variables are handled specially when set by an eclass. They must be accumulated across +eclasses, appending the value set by each eclass to the resulting value after the previous one is +loaded. Then the eclass-defined value is appended to that defined by the ebuild. In the case of +\t{RDEPEND}, this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} +are applied. \section{EXPORT_FUNCTIONS} diff --git a/metadata-cache.tex b/metadata-cache.tex index 38e54a4..eb0a79a 100644 --- a/metadata-cache.tex +++ b/metadata-cache.tex @@ -29,7 +29,8 @@ order. Other lines may be present following these; their meanings are not define \item Use flags that this package requires (\t{REQUIRED_USE}). Blank in some EAPIs; see table~\ref{tab:optional-vars-table}. \item Post dependencies (\t{PDEPEND}) -\item Unused; previously used for old-style virtual \t{PROVIDE}. +\item Build-time dependencies for \t{CBUILD} host (\t{BDEPEND}). + Blank in some EAPIs; see table~\ref{tab:depend-table}. \item The ebuild API version to which this package conforms (\t{EAPI}) \item Properties (\t{PROPERTIES}). In some EAPIs, may optionally be blank, regardless of ebuild metadata; see table~\ref{tab:optional-vars-table}.