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 DE6C51396D1 for ; Sun, 1 Oct 2017 07:11:55 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A8721E0C04; Sun, 1 Oct 2017 07:11:54 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (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 780B8E0C04 for ; Sun, 1 Oct 2017 07:11:54 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (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 12287341834 for ; Sun, 1 Oct 2017 07:11:53 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7B4789095 for ; Sun, 1 Oct 2017 07:11:51 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1506841900.9cf9fc132e3d7f4431ab3db43555bd5c123d692d.mgorny@gentoo> Subject: [gentoo-commits] proj/pms:eapi-7 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: dependencies.tex X-VCS-Directories: / X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 9cf9fc132e3d7f4431ab3db43555bd5c123d692d X-VCS-Branch: eapi-7 Date: Sun, 1 Oct 2017 07:11:51 +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: 0c11a00d-e386-4d62-9daa-190e2844f059 X-Archives-Hash: a245ee974053101c22600ec602389685 commit: 9cf9fc132e3d7f4431ab3db43555bd5c123d692d Author: Michał Górny gentoo org> AuthorDate: Sun Oct 1 07:07:48 2017 +0000 Commit: Michał Górny gentoo org> CommitDate: Sun Oct 1 07:11:40 2017 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=9cf9fc13 [WIP] EAPI 7 forbids empty dependency groups. [TODO: add label & update eapi-differences] Bug: https://bugs.gentoo.org/632000 dependencies.tex | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index dca4a21..0cad80e 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -208,6 +208,8 @@ In particular, note that whitespace is not optional. In an all-of group, all of the child elements must be matched. +The behavior for an empty group is defined in table~\ref{tab:depend-group-empty}. + \subsection{USE-conditional dependency specifications} In a use-conditional group, if the associated use flag is enabled (or disabled if it has an @@ -216,6 +218,8 @@ exclamation mark prefix), all of the child elements must be matched. It is an error for a flag to be used if it is not included in \t{IUSE_EFFECTIVE} as described in section~\ref{sec:use-iuse-handling}. +The behavior for an empty group is defined in table~\ref{tab:depend-group-empty}. + \subsection{Any-of dependency specifications} Any use-conditional group that is an immediate child of an any-of group, if not enabled (disabled @@ -225,7 +229,7 @@ for match purposes. In an any-of group, at least one immediate child element must be matched. A blocker is considered to be matched if its associated package dependency specification is not matched. -An empty any-of group counts as being matched. +The behavior for an empty group is defined in table~\ref{tab:depend-group-empty}. \subsection{Exactly-one-of dependency specifications} @@ -235,7 +239,7 @@ exactly-one-of group for match purposes. In an exactly-one-of group, exactly one immediate child element must be matched. -An empty exactly-one-of group counts as being matched. +The behavior for an empty group is defined in table~\ref{tab:depend-group-empty}. \subsection{At-most-one-of dependency specifications} @@ -245,6 +249,29 @@ at-most-one-of group for match purposes. In an at-most-one-of group, at most one immediate child element must be matched. +The behavior for an empty group is defined in table~\ref{tab:depend-group-empty}. + +\ChangeWhenAddingAnEAPI{7} +\begin{centertable}{EAPI-specific empty group behavior} + \label{tab:depend-group-empty} + \begin{tabular}{llllll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{5}{c}{\textbf{Empty group counts as…}} \\ + & + \multicolumn{1}{c}{\textbf{all-of}} & + \multicolumn{1}{c}{\textbf{use-conditional}} & + \multicolumn{1}{c}{\textbf{any-of}} & + \multicolumn{1}{c}{\textbf{exactly-one-of}} & + \multicolumn{1}{c}{\textbf{at-most-one-of}} \\ + \midrule + 0, 1, 2, 3, 4 & undefined & undefined & matched & matched & n/a \\ + 5, 6 & undefined & undefined & matched & matched & matched \\ + 7 & forbidden & forbidden & forbidden & forbidden & forbidden \\ + \bottomrule + \end{tabular} +\end{centertable} + \subsection{Package dependency specifications} A package dependency can be in one of the following base formats. A package manager must warn or