Gentoo Archives: gentoo-dev

From: Mike Frysinger <vapier@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC about another *DEPEND variable
Date: Mon, 02 Oct 2006 12:57:18
Message-Id: 200610020853.55757.vapier@gentoo.org
In Reply to: Re: [gentoo-dev] RFC about another *DEPEND variable by Brian Harring
1 On Saturday 30 September 2006 15:34, Brian Harring wrote:
2 > If that's what folks want, sure, but what you're proposing is just
3 > sliding NEEDED in as the defacto solution without labeling it as such.
4
5 no idea what this means
6
7 > Re-read your emails, and mine please. The scenario I pointed out was
8 > ctrl+c'ing the merge while it's doing a rebuild for lib1 to lib2.
9
10 then let me turn it around ... how exactly does your solution account for all
11 these little details ? i dont recall you outlining anything ...
12
13 > > > How exactly is this forcing wasted rebuilds? You're stating that
14 > > > maintainers are going to bump it willy nilly. As I said, it is a key
15 > > > that would be bumped *as needed*, and would only affected pkgs that
16 > > > specified that node as a binding dep (specially marked atom).
17 > >
18 > > no, i mean for example scenarios where a package provides more than one
19 > > library (say libfoo and libbar) and only one of those changes ABI values
20 > > (say libfoo.0 -> libfoo.1). if another package links against just
21 > > libbar, you've got a pointless rebuild.
22 >
23 > If one changes it's version, it's a fair bet that any consumer of that
24 > pkg is linked to more then just that lib; as such they would be
25 > rebuilt *anyways*.
26
27 it isnt guaranteed ... you asked for a pointless rebuild and i gave you
28 one ... one that is not falsely flagged when reviewing the NEEDED list
29
30 the other example is where the ABI changes for one arch but not for any
31 other ... what do you do, force ABI rebuild for everyone ? ok, maybe that
32 arch was x86 so we say screw you to the smaller arch teams ... but what if
33 that arch was a smaller arch team ?
34
35 > Sorry, but if a developer is bumping a pkg and doesn't even look to
36 > see if the damn thing is potentially going to break others via soname
37 > changes, that maintainer is being an idiot.
38
39 and yet it does happen and again, we're looking at this from different
40 angles ... you'd rather assume the developer is 100% competent and never gets
41 things wrong; i'd rather assume nothing and let the details be discovered
42 automatically.
43
44 in the end, the people using Gentoo are the ones that suffer and i'm tired of
45 seeing systems broken beyond usuability because a developer unleashed a
46 package without realizing the consequences of it
47
48 > > > Realistically, just the same as the NEEDED solution has holes, the
49 > > > maintaining dev can screw up and miss a BINCOMPAT bump. Difference is
50 > > > that they can do something for BINCOMPAT; hell, QA checks can be
51 > > > automated to catch missing BINCOMPAT bumps.
52
53 i bet a post-emerge would make this painless and automate the QA step ...
54 after src_install(), you run something like `scanelf -qsRS ${D}` and save the
55 results in vdb/SONAME ... and then on subsequent installs, you run it again
56 and if the SONAME changes but BINCOMPAT did not, you bail with a die message
57 telling the user to go file a bug and preventing the merge which would have
58 broken his system
59
60 > > > KEYWORDed arches bit, bit unlikely that the underlying arch is
61 > > > actually going to screw with the soname, thus I'd want actual examples
62 > > > backing it up.
63 > >
64 > > how about libc.so from glibc and libgcc.so from gcc ? or would you like
65 > > other packages ?
66 >
67 > Considering such a change would be internal ABI, NEEDED doesn't
68 > actually fix anything; if it were a soname change, level playing
69 > ground again.
70
71 it is a SONAME change, why else would i mention this
72
73 > Reiterating; devs should know the high level affects of their changes.
74
75 reiterating: you're hoping for the best; i'm looking at our history and
76 assuming that devs will make mistakes as everyone does
77
78 > If it's going to change the soname version, they should know from the
79 > get go- unless it's an arch specific breakage (which I still posit is
80 > the rare/corner case), they will *see* it for their arch and bump it
81 > already.
82
83 maybe, but it's still a possibility which analyzing of SONAME would catch
84
85 > Stating that things are broken doesn't make NEEDED automagically
86 > better either; *both* enable a way to fix it, so you need to justify
87 > the "accounting for the worst; not hoping for the best".
88
89 justify how ? would you like me to dig up the bugs where devs bumped packages
90 into stable and the SONAME change broke a ton of people's systems ? has it
91 never happened to you ?
92
93 > > > > or dig
94 > > > > through the source code line by line and hope to catch all such cases
95 > > > > by hand/eye ?
96 > > >
97 > > > Bit of FUD here, although I spose I'll just point out that if so's
98 > > > change as massively as you're implying above, the affects on -p are
99 > > > that much worse.
100 > >
101 > > awesome, mark something you disagree with as FUD, problem solved. my
102 > > point is that you can never know completely for sure the behavior of a
103 > > package without digging through the entire source code.
104 >
105 > It's FUD due to the fact NEEDED suffers the same fucking issue. The
106 > irony is that BINCOMPAT would at least give a knob to mark it as a
107 > breakage, NEEDED cannot.
108
109 and then you get angry ? try to have a discussion without getting all anxious
110 as that only wastes time
111
112 there's a few issues here, not just one ...
113 - ABI change w/no SONAME bump - impossible to catch without reading source;
114 BINCOMPAT would allow for it; NEEDED would not
115 - ABI change w/SONAME bump - BINCOMPAT would not catch; NEEDED would
116
117 > Frankly, if you don't believe me or think my points are correct about
118 > how a NEEDED based solution is going to suck, zac/jason/genone/anyone
119 > else. They're going to point out the same flaws.
120
121 if you dont want to hash out ideas on a development list but rather just
122 declare one right and one wrong, then feel free to leave. if you're confused
123 about my intentions here then let me set you straight. i see advantages to
124 both sides and i'm going to argue out problems until we have something good
125 to push back into portage. i dont really care if the final solution is "my
126 idea" or not; such personal ties is just stupid and helps no one.
127 -mike