1 |
On Sun, 2022-02-13 at 07:37 +0000, Robin H. Johnson wrote: |
2 |
> On Sat, Feb 12, 2022 at 10:58:27PM +0100, Michał Górny wrote: |
3 |
> > The "better solution" has already been provided -- repackage it. |
4 |
> I had asked people to clarify the problems, and you still didn't |
5 |
> actually provide a clear problem statement. |
6 |
> |
7 |
> I'll try and paraphrase what I feel the problem statement you're making |
8 |
> is: |
9 |
> - TL;DR: Golang-package ebuilds account for a disproportionate amount of |
10 |
> Manifest space in the tree. |
11 |
> - Golang-package ebuilds account for 55% of all DIST entries in the tree. |
12 |
|
13 |
Let's not forget that each ebuild is almost as big as the relevant |
14 |
Manifest entries... |
15 |
|
16 |
> - Even if de-duped, it still be would be 24% of all DIST entries in the |
17 |
> tree. |
18 |
|
19 |
...so even if you dedupe Manifests, ebuilds will still account for major |
20 |
space waste. |
21 |
|
22 |
> - Rust is 8% baseline, 6% if de-duped. |
23 |
> |
24 |
> > All of your solutions solve only part of the problem, and usually |
25 |
> > introduce more problems. The current distfile fetching solution works |
26 |
> > well for over 99% of the Gentoo packages today (this is not "the 99%" |
27 |
> > but actual numbers, more below). The problem is with Go, and Go needs |
28 |
> > to be fixed (or worked around), and don't extend it to "theoretically |
29 |
> > Rust or NodeJS" because they're nowhere close to how badly designed Go |
30 |
> > ecosystem is. |
31 |
> |
32 |
> "just repackage it" |
33 |
> - Is that in line with the licenses of ALL of distfiles? |
34 |
|
35 |
I don't know how that "goproxy" thing works exactly but I suppose if |
36 |
they can provide downloads for these packages, then we should be able |
37 |
as well. |
38 |
|
39 |
> - If the combined gentoo-specific distfile is 100MB per $PV, you're now |
40 |
> forcing 100MB of new downloads for each version. |
41 |
|
42 |
Lesser evil. |
43 |
|
44 |
> - Is it easy enough for any overlay author to use? |
45 |
> - How are you going to trust every overlay's repacking of the distfiles: |
46 |
> that they didn't include malicious code in the distfile, that wouldn't |
47 |
> be caught in a review of the ebuild? |
48 |
|
49 |
How are you going to trust anything coming from overlays? It's not like |
50 |
people have to resort to super-complex methods of adding something |
51 |
malicious. |
52 |
|
53 |
> |
54 |
> I haven't done a full analysis of how much space it would end up take, |
55 |
> |
56 |
> But as a quick version, let's consider Vault 1.8.x series. |
57 |
> |
58 |
> vault-1.8.6 -> vault-1.8.7 didn't change distfiles. |
59 |
> vault-1.8.7 -> vault-1.8.8 |
60 |
> |
61 |
> 1.8.6 -> 368MB worth of distfiles |
62 |
> of which 22-24MB are different from 1.8.7 & 1.8.8 |
63 |
> |
64 |
> So naively, if you re-packaged those 3 versions, 368MiBx3 => 1104MiB on |
65 |
> the mirrors. |
66 |
> |
67 |
> Or just 413MiB of unique distfiles between the versions. |
68 |
> |
69 |
> So save your 18MiB of disk space of Manifest lines, or 691MiB. |
70 |
|
71 |
Our duty is primarily towards Gentoo users, not mirror admins. Mirror |
72 |
admins have signed up for hosting potentially large distfiles. |
73 |
|
74 |
Then, there's a major difference between temporarily spend 1G |
75 |
on a relatively small number of mirrors, and wasting 18 MiB on *all* |
76 |
user systems. Not to mention git history that's going to be growing |
77 |
forever, permanently wasting space on old versions of Go software. |
78 |
|
79 |
> I feel the "re-packaging" is worse than the situation that they're in. |
80 |
|
81 |
No, it's not. The situation we're in is causing *permanent* damage, |
82 |
and the longer we stall, the worse it gets. |
83 |
|
84 |
> So how do we find some reasonable solution between this? |
85 |
> - Not waste DIST lines space on every copy of the repo |
86 |
> - Not cause waste space on Gentoo mirrors |
87 |
> - Not cause waste download bandwidth when very little data has changed |
88 |
|
89 |
- Not waste space with humongous ebuilds |
90 |
- Not consume insane number of inodes on tiny files |
91 |
|
92 |
-- |
93 |
Best regards, |
94 |
Michał Górny |