1 |
On Thu, Aug 21, 2008 at 8:35 AM, Steve Long <slong@××××××××××××××××××.uk> wrote: |
2 |
> Ciaran McCreesh wrote: |
3 |
> |
4 |
>> On Tue, 19 Aug 2008 21:27:03 +0100 |
5 |
>> Steve Long <slong@××××××××××××××××××.uk> wrote: |
6 |
>>> > On Tue, 19 Aug 2008 23:31:17 +0530 |
7 |
>>> > Arun Raghavan <ford_prefect@g.o> wrote: |
8 |
>>> >> Ciaran McCreesh wrote: |
9 |
>>> >> > The benefit is that it's a logically separate action, and will |
10 |
>>> >> > avoid all the silliness of people repeatedly changing their |
11 |
>>> >> > minds about which phase should do the eautoreconf calls and so |
12 |
>>> >> > on. |
13 |
>>> Er, that would be the new src_configure? |
14 |
>> |
15 |
>> Oh really? |
16 |
>> |
17 |
> Hmm fun as it isn't playing these games with you.. |
18 |
> |
19 |
|
20 |
If he doesn't respond with anything useful; just act like he conceded |
21 |
the point and move on. |
22 |
|
23 |
>>> > In the grand scheme of things, no. In the grand scheme of things, |
24 |
>>> > you only *need* a single src_ function. From a maintainer |
25 |
>>> > convenience perspective, however, src_prepare is marginally more |
26 |
>>> > useful than having a split src_configure. |
27 |
>>> > |
28 |
>>> How so? |
29 |
>>> |
30 |
>>> From a user point of view, and from a maintenance point of view, |
31 |
>>> src_configure is very useful. |
32 |
>> |
33 |
>> Any reason you can provide for src_configure being useful can be used |
34 |
>> with slight modification for src_prepare. |
35 |
>> |
36 |
> Which is no reason to add a new phase. OFC if zac wants to provide it that's |
37 |
> entirely up to him. |
38 |
> |
39 |
|
40 |
You are saying src_configure is useful; he is saying src_prepare is |
41 |
useful. both of you are arguments as to why you think that way; that |
42 |
is all he is saying. |
43 |
|
44 |
>>> > It's a better mapping of the things ebuilds do than the current set |
45 |
>>> > of functions. |
46 |
>>> > |
47 |
>>> > The logic is this: lots of ebuilds end up duplicating src_unpack |
48 |
>>> > (or, in future EAPIs, calling 'default') and then adding things to |
49 |
>>> > do preparation work. Experience suggests that the most common |
50 |
>>> > reason for overriding src_unpack is to do preparation work, not to |
51 |
>>> > change how things are unpacked. |
52 |
>>> > |
53 |
>>> Yeah I've always seen src_unpack as being more cogent to preparation |
54 |
>>> of src files, than to actually untarring stuff. |
55 |
>> |
56 |
>> Yes, the 'unpack' in the name really does go along with the phase being |
57 |
>> used to prepare things. |
58 |
>> |
59 |
> Oh so this is about correct nomenclature rather than anything else? I see. |
60 |
> |
61 |
>>> So what? Why make a new phase which every new dev has to know about, |
62 |
>>> and we have to provide pre_ and post_ hooks for, when the existing |
63 |
>>> phase covers the usage fine? |
64 |
>> |
65 |
>> Make a phase for each common logically distinct operation. Which, with |
66 |
>> src_prepare being added, we almost have. |
67 |
>> |
68 |
> Yes, I see, because it's really needed; real functionality our users have |
69 |
> been crying out for. |
70 |
> |
71 |
|
72 |
At least one has...do you want to vote for each feature? What will it |
73 |
take to convince you? |
74 |
|
75 |
>> (The one missing is a src_fetch_extra or somesuch, for use by the scm |
76 |
>> eclasses. But that wants special handling, and is probably best left to |
77 |
>> another EAPI...) |
78 |
>> |
79 |
> Yes, a defined, configurable API for dealing with any version control would |
80 |
> be useful, though your minion seemed to argue against it in #-portage. I |
81 |
> can think of a couple of things that would be more useful to end-users: |
82 |
> pkg_check for interactive ebuilds (eg license acceptance or media access), |
83 |
> proper support for cross-compiling, integration of prefix, better handling |
84 |
> of overlays, and of binpkgs.. |
85 |
> |
86 |
|
87 |
Your comment is arguably about feature prioritization; not about |
88 |
whether a given feature is necessary. |
89 |
|
90 |
If we have two orthogonal features A and B; you can't argue that A is |
91 |
necessary and B is not because A is more important to work on; the |
92 |
only thing you have succeeded in doing is arguing that A should be |
93 |
done first. |
94 |
|
95 |
>>> > (Number-wise... For Exherbo, where the split's already been made, |
96 |
>>> > custom src_prepare functions are three times more common than custom |
97 |
>>> > src_unpack functions. And that figure's significantly lower than |
98 |
>>> > what Gentoo would see, because with exheres-0 'default' functions |
99 |
>>> > you don't need to write a src_prepare if you're merely applying |
100 |
>>> > patches.) |
101 |
>>> > |
102 |
>>> Well it's easy enough to auto-apply patches, given a declaration in |
103 |
>>> the ebuild (since files for all versions are in the same dir.) It |
104 |
>>> certainly doesn't need a new phase. |
105 |
>> |
106 |
>> Well, if you're proposing that Gentoo also adopts the more complicated |
107 |
>> default_* functions from exheres-0, you're more than welcome to write |
108 |
>> up a proposal... |
109 |
>> |
110 |
> Tsk of course not. default functions are in the pipeline in any case, but |
111 |
> glad to see you're still using this list for proselytising your pet project |
112 |
> while avoiding true discussion. In any event, it wouldn't be needed. |
113 |
> |
114 |
>>> >> The *only* potential "benefit" I see here is that at some point of |
115 |
>>> >> time in the nebulous future, it might be possible to tell the PM to |
116 |
>>> >> always skip src_prepare in order to give a system where everything |
117 |
>>> >> is "vanilla". |
118 |
>>> > |
119 |
>>> > Such a system wouldn't be usable... Not all of Gentoo's patches are |
120 |
>>> > non-essential. |
121 |
>>> > |
122 |
>>> So the real, fully-defined, explicit benefit is.. |
123 |
>> |
124 |
>> The same as the benefit of splitting src_compile into src_configure and |
125 |
>> src_compile, except that it'll be of use to a slightly larger |
126 |
>> proportion of ebuilds. |
127 |
>> |
128 |
> As ever, you fail to argue the actual case, preferring to hide behind "the |
129 |
> same reasons as.." which is a variant on the "if you don't understand some |
130 |
> one line comment, you're not qualified to discuss anything (plus you're |
131 |
> ugly.)" |
132 |
> |
133 |
> The reasoning others have given (yes it is possible to explain why without |
134 |
> making people read thru 20 one line emails) is that this would be useful |
135 |
> for live ebuilds. In maintenance terms (when looking at the lifecycle of an |
136 |
> ebuild) I don't see the need, since there is no unpacking required from a |
137 |
> vcs pull. Once it's made into a normal ebuild, any preparation would |
138 |
> necessarily require review and might not be needed at all. |
139 |
> |
140 |
> Call the function what you like (or add a new phase with the hooks) it's |
141 |
> still logically one point in time. For a live ebuild it's to prepare the |
142 |
> src, for a normal one to (possibly) unpack and prepare. |
143 |
> |
144 |
> src_configure is a logically distinct action which warrants a new phase, |
145 |
> since the e*conf call in compile makes retrying a long build (without |
146 |
> having to recompile stuff which doesn't need it) much more difficult; its |
147 |
> absence prevents full use of make. Prepare does not warrant a new phase imo |
148 |
> since it should only be run once per compilation instance; anything it does |
149 |
> can either be done in unpack, or in configure should that be more useful. |
150 |
|
151 |
src_prepare is a logically distinct action (maybe if we called it |
152 |
src_patch it would be clearer?) |
153 |
Certainly we only want to patch sources once every time we want to |
154 |
build a package; what if patching is expensive? |
155 |
|
156 |
The point being the same argument that is for src_configure (that it |
157 |
is expensive and adding it makes ebuilds clearer) could be said for |
158 |
src_prepare (preparation could be expensive and it makes ebuilds |
159 |
clearer). |
160 |
|
161 |
So why again should we not add it? |
162 |
|
163 |
-Alec |