diff options
author | 2023-01-14 10:26:48 +0100 | |
---|---|---|
committer | 2023-01-18 22:12:28 +0100 | |
commit | 9dabbe3b66b56d41cc618a096e35310f483e961b (patch) | |
tree | 2772d6c703e661a19a688e0554c618cc1d05cdcf | |
parent | Whitespace (diff) | |
download | pms-9dabbe3b66b56d41cc618a096e35310f483e961b.tar.gz pms-9dabbe3b66b56d41cc618a096e35310f483e961b.tar.bz2 pms-9dabbe3b66b56d41cc618a096e35310f483e961b.zip |
names.tex: Specify eclass names
Eclasses may export phase functions prefixed with their name, so
ideally we would follow the syntax of Bash (and POSIX) identifiers:
| A word consisting solely of underscores, digits, and alphabetics
| from the portable character set. The first character of a name is
| not a digit.
Because many existing eclasses have a dot or a hyphen in their name,
we follow usage in the Gentoo repository instead. (The only historical
exception to the above was 64-bit.eclass, not used since 2006 and
removed in 2009.)
An eclass must not be named "default", otherwise names of exported
functions would collide with default_<phase-function>.
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
-rw-r--r-- | eclasses.tex | 1 | ||||
-rw-r--r-- | names.tex | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/eclasses.tex b/eclasses.tex index 01692bc..0b9b5d4 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -10,6 +10,7 @@ hold. Eclasses must be located in the \t{eclass} directory in the top level of the repository---see section~\ref{sec:eclass-dir}. Each eclass is a single file named \t{<name>.eclass}, where \t{<name>} is the name of this eclass, used by \t{inherit} and \t{EXPORT_FUNCTIONS} among other places. +\t{<name>} must be a valid eclass name, as per section~\ref{sec:eclass-names}. \section{The inherit Command} \label{sec:inherit} @@ -18,6 +18,11 @@ syntax described in section~\ref{sec:version-spec}. \note{A package name does not include the category. The term \i{qualified package name} is used where a \t{category/package} pair is meant.} +\subsection{Eclass names} +\label{sec:eclass-names} +An eclass name may contain any of the characters [\t{A-Za-z0-9_.-}]. It must begin with a letter or +an underscore. In addition, an eclass cannot be named \t{default}. + \subsection{Slot names} \label{sec:slot-names} A slot name may contain any of the characters [\t{A-Za-z0-9+_.-}]. It must not begin with a |