* [gentoo-pms] [PATCH] Ebuilds may trust the initial working directory.
@ 2008-12-12 16:07 Ciaran McCreesh
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES Ciaran McCreesh
0 siblings, 1 reply; 5+ messages in thread
From: Ciaran McCreesh @ 2008-12-12 16:07 UTC (permalink / raw
To: gentoo-pms; +Cc: Ciaran McCreesh
See Council meeting on 20081211.
---
ebuild-functions.tex | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 98e3fd4..2c094b0 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -15,7 +15,9 @@ users.
Some functions may assume that their initial working directory is set to a particular location;
these are noted below. If no initial working directory is mandated, it may be set to anything and
-the ebuild must not rely upon a particular location for it.
+the ebuild must not rely upon a particular location for it. The ebuild \e{may} assume that the
+initial working directory for any phase is a trusted location that may only be written to by a
+privileged user and group.
The environment for functions run outside of the build sequence (that is, \t{pkg\_config},
\t{pkg\_info}, \t{pkg\_prerm} and \t{pkg\_postrm}) must be the environment used for the build of the
--
1.6.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-pms] [PATCH] Add DEFINED_PHASES.
2008-12-12 16:07 [gentoo-pms] [PATCH] Ebuilds may trust the initial working directory Ciaran McCreesh
@ 2008-12-12 16:07 ` Ciaran McCreesh
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Profiles eapi file Ciaran McCreesh
2008-12-12 21:41 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES David Leverton
0 siblings, 2 replies; 5+ messages in thread
From: Ciaran McCreesh @ 2008-12-12 16:07 UTC (permalink / raw
To: gentoo-pms; +Cc: Ciaran McCreesh
See Council meeting on 20081211.
---
ebuild-vars.tex | 14 ++++++++++++++
tree-layout.tex | 1 +
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index e4fd6d1..6704898 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -209,6 +209,20 @@ of the ebuild's metadata:
\note Thus, by extension of section~\ref{metadata-invariance}, \t{inherit} may not be used
conditionally, except upon constant conditions.
+The following are special variables defined by the package manager for internal use and may or may
+not be exported to the ebuild environment:
+
+\begin{description}
+\item[DEFINED\_PHASES] A space separated arbitrarily ordered list of phase names (e.g. \t{configure
+setup unpack}) whose phase functions are defined by the ebuild or an eclass inherited by the ebuild.
+If no phase functions are defined, a single hyphen is used instead of an empty string. Package
+managers may not rely upon the metadata cache having this variable defined, and must treat an empty
+string as ``this information is not available``.
+\end{description}
+
+\note Thus, by extension of section~\ref{metadata-invariance}, phase functions must not be defined
+based upon any variant condition.
+
% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
%%% Local Variables:
diff --git a/tree-layout.tex b/tree-layout.tex
index 3166a03..5c01443 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -263,6 +263,7 @@ order. Other lines may be present following these; their meanings are not define
\item Old-style virtuals provided by this package (\t{PROVIDE})
\item The ebuild API version to which this package conforms (\t{EAPI})
\item Properties (\t{PROPERTIES}). May optionally be blank, regardless of ebuild metadata.
+\item Defined phases (\t{DEFINED\_PHASES}). May optionally be blank, regardless of ebuild metadata.
\item Blank lines to pad the file to 22 lines long
\end{compactenum}
--
1.6.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-pms] [PATCH] Profiles eapi file.
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES Ciaran McCreesh
@ 2008-12-12 16:07 ` Ciaran McCreesh
2008-12-12 21:45 ` David Leverton
2008-12-12 21:41 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES David Leverton
1 sibling, 1 reply; 5+ messages in thread
From: Ciaran McCreesh @ 2008-12-12 16:07 UTC (permalink / raw
To: gentoo-pms; +Cc: Ciaran McCreesh
See Council meeting on 20081211.
---
introduction.tex | 2 ++
profiles.tex | 10 +++++++++-
tree-layout.tex | 12 +++++++++---
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/introduction.tex b/introduction.tex
index 58b6415..056f515 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -77,6 +77,8 @@ must not use any metadata generated from a package with an unrecognised EAPI.
The package manager must not attempt to perform any kind of comparison test other than equality upon
EAPIs.
+EAPIs are also used for profile directories, as described in section~\ref{profile-eapi}.
+
\subsection{Reserved EAPIs}
\begin{compactitem}
diff --git a/profiles.tex b/profiles.tex
index 241cd17..86932ca 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -14,6 +14,14 @@ follow a few basic conventions as regards inheritance and format; these are desc
section. It may also contain any number of subdirectories containing other profiles.
\section{Files that make up a profile}
+
+\subsection{The eapi file}
+\label{profile-eapi}
+A profile directory may contain an \t{eapi} file. This file, if it exists, must contain a single line
+with the name of an EAPI. This specifies the EAPI to use when handling the directory in question; a
+package manager must not attempt to use any profile using a directory which requires an EAPI it does
+not support. If no \t{eapi} file is present, EAPI 0 shall be used.
+
\subsection{The parent file}
A profile may contain a \t{parent} file. Each line must contain a relative path to another profile
which will be considered as one of this profile's parents. Any settings from the parent are
@@ -113,7 +121,7 @@ The \t{package.use} file may be used by the package manager to override the defa
by \t{make.defaults} on a per package basis. The format is to have a package dependency specification,
and then a space delimited list of USE flags to enable. A USE flag in the form of \t{-flag} indicates
that the package should have the USE flag disabled. The package dependency specification is limited to
-the forms defined by \t{EAPI 0}.
+the forms defined by the directory's EAPI.
\subsection{USE masking and forcing}
\label{use-masking}
diff --git a/tree-layout.tex b/tree-layout.tex
index 5c01443..dc860d6 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -90,6 +90,11 @@ character are treated as comments, whilst blank lines are ignored. All
contents of this directory, with the exception of \t{repo\_name}, are
optional.
+The profiles directory may contain an \t{eapi} file. This file, if it exists, must contain a single
+line with the name of an EAPI. This specifies the EAPI to use when handling the profiles directory;
+a package manager must not attempt to use any repository whose profile directory requires an EAPI it
+does not support. If no \t{eapi} file is present, EAPI 0 shall be used.
+
If the repository is not intended to be stand-alone, the contents of these files are to be taken
from or merged with the master repository as necessary.
@@ -101,6 +106,7 @@ manager must ignore any files in this directory that it does not recognise.
the \t{ARCH} variable, and hence permissible keywords for packages in this repository.
\item[categories] \label{profiles-categories} Contains a list, one entry per line, of categories
provided by this repository.
+\item[eapi] See above.
\item[info\_pkgs] Contains a list, one entry per line, of qualified package names. Any package
matching one of these is to be listed when a package manager displays a `system information'
listing.
@@ -108,9 +114,9 @@ manager must ignore any files in this directory that it does not recognise.
variables which are considered to be of interest. The value of each of these variables may be
shown when the package manager displays a `system information' listing.
\item[package.mask] \label{profiles-package.mask}
- Contains a list, one entry per line, of (EAPI-0) package dependency specifications. Any package
- version matching one of these is considered to be masked, and will not be installed regardless
- of profile unless it is unmasked by the user configuration.
+ Contains a list, one entry per line, of package dependency specifications (using the directory's
+ EAPI). Any package version matching one of these is considered to be masked, and will not be
+ installed regardless of profile unless it is unmasked by the user configuration.
\item[profiles.desc] Described below in section~\ref{profiles.desc}.
\item[repo\_name] Contains, on a single line, the name of this repository. The repository name must
conform to section~\ref{repository-names}.
--
1.6.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [gentoo-pms] [PATCH] Add DEFINED_PHASES.
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES Ciaran McCreesh
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Profiles eapi file Ciaran McCreesh
@ 2008-12-12 21:41 ` David Leverton
1 sibling, 0 replies; 5+ messages in thread
From: David Leverton @ 2008-12-12 21:41 UTC (permalink / raw
To: gentoo-pms
On Friday 12 December 2008 16:07:20 Ciaran McCreesh wrote:
> +\item[DEFINED\_PHASES] A space separated arbitrarily ordered list of phase
> names (e.g. \t{configure +setup unpack}) whose phase functions are defined
> by the ebuild or an eclass inherited by the ebuild. +If no phase functions
> are defined, a single hyphen is used instead of an empty string. Package
> +managers may not rely upon the metadata cache having this variable
> defined, and must treat an empty +string as ``this information is not
> available``.
The quotes should be closed with '', not ``
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-pms] [PATCH] Profiles eapi file.
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Profiles eapi file Ciaran McCreesh
@ 2008-12-12 21:45 ` David Leverton
0 siblings, 0 replies; 5+ messages in thread
From: David Leverton @ 2008-12-12 21:45 UTC (permalink / raw
To: gentoo-pms
On Friday 12 December 2008 16:07:21 Ciaran McCreesh wrote:
> +\subsection{The eapi file}
> +\label{profile-eapi}
> +A profile directory may contain an \t{eapi} file. This file, if it exists,
> must contain a single line +with the name of an EAPI. This specifies the
> EAPI to use when handling the directory in question; a +package manager
> must not attempt to use any profile using a directory which requires an
> EAPI it does +not support. If no \t{eapi} file is present, EAPI 0 shall be
> used. +
> \subsection{The parent file}
Should mention that the eapi isn't inherited (and possible move this
subsection after the one that describes parent, so inheritance is defined
before mentioning the lack thereof in this particular case).
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-12-12 21:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-12 16:07 [gentoo-pms] [PATCH] Ebuilds may trust the initial working directory Ciaran McCreesh
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES Ciaran McCreesh
2008-12-12 16:07 ` [gentoo-pms] [PATCH] Profiles eapi file Ciaran McCreesh
2008-12-12 21:45 ` David Leverton
2008-12-12 21:41 ` [gentoo-pms] [PATCH] Add DEFINED_PHASES David Leverton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox