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 524FD1396D0 for ; Mon, 2 Oct 2017 16:52:49 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id AB7D82BC003; Mon, 2 Oct 2017 16:52:48 +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 730F92BC003 for ; Mon, 2 Oct 2017 16:52:48 +0000 (UTC) Received: from localhost.localdomain (d202-252.icpnet.pl [109.173.202.252]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 17B1A34165A; Mon, 2 Oct 2017 16:52:46 +0000 (UTC) From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= To: gentoo-pms@lists.gentoo.org Cc: =?UTF-8?q?Ulrich=20M=C3=BCller?= Subject: [gentoo-pms] [PATCH] Ban empty groups in dependency specifications. Date: Mon, 2 Oct 2017 18:52:41 +0200 Message-Id: <20171002165241.22827-1-mgorny@gentoo.org> X-Mailer: git-send-email 2.14.2 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Package Manager Specification discussions X-BeenThere: gentoo-pms@gentoo.org X-BeenThere: gentoo-pms@lists.gentoo.org Reply-To: gentoo-pms@lists.gentoo.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Archives-Salt: 83cb10e0-f5e4-40ef-9637-598c511d840e X-Archives-Hash: a612bdc64f7aa3e556b129a67493da1b From: Ulrich Müller The specification for empty groups was originally added to match historical Portage behaviour. However, Portage was changed in 2011 to treat empty dependency groups as an error, therefore ebuilds cannot rely on any definite behaviour. Consequently, empty groups are not used by any ebuild or eclass in the Gentoo repository. Note that the explicit handling for empty groups is still retained for the case of implicit empty groups resulting from collapsing USE conditionals in any-of groups et al. This is a retroactive change for all EAPIs. Bug: https://bugs.gentoo.org/370565 --- dependencies.tex | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index 1aea135..ed3ea01 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -60,33 +60,33 @@ be surrounded on both sides by whitespace, except at the start and end of the st \item A use flag name, optionally preceded by an exclamation mark. Permitted in \t{REQUIRED_USE}. \item A simple string. Permitted in \t{RESTRICT} and \t{PROPERTIES}. \item An all-of group, which consists of an open parenthesis, followed by whitespace, - followed by zero or more of (a dependency item of any kind followed by whitespace), followed + followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: - \t{all-of} \t{::=} \t{'(' whitespace (item whitespace)* ')'}. Permitted in all specification + \t{all-of} \t{::=} \t{'(' whitespace (item whitespace)+ ')'}. Permitted in all specification style variables. \item An any-of group, which consists of the string \t{||}, followed by whitespace, - followed by an open parenthesis, followed by whitespace, followed by zero or more + 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)* ')'}. + More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. \item An exactly-one-of group, which consists of the string \t{\textasciicircum\textasciicircum}, followed by whitespace, followed by an open parenthesis, followed by whitespace, followed by - zero or more of (a dependency item of any kind followed by whitespace), followed by a close + one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{exactly-one-of} \t{::=} \t{'\textasciicircum\textasciicircum' - whitespace '(' whitespace (item whitespace)* ')'}. + whitespace '(' whitespace (item whitespace)+ ')'}. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which consists of the string \t{??}, followed by whitespace, followed by an open parenthesis, followed by whitespace, followed by - zero or more of (a dependency item of any kind followed by whitespace), followed by a close + one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{at-most-one-of} \t{::=} \t{'??'\ whitespace '(' whitespace - (item whitespace)* ')'}. Permitted in \t{REQUIRED_USE} in EAPIs listed in + (item whitespace)+ ')'}. Permitted in \t{REQUIRED_USE} in EAPIs listed in table~\ref{tab:at-most-one-of-table} as supporting \t{REQUIRED_USE ??}\ groups. \item A use-conditional group, which consists of an optional exclamation mark, followed by a use flag name, followed by a question mark, followed by whitespace, followed by - an open parenthesis, followed by whitespace, followed by zero or more of (a dependency item + 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{use-conditional} \t{::=} \t{'!'?\ flag-name '?'\ whitespace '(' whitespace (item - whitespace)* ')'}. + whitespace)+ ')'}. Permitted in all specification style variables. \end{compactitem} -- 2.14.2