Gentoo Archives: gentoo-pms

From: "Michał Górny" <mgorny@g.o>
To: gentoo-pms@l.g.o
Subject: Re: [gentoo-pms] [PATCH eapi8] EAPI 8 has install-time dependencies (IDEPEND)
Date: Mon, 23 Dec 2019 13:20:28
Message-Id: 35671d00d02307c72e2567257410624d047a7286.camel@gentoo.org
In Reply to: Re: [gentoo-pms] [PATCH eapi8] EAPI 8 has install-time dependencies (IDEPEND) by Ulrich Mueller
1 On Mon, 2019-12-23 at 08:21 +0100, Ulrich Mueller wrote:
2 > > > > > > On Sun, 22 Dec 2019, Michał Górny wrote:
3 > > --- a/dependencies.tex
4 > > +++ b/dependencies.tex
5 > > @@ -21,7 +21,7 @@
6 > > \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
7 > > \addlinespace
8 > > \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
9 > > - \t{RDEPEND} \\
10 > > + \t{RDEPEND}, \t{IDEPEND} \\
11 >
12 > This would imply that in order to uninstall a package, the PM would
13 > possibly have to install other packages listed in IDEPEND. Do we really
14 > want to go down that road? (What if there are circular dependencies in
15 > IDEPEND?)
16
17 I've already indicated below that they may not be available. Do you
18 want me to repeat that here somehow, or just omit it entirely?
19
20 >
21 > > @@ -30,15 +30,16 @@
22 > >
23 > > \begin{centertable}{Summary of other interfaces related to dependency classes}
24 > > \label{tab:dep-class-api}
25 > > - \begin{tabular}{llll}
26 > > + \begin{tabular}{lllll}
27 >
28 > But it's still 4 columns, isn't it?
29
30 Yep, fixed.
31
32 >
33 > > \toprule
34 > > - & \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\
35 > > + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND},
36 > > + \t{PDEPEND} \\
37 >
38 > Just move the first & tab to the left, then you need not split the line
39 > (and see the following remark below).
40
41 Good idea, done.
42
43 >
44 > > \midrule
45 > > - Binary compatible with & \t{CBUILD} & \t{CHOST} & \t{CHOST} \\
46 > > - Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}} \\
47 > > - Relevant offset-prefix & \t{\$\{BROOT\}} & \t{\$\{EPREFIX\}} & \t{\$\{EPREFIX\}} \\
48 > > - Path combined with prefix & \t{\$\{BROOT\}} & \t{\$\{ESYSROOT\}} & \t{\$\{EROOT\}} \\
49 > > - PM query command option & \t{-b} & \t{-d} & \t{-r} \\
50 > > + Binary compatible with & \t{CBUILD} & \t{CHOST} & \t{CHOST} \\
51 > > + Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}} \\
52 > > + Relevant offset-prefix & \t{\$\{BROOT\}} & \t{\$\{EPREFIX\}} & \t{\$\{EPREFIX\}} \\
53 > > + Path combined with prefix & \t{\$\{BROOT\}} & \t{\$\{ESYSROOT\}} & \t{\$\{EROOT\}} \\
54 > > + PM query command option & \t{-b} & \t{-d} & \t{-r} \\
55 >
56 > Nothing has changed here? Maybe better to leave the whitespace alone.
57
58 Restored original whitespace.
59
60 >
61 > > +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting
62 > > +\t{IDEPEND}, install-time dependencies can be specified. Those dependencies are binary compatible
63 > > +with the native build system (\t{CBUILD}). The~ebuild is allowed to call them in \t{pkg_preinst}
64 > > +and \t{pkg_postinst} phases. The ebuild may also call them in \t{pkg_prerm} and \t{pkg_postrm}
65 > > +but must not rely on them being available.
66 >
67 > s/Those/These/
68 > s/The ebuild/Ebuilds/ (twice)
69 > s/ phases// (these are not phases, but phase _functions_)
70
71 Done.
72
73 >
74 > > @@ -97,7 +106,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st
75 > >
76 > > \begin{compactitem}
77 > > \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND},
78 > > - \t{PDEPEND}.
79 > > + \t{IDEPEND}, \t{PDEPEND}.
80 >
81 > Hm, I guess it's time to establish a canonical order of these variables.
82 > You say, IDEPEND should be listed before PDEPEND? (On first thought, I'd
83 > have listed IDEPEND at the end, because RDEPEND and PDEPEND are similar.
84 > Or IDEPEND after BDEPEND.)
85
86 My logic was that PDEPEND is used very rarely, so it should go last.
87 However, your idea also makes sense.
88
89 >
90 > > --- a/ebuild-env-vars.tex
91 > > +++ b/ebuild-env-vars.tex
92 > > @@ -147,9 +147,10 @@ variable.
93 > > \t{BROOT} &
94 > > Ditto &
95 > > No &
96 > > - \featurelabel{broot} The absolute path to the root directory containing build dependencies
97 > > - satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset
98 > > - prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}.
99 > > + \featurelabel{broot} The absolute path to the root directory containing build host dependencies
100 >
101 > I think you shouldn't change "build" to "build host" here, because of
102 > the confusion with CHOST. The following "executable build tools" makes
103 > it clear enough what is meant.
104 >
105 > (Or if we change that wording, then we should do it now, and not as part
106 > of an EAPI 8 patch.)
107
108 'Host' removed.
109
110 >
111 > > + satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any
112 > > + applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as
113 > > + supporting \t{BROOT}.
114 > > --- a/ebuild-vars.tex
115 > > +++ b/ebuild-vars.tex
116 > > @@ -86,6 +86,7 @@ Ebuilds may define any of the following variables:
117 > > details.
118 > > \item[PDEPEND] See chapter~\ref{ch:dependencies}.
119 > > \item[BDEPEND] See chapter~\ref{ch:dependencies}.
120 > > +\item[IDEPEND] See chapter~\ref{ch:dependencies}.
121 >
122 > Here the order is different from the one used above (but it's like this
123 > in EAPI 7 already).
124 >
125
126 Yes, that's why I added it last -- presumed it's in addition order.
127
128 Lemme know which order should I use finally, and if I should update this
129 one as well (in a separate patch?).
130
131 --
132 Best regards,
133 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature