Gentoo Archives: gentoo-project

From: "Michał Górny" <mgorny@g.o>
To: gentoo-project@l.g.o
Subject: Re: [gentoo-project] Call for agenda items - Council meeting on 2022-02-13
Date: Sun, 13 Feb 2022 10:03:41
Message-Id: f49b8db8a97f40616410ca5c8186cd32e78bbcde.camel@gentoo.org
In Reply to: Re: [gentoo-project] Call for agenda items - Council meeting on 2022-02-13 by "Robin H. Johnson"
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

Replies

Subject Author
Re: [gentoo-project] Call for agenda items - Council meeting on 2022-02-13 "Robin H. Johnson" <robbat2@g.o>