1 |
On Sun, 2 Sep 2012 17:51:00 +0200 |
2 |
Fabio Erculiani <lxnay@g.o> wrote: |
3 |
|
4 |
> On Sun, Sep 2, 2012 at 5:23 PM, Michał Górny <mgorny@g.o> |
5 |
> wrote: |
6 |
> > On Sun, 2 Sep 2012 17:09:22 +0200 |
7 |
> > Fabio Erculiani <lxnay@g.o> wrote: |
8 |
> > |
9 |
> >> On Sun, Sep 2, 2012 at 4:57 PM, hasufell <hasufell@g.o> |
10 |
> >> wrote: |
11 |
> >> > |
12 |
> >> > |
13 |
> >> > Why not introduce a global useflag such as "suggested-deps" which |
14 |
> >> > complies with GLEP 62 meaning it will be in IUSE_RUNTIME. |
15 |
> >> > |
16 |
> >> |
17 |
> >> How do you manage to fix the PDEPEND "identity disorder" problem |
18 |
> >> then? Teaching devs to move to GLEP 62 is much harder than just |
19 |
> >> telling them to move dep strings to more appropriate locations. |
20 |
> > |
21 |
> > Much harder? So, devs today don't know how USE flags work? Or do you |
22 |
> > implying that devs should know bare technical details of package |
23 |
> > manager implementation? Or is it just an-ass argument to support |
24 |
> > an ass-thesis? |
25 |
> |
26 |
> For instance, the amount of devs still improperly using pkg_setup for |
27 |
> build-time stuff, after years that they've been told to not do that, |
28 |
> is a good example of how, while we're great, we tend to be resilient |
29 |
> to change. This goes beyond software engineering, this is about |
30 |
> psychology. The more one thing is simple, the faster is recognized and |
31 |
> properly used by people. |
32 |
> |
33 |
> Not to mention that I am one of the PMS writers here (Entropy cough), |
34 |
> and I know how much harder implementing runtime-switchable USE flags |
35 |
> is, compared to a simple SDEPEND solution. |
36 |
|
37 |
Yes, I'm aware of that. You're trying to force a worse solution because |
38 |
it is easier for you to implement in your partial package manager. |
39 |
|
40 |
> >> Moreover, your solution just makes the USE flags abuse situation |
41 |
> >> worse: there are packages that use USE flags just to include extra, |
42 |
> >> optional packages in the dependencies... See USE=bluetooth in |
43 |
> >> net-misc/networkmanager for example (this is what I mean with USE |
44 |
> >> flags abuse, actually). |
45 |
> > |
46 |
> > No, it fixes it. It enables those packages to use the same solution, |
47 |
> > fixing its downsides. |
48 |
> |
49 |
> It looks like it just tries to workaround the issue, not fix it to its |
50 |
> roots (PDEPEND is ill!). |
51 |
|
52 |
It is invalid to use those packages in PDEPEND; even Ciaran will tell |
53 |
you that. |
54 |
|
55 |
> >> I'm not saying that SDEPEND is the best one-size-fits-all solution |
56 |
> >> but you may agree that's the simplest and most effective one. |
57 |
> > |
58 |
> > pkg_postinst() is simpler. USE flags are simple and very effective, |
59 |
> > yet incorrect. |
60 |
> |
61 |
> Could you tell me how would you plan to implement so API to read |
62 |
> "suggested" dependencies from pkg_postinst() output? |
63 |
> I understand that being API-friendly is not really the best feature of |
64 |
> Portage and ebuilds in general (one reason why our PackageKit backend |
65 |
> is a bit sucky) but this is not a good reason to keep doing things |
66 |
> like they've been always done. |
67 |
> (Information printed at pkg_postinst() is another interesting problem, |
68 |
> wrt API consumers, and this includes PackageKit, but I don't want to |
69 |
> drift away too much from the topic). |
70 |
> |
71 |
> > |
72 |
> > An effective SDEPEND implementation is definitely nowhere close |
73 |
> > to simple. Nor is presenting those dependencies to users. |
74 |
> |
75 |
> As I mentioned above, I know what it simple and what not, from a |
76 |
> Software Engineering point of view. And SDEPENDs are much simpler than |
77 |
> GLEP 62, and GLEP 62 does not fix the PDEPEND issue because |
78 |
> individuals will keep using it because at the end of the day, it is |
79 |
> order of magniture simpler than obscure new variables and USE flags. |
80 |
> As a rule of thumb, "simple" always shines over the complex and |
81 |
> convoluted in the long run. |
82 |
|
83 |
As long as it's complete. A simple incomplete solution is yet another |
84 |
hack which will have to be worked-around in the future again. And |
85 |
you'll end up with 5 different solutions which will have to somehow |
86 |
work together to solve a single problem (see: exheres). |
87 |
|
88 |
-- |
89 |
Best regards, |
90 |
Michał Górny |