Gentoo Archives: gentoo-pms

From: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
To: gentoo-pms@l.g.o
Cc: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
Subject: [gentoo-pms] [PATCH] Ding dong, old-style virtuals are dead
Date: Sat, 11 Jun 2011 20:08:06
Message-Id: 1307822736-20646-1-git-send-email-ciaran.mccreesh@googlemail.com
1 ---
2 ebuild-vars.tex | 3 ---
3 glossary.tex | 8 +++-----
4 metadata-cache.tex | 2 +-
5 pms.tex | 2 --
6 profiles.tex | 13 -------------
7 virtuals.tex | 45 ---------------------------------------------
8 6 files changed, 4 insertions(+), 69 deletions(-)
9 delete mode 100644 virtuals.tex
10
11 diff --git a/ebuild-vars.tex b/ebuild-vars.tex
12 index 8df94e9..d183305 100644
13 --- a/ebuild-vars.tex
14 +++ b/ebuild-vars.tex
15 @@ -77,9 +77,6 @@ Ebuilds may define any of the following variables:
16 \item[DEPEND] See section~\ref{sec:dependencies}.
17 \item[EAPI] The EAPI. See below for defaults.
18 \item[PDEPEND] See section~\ref{sec:dependencies}.
19 -\item[PROVIDE] Zero or more qualified package names of any \i{old style}
20 - virtuals provided by this package. See section~\ref{sec:dependencies} for full syntax.
21 - \label{ebuild-var-provide}
22 \item[RDEPEND] See section~\ref{sec:dependencies}. For some EAPIs, \t{RDEPEND} has special behaviour
23 for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for
24 details.
25 diff --git a/glossary.tex b/glossary.tex
26 index 2acbeb1..03ecace 100644
27 --- a/glossary.tex
28 +++ b/glossary.tex
29 @@ -7,12 +7,10 @@ be immediately obvious.
30 \begin{description}
31 \item[qualified package name] A package name along with its associated category. For example,
32 \t{app-editors/vim} is a qualified package name.
33 -\item[old-style virtual] An old-style virtual is a pseudo-package which exists if it is listed in an
34 - ebuild's \t{PROVIDE} variable. See chapter~\ref{sec:old-virtuals}.
35 \item[new-style virtual] A new-style virtual is a normal package in the \t{virtual} category which
36 - installs no files and uses its dependency requirements to pull in a `provider'. This is more
37 - flexible than the old-style virtuals described above, and requires no special package manager
38 - code.
39 + installs no files and uses its dependency requirements to pull in a `provider'. Historically,
40 + old-style virtuals required special handling from the package manager; new-style virtuals do
41 + not.
42 \item[stand-alone repository] An (ebuild) repository which is intended to function on its own as the
43 only, or primary, repository on a system. Contrast with \i{slave repository} below.
44 \item[slave repository, non-stand-alone repository] An (ebuild) repository which is not complete
45 diff --git a/metadata-cache.tex b/metadata-cache.tex
46 index 8e7a09d..52c0aee 100644
47 --- a/metadata-cache.tex
48 +++ b/metadata-cache.tex
49 @@ -29,7 +29,7 @@ order. Other lines may be present following these; their meanings are not define
50 \item Use flags that this package requires (\t{REQUIRED\_USE}).
51 Blank in some EAPIs; see table~\ref{tab:optional-vars-table}.
52 \item Post dependencies (\t{PDEPEND})
53 -\item Old-style virtuals provided by this package (\t{PROVIDE})
54 +\item Unused; previously used for old-style virtual \t{PROVIDE}.
55 \item The ebuild API version to which this package conforms (\t{EAPI})
56 \item Properties (\t{PROPERTIES}). In some EAPIs, may optionally be blank, regardless of ebuild
57 metadata; see table~\ref{tab:optional-vars-table}.
58 diff --git a/pms.tex b/pms.tex
59 index efa50de..4ada8ec 100644
60 --- a/pms.tex
61 +++ b/pms.tex
62 @@ -20,8 +20,6 @@
63
64 \include{profiles}
65
66 -\include{virtuals}
67 -
68 \include{ebuild-format}
69
70 \include{ebuild-vars}
71 diff --git a/profiles.tex b/profiles.tex
72 index 2dba163..8246431 100644
73 --- a/profiles.tex
74 +++ b/profiles.tex
75 @@ -63,19 +63,6 @@ bash syntax, is allowed as follows:
76 \item Backslashes, except for line continuations, are not allowed.
77 \end{compactitem}
78
79 -\subsection{virtuals}
80 -\label{sec:profiles-virtuals}
81 -The \t{virtuals} file defines default providers for ``old-style'' virtual packages. It is a simple
82 -line-based file, with each line containing two whitespace-delimited tokens. The first is a virtual
83 -package name (for example, \t{virtual/alsa}) and the second is a qualified package name. Blank lines
84 -and those beginning with a \# character are ignored. When attempting to resolve a virtual name to a
85 -concrete package, the specification defined in the active profile's \t{virtuals} list should be used if no
86 -provider is already installed.
87 -
88 -The \t{virtuals} file is inherited in the simplest manner: all entries from the parent profile are
89 -loaded, then entries from the current profile. If a virtual package name appears in both, the entry
90 -in the parent profile is discarded.
91 -
92 \subsection{Simple line-based files}
93 \label{sec:line-stacking}
94 These files are a simple one-item-per-line list, which is inherited in the following manner: the
95 diff --git a/virtuals.tex b/virtuals.tex
96 deleted file mode 100644
97 index 8ac05aa..0000000
98 --- a/virtuals.tex
99 +++ /dev/null
100 @@ -1,45 +0,0 @@
101 -\chapter{Old-Style Virtual Packages}
102 -\label{sec:old-virtuals}
103 -
104 -Old-style virtuals are pseudo-packages---they can be depended upon or
105 -installed, but do not exist in the ebuild repository. An old-style
106 -virtual requires several things in the repository: at least one ebuild
107 -must list the virtual in its \t{PROVIDE} variable, and there must be
108 -at least one entry in a profiles \t{virtuals} file listing the default
109 -provider for each profile---see sections~\ref{ebuild-var-provide} and
110 -\ref{sec:profiles-virtuals} for specifics on these two. Old-style virtuals
111 -require special handling as regards dependencies; this is described
112 -below.
113 -
114 -All old-style virtuals must use the category \t{virtual}. Not all packages using the \t{virtual}
115 -category may be assumed to be old style virtuals.
116 -
117 -\note A \i{new-style} virtual is simply an ebuild which install no files and use its dependency
118 -strings to select providers. By convention, and to ease migration, these are also placed in the
119 -\t{virtual} category.
120 -
121 -\section{Dependencies on virtual packages}
122 -
123 -When a dependency on a virtual package is encountered, it must be
124 -resolved into a real package before it can be satisfied. There are two
125 -factors that affect this process: whether a package providing the
126 -virtual is installed, and the \t{virtuals} file in the active profile
127 -(section~\ref{sec:profiles-virtuals}). If a package is already installed
128 -which satisfies the virtual requirement (via \t{PROVIDE}), then it
129 -should be used to satisfy the dependency. Otherwise, the profiles
130 -\t{virtuals} file (section~\ref{sec:profiles-virtuals}) should be
131 -consulted to choose an appropriate provider.
132 -
133 -Dependencies on old style virtuals must not use any kind of version restriction.
134 -
135 -Blocks on provided virtuals have special behaviour documented in section~\ref{provided-blocks}.
136 -
137 -% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
138 -
139 -%%% Local Variables:
140 -%%% mode: latex
141 -%%% TeX-master: "pms"
142 -%%% LaTeX-indent-level: 4
143 -%%% LaTeX-item-indent: 0
144 -%%% TeX-brace-indent-level: 4
145 -%%% End:
146 --
147 1.7.5.1

Replies

Subject Author
Re: [gentoo-pms] [PATCH] Ding dong, old-style virtuals are dead Ulrich Mueller <ulm@g.o>