1 |
>>>>> On Tue, 06 Apr 2021, Sam James wrote: |
2 |
|
3 |
> 1) @system varies between profiles anyway which makes it hard to fully |
4 |
> rely on; |
5 |
|
6 |
That's exactly the reason why you _don't_* add GNU grep as a dependency, |
7 |
because e.g. on Prefix grep may be provided by another package. |
8 |
|
9 |
grep is a POSIX tool and a bootstrap package, so we can be certain that |
10 |
will be available everywhere. (And the single grep instance in the |
11 |
eclass doesn't use any GNUisms.) |
12 |
|
13 |
> 2) As a few of us have discussed in #gentoo-portage in the past, |
14 |
> continuing this trend of not explicitly stating dependencies makes |
15 |
> parallelism in Portage difficult. You can try this with |
16 |
> —implicit-system-deps=n, but we really need to be stating what we use |
17 |
> explicitly. |
18 |
|
19 |
This would mean that we'd end up with lots of system dependencies in |
20 |
every ebuild. The current policy is in place for good reasons. |
21 |
|
22 |
You may have a point for adding library dependencies explicitly, but |
23 |
certainly not for common build tools (aka bootstrap packages). They will |
24 |
be available from the very beginning of the bootstrap process. |
25 |
|
26 |
> The benefit is enhanced parallelism and the downside is being |
27 |
> _slightly_ more verbose in some ebuilds; |
28 |
|
29 |
s/slightly/much/;s/some/all/ |
30 |
|
31 |
We'd end up having a significant subset of profiles/base/packages in |
32 |
_every_ ebuild. Or even worse, a bunch of any-of-many dependencies or |
33 |
virtuals, in order to account for different systems. Personally, I |
34 |
wouldn't be willing to maintain such dependencies for my ebuilds. |
35 |
|
36 |
More importantly, if you want such a policy change, then you should |
37 |
discuss it first and have it approved. Until then, the current policy |
38 |
[1] applies. |
39 |
|
40 |
> 3) Implicit dependencies make it hard for us to ever actually swap |
41 |
> implementations; |
42 |
|
43 |
> 4) This helps when creating minimal systems without Portage in it. |
44 |
|
45 |
[1] https://devmanual.gentoo.org/general-concepts/dependencies/index.html#implicit-system-dependency |