1 |
On Sat, Sep 23, 2006 at 09:50:12AM -0400, Mike Frysinger wrote: |
2 |
> On Saturday 23 September 2006 09:14, Brian Harring wrote: |
3 |
> > You're assuming that after the merge of the pkg that breaks |
4 |
> > compatibility, building is actually _still_ possible for the depends. |
5 |
> |
6 |
> of course i am; i just said that portage would make sure to not unmerge any |
7 |
> ABI lib still in use |
8 |
|
9 |
dlopen? |
10 |
|
11 |
How does this fix openssl horkage? (bad soname handling) |
12 |
|
13 |
Also... what do we do for python/perl (*-updater scripts in general) |
14 |
where a change in a pkg state means we have to rebuild the revdeps? |
15 |
|
16 |
What you're suggesting works for strictly linkage; still think this |
17 |
shouuld work for the general problem rather then just one subset. |
18 |
|
19 |
> > We don't classify our deps as actual build depends vs link depends; as |
20 |
> > such trying to (essentially) "patch things up after" allow for the |
21 |
> > scenario where merging breaks the toolchain, thus building isn't |
22 |
> > possible. |
23 |
> |
24 |
> huh ? RDEPEND is linktime ... see my statement above |
25 |
|
26 |
RDEPEND is execution requirements; to use the binary, this is what |
27 |
needs to be in the graph. |
28 |
|
29 |
Clarifying my statement; we don't break our DEPEND down into "this is |
30 |
what is executed in building the package" (toolchain), vs "this is the |
31 |
crap the binaries we build against need avail to be linked against", |
32 |
literally what winds up as -l args. |
33 |
|
34 |
If punting the old lib (as I assumed), means we would potentially be |
35 |
making certain DEPEND atoms unusable if they're required in an |
36 |
execution context (rather then just winding up as a -l arg). |
37 |
|
38 |
So... ignore that bit since you're talking about lingering files. |
39 |
|
40 |
|
41 |
> > > - once all the packages requested have been merged, you start the second |
42 |
> > > phase and calculate everything that needs to be rebuilt. as ABI libs are |
43 |
> > > no longer needed on a system, portage can scrub them out |
44 |
> > |
45 |
> > "as ABI libs are no longer needed on a system", phrasing of that |
46 |
> > implies you're suggesting that portage should leave the older package |
47 |
> > in place till it's updated all revdeps, then wipe it. |
48 |
> |
49 |
> no i am not; read my previous e-mails where i said it would leave behind the 1 |
50 |
> ABI lib required ... aka whatever is encoded in SONAME |
51 |
|
52 |
Yeah, missed the "presvered" (woot for 5am wakeup). |
53 |
|
54 |
In that case, wouldn't mind a response to the "what about ctrl+c |
55 |
during the run?" The potential for orphaning there sucks; recording |
56 |
the old library in the new version sucks also since it complicates the |
57 |
merge process, that lib *must* be removed else it's a potential |
58 |
collision-protect minefield. |
59 |
|
60 |
Finally, even if the lib is temporarily left behind, this solution |
61 |
doesn't gurantee the library actually would *work* still- it only can |
62 |
work if the lib is standalone from the rest of the pkg and doesn't |
63 |
rely on any external data from the pkg. |
64 |
|
65 |
Example would be pkg foobar that internally has libconvience, used by |
66 |
it's libs but not externally linked, contains (oddly enough) |
67 |
convience bits shared across foobars libraries. |
68 |
|
69 |
libconvience is *not* to be externally linked against, consumers must |
70 |
access the other libs (say libfoo); any soname bumps to libfoo, the |
71 |
old version gets broke in the process despite due to it linking |
72 |
internally against an unversioned so. |
73 |
|
74 |
Granted, semi retarded, but gnomes libegg comes to mind as a potential |
75 |
case of this. |
76 |
|
77 |
Basically trying to point out that what you're proposing only works in |
78 |
a subset of the cases revdep must deal with, and that revdep itself |
79 |
doesn't deal with *all* situations as is; hence BINCOMPAT as a way to |
80 |
try and shift it under maintainers control. |
81 |
|
82 |
Maintainence of it *should* be pretty simple also; for sane upstream |
83 |
soname handling, you just bump it with the majors; for the rest, its a |
84 |
knob that can be fiddled to at least give up front warning of the |
85 |
issue. |
86 |
|
87 |
~harring |