1 |
On Tue, May 16, 2006 at 07:07:05PM +0100, Ciaran McCreesh wrote: |
2 |
> On Tue, 16 May 2006 10:33:56 -0700 Brian Harring <ferringb@×××××.com> |
3 |
> wrote: |
4 |
> | > What eapi=0 standard? We emulate Portage internals where it's found |
5 |
> | > to be necessary, and don't otherwise. |
6 |
> | |
7 |
> | eapi=0 is what 2.1/2.05x supports. |
8 |
> |
9 |
> That's not really true. Relying upon "anything that Portage handles", |
10 |
> including relying upon Portage bugs and internals, leads to broken |
11 |
> ebuilds when said things change. |
12 |
|
13 |
...which is why the ebuild env for portage is extremely carefully |
14 |
maintained- mistakes may occur, but willy nilly changes don't. |
15 |
Regardless, at least for gentoo it still however *is* the standard |
16 |
for ebuilds, breaking the 'standard' out of portage is fine, changing |
17 |
intrinsic parts of the standard isn't. |
18 |
|
19 |
|
20 |
> | Features are fine, but for gentoo backwards compatibility *is* a |
21 |
> | concern, as such dropping the bits that you dislike (but existing |
22 |
> | ebuilds rely on) is a no go. |
23 |
> |
24 |
> You're acting like Paludis is dropping something huge here. Not |
25 |
> emulating a few weird PORTAGE_ variables that nothing uses is not |
26 |
> breaking eapi. If ebuilds genuinely rely upon something, we emulate as |
27 |
> necessary. |
28 |
|
29 |
Then I'll state it again; you're changing the core environment |
30 |
handling via intentionally dropping all local vars defined per phase |
31 |
run. Add binpkgs, and try it- you'll get some fun behaviour there. |
32 |
|
33 |
|
34 |
> A 'rewrite' implies that we're starting from "what Portage does", and |
35 |
> making something that does the same thing in the same way. That's not |
36 |
> how it's being done. We're looking at it a) from what ebuilds do, and |
37 |
> b) from what the program is expected to do, and then filling in the |
38 |
> middle. The only part that's really at all close to Portage is the bash |
39 |
> stuff for ebuilds, and that's pretty much necessary because of the |
40 |
> ebuild <-> package manager interface thing. |
41 |
> |
42 |
> *shrug* Your perception on this one's probably skewed if (as it seems) |
43 |
> you've been focusing on the trivial and easily replaceable bash part, |
44 |
> rather than the interesting things which are done in C++. |
45 |
|
46 |
The bash part is all that matters, hence why I'm focusing on it- as |
47 |
you stated above, the data (ebuilds) handling is what matters. |
48 |
|
49 |
Stating that the bash concerns are trivial while the C++ side can be |
50 |
interesting is ignoring the point, the bash bits must match- I don't |
51 |
care if it's C++ or python or haskell for the high level, the ebuild |
52 |
env support must *not* induce any intentional changes that break |
53 |
ebuilds. |
54 |
|
55 |
|
56 |
> Again, not really true. Said Portage devs have pushed through far |
57 |
> larger changes than anything we need -- look at the "use becoming useq" |
58 |
> behaviour changes, for example. Paludis does not require or want any |
59 |
> such large change, and we'd consider anything that required that to be |
60 |
> broken. |
61 |
|
62 |
use/useq change over occured well after the tree had been converted- |
63 |
it's actually a decent example of how to do the changeover- that was |
64 |
also a permenant change, not a "paludis is an alternative and we want |
65 |
to stick it in the tree". |
66 |
|
67 |
|
68 |
> | Feature introduction is done via introducing support, then sitting on |
69 |
> | it for ~6 months to ensure folks don't get bit by it- notable |
70 |
> | exception was virtuals/* metapkg, although the buttload of bugs from |
71 |
> | it is a demonstration of *why* this route must be taken. |
72 |
> |
73 |
> There is a difference between "changes that affect people not using the |
74 |
> newer package manager" and "changes that are only relevant to people |
75 |
> using the newer package manager". Anyone asking for features that will |
76 |
> lead to Portage breaking will be beaten with a spork. |
77 |
|
78 |
N profile inheritance breaks portage. |
79 |
You were saying? |
80 |
|
81 |
Yes it's needed (regardless of the manager), but the point was "don't |
82 |
expose users to sharp/pointy things without a good reason". |
83 |
|
84 |
|
85 |
> | This is also why eapi came about- faster introduction of |
86 |
> | compatibility breaking changes. |
87 |
> |
88 |
> Which, unfortunately, it doesn't really do, since ebuilds still have to |
89 |
> be filename and source compatible. There were far better ways this |
90 |
> could have been handled. |
91 |
|
92 |
Feel free to suggest them- since it's initial discussion, your |
93 |
comments on it haven't really progressed beyond "y'all did it badly", |
94 |
without naming a solution that works. |
95 |
|
96 |
EAPI has it's faults, but it *does* version the ebuild format |
97 |
(regardless of the tree format) to move forward, which was it's |
98 |
intention. Versioning the tree format is a related, but seperate |
99 |
issue. |
100 |
|
101 |
|
102 |
> | Snarky response aside, I read the src (note the env screwups I've |
103 |
> | pointed out, and the fact y'all don't support try eclass unified |
104 |
> | overlays), and your documentation- the point was that paludis can |
105 |
> | only be used for new installs, and you're locked to paludis as your |
106 |
> | pkg manager at that point without a translation script. |
107 |
> |
108 |
> Had you read the source or the documentation, you'd know fine well that |
109 |
> we support eclass unified overlays. I really think you should refrain |
110 |
> from making those kinds of claims until you actually have the slightest |
111 |
> clue what you're talking about. |
112 |
|
113 |
Offhand, you're ignoring the point about lack of translation script |
114 |
for vdb, and that paludis requires a new install. |
115 |
|
116 |
Re: eclass, had to dig in the src for that one, doc's don't cover it. |
117 |
Your repositories support specifying an arbitrary eclass- they do not |
118 |
support the standard unification on the fly of eclass that most |
119 |
portage users use- *technically* it can be done via copying eclasses |
120 |
from each repo into an eclass directory (better yet symlinks), but |
121 |
that's not unifying- that's working around the implementation. |
122 |
|
123 |
Simple example, eclasses in overlay X must override PORTDIR y, no |
124 |
eclass in X, check Y. |
125 |
|
126 |
If paludis supports that common usage model, kindly point it out |
127 |
since I've yet to spot support in the code for it. |
128 |
|
129 |
|
130 |
> | > Uh, a user changing to any incorrect profile will screw up their |
131 |
> | > system. Ever tried using an amd64 profile on x86? |
132 |
> | |
133 |
> | We can't do anything about that idiocy. |
134 |
> | |
135 |
> | That doesn't mean a profile should be added to the tree that portage |
136 |
> | is incapable of resolving properly however- simple example would be |
137 |
> | inheriting from two parents, one that's base arch agnostic defaults, |
138 |
> | other is arch specific modifications. |
139 |
> |
140 |
> Huh? Profiles that some Portage versions can't use have been added |
141 |
> plenty of times previously. |
142 |
|
143 |
Yep, and we still get bugs about .50- that doesn't mean it's right |
144 |
(just because someone else did something stupid doesn't mean you can). |
145 |
It's pretty simple, don't stick stuff into the tree that can silently |
146 |
fail, stick stuff in that is detected instead of silent failures. |
147 |
|
148 |
|
149 |
> | See above. Renaming of PORTAGE_* -> PALUDIS_* vars doesn't strike me |
150 |
> | as "sillier bugs", strikes me as "we stamped it with our name, thus |
151 |
> | introducing subtle bugs into minor packages like perl". |
152 |
> |
153 |
> We emulate some PORTAGE_ variables. We don't emulate the ones that |
154 |
> aren't necessary. |
155 |
> |
156 |
> | And yes, that's actually a valid example- easy to spot via just a |
157 |
> | simple grepping of the tree (I suggest you do so). |
158 |
> |
159 |
> Heh. You lose. It isn't. |
160 |
|
161 |
look in the files directory- specifically modifies extmaker to be |
162 |
PORTAGE_TMPDIR aware to fix a security bug. |
163 |
|
164 |
|
165 |
> | Point is, the tree (you're own words) is not a playground, nor is it |
166 |
> | a demoscene- don't introduce the potential for screwup in the tree |
167 |
> | without a damn good reason. |
168 |
> |
169 |
> That argument is like claiming that adding an amd64 profile to the tree |
170 |
> is a potential screwup because x86 users might use it. |
171 |
|
172 |
x86 users could at *least* render the profile out properly. All |
173 |
gentoo users sans the few paludis experimenters cannot use N profile |
174 |
inheritance, and portage will misbehave with it. Wrong profile is |
175 |
pretty damn obvious (compilation failure)- partially loaded profile is |
176 |
a bit different however, you only get part of the profile tree loaded |
177 |
(likely enough to continue on), but not all of it's settings. |
178 |
|
179 |
Bit retarded here, but seriously, work it out in the overlay (like |
180 |
most herds do), then try to bring it to the tree. |
181 |
|
182 |
|
183 |
> | Bluntly, you break compatibility with vdb/tree, paludis has no real |
184 |
> | future with gentoo beyond forking- requiring 100,000 users to |
185 |
> | reinstall because you don't want to do backwards compatibility is |
186 |
> | daft. |
187 |
> |
188 |
> A reinstall isn't needed at all. |
189 |
|
190 |
Currently is, going by your docs (and last look through code)- url? |
191 |
|
192 |
|
193 |
> | The original discussion was about adding a paludis profile (not |
194 |
> | "portage sucks"), getting back to it, paludis is incompatible with |
195 |
> | portage at the actual ebuild level- considering that, why should the |
196 |
> | tree be modified to add a profile that's just going to introduce |
197 |
> | further breakage? |
198 |
> |
199 |
> Paludis is no more incompatible with ebuilds than any new Portage |
200 |
> release is. |
201 |
|
202 |
Rhetoric. I've pointed out specific changes you've gone and done that |
203 |
render it incompatible, and the response is "portage does it worse"? |
204 |
Portage doesn't willy nilly convert/drop vars, nor screw with the env |
205 |
handling. |
206 |
|
207 |
Env handling *is* a bitch to get it properly- the ebd based |
208 |
portage-2.1 already demonstrated it, and all that was doing was |
209 |
*fixing* the statefullness of the env, not hacking all local data out. |
210 |
|
211 |
That and the thread is getting fairly wide in discusion, rather then |
212 |
the profile specific "does alt pkg manager X cruft belong in the |
213 |
tree?" |
214 |
~brian |