1 |
On Wed, 2022-11-23 at 08:38 +0100, Michał Górny wrote: |
2 |
> Hello, everyone. |
3 |
> |
4 |
> TL;DR: I'd like to add sys-meta/{cpio,sh,tar} to install and control |
5 |
> (via USE flags) /bin/{cpio,sh,tar} symlinks. |
6 |
> |
7 |
> Draft PR: https://github.com/gentoo/gentoo/pull/28390 |
8 |
> |
9 |
|
10 |
I generally favor using the package manager in these situations, but |
11 |
there's a lot of user-facing documentation (and user configurations) |
12 |
that will need updating. We should probably have a GLEP -- and |
13 |
eventually a news item -- for this. |
14 |
|
15 |
A few comments: |
16 |
|
17 |
* The new category is a bit annoying. I know the PMS says that |
18 |
virtuals can't install files, but having an entirely separate |
19 |
category for virtuals that install a symlink feels excessive. |
20 |
Not that I have a better idea. |
21 |
|
22 |
* The name also suggests to me that it will control sys-* |
23 |
implementations, but the victims so far are all app-*. Obviously, |
24 |
we don't want twenty *-meta categories though. |
25 |
|
26 |
* The -meta prefix is already used in a bunch of ebuilds to mean |
27 |
something different. The packages in sys-meta won't be |
28 |
"metapackages" in the same sense. |
29 |
|
30 |
* Should we replace app-arch/tar with sys-meta/tar in @system? |
31 |
|
32 |
* Having to specify the relationship twice (once in the sys-meta |
33 |
package and once in each implementation) is also a bit ugly, as is |
34 |
having to account for the symlink not being installed (yet) in |
35 |
each implementation's pkg_postinst. This made me wonder, could |
36 |
the RDEPEND/PDEPEND be reversed? In other words, could (say) GNU |
37 |
tar require that the symlink be present immediately, but the |
38 |
metapackage only require that some implementation be merged |
39 |
eventually? |
40 |
|
41 |
To answer my own question, the PMS says that PDEPENDs "must be |
42 |
installed at some point before the package manager finishes the |
43 |
batch of installs," which would be problematic if some later |
44 |
package in the batch actually needed a tar implementation |
45 |
available to build. We can't change the PMS, so installing a |
46 |
symlink in the implementation ebuilds avoids the issue, but still |
47 |
eventually cedes control to the sys-meta package. |
48 |
|
49 |
I guess you already thought through all of that? If so, it would be |
50 |
nice to have the rationale written down somewhere that we can refer |
51 |
back to. |
52 |
|
53 |
* Is it worth thinking about improvements to EAPI=? that could help |
54 |
us here? By e.g. allowing virtuals to install symlinks, or by |
55 |
making PDEPEND kick in sooner (after this package, but before the |
56 |
rest of the batch)? |
57 |
|
58 |
Despite all the skeptical-sounding feedback, I think this is a good |
59 |
idea, and an improvement over eselect. |