Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o, "Holger Hoffstätte" <holger@××××××××××××××××××.com>
Subject: Re: [gentoo-dev] Re: Proposal to undeprecate EGO_SUM
Date: Fri, 17 Jun 2022 19:04:14
Message-Id: 829ce1f8c48aec7b5443f471070b75518623a270.camel@gentoo.org
In Reply to: Re: [gentoo-dev] Re: Proposal to undeprecate EGO_SUM by "Michał Górny"
1 On Wed, 2022-06-15 at 07:53 +0200, Michał Górny wrote:
2 > On Tue, 2022-06-14 at 19:03 +0200, Florian Schmaus wrote:
3 > > On 14.06.22 18:33, Holger Hoffstätte wrote:
4 > > > So my idea here is: instead of chucking EGO_SUM (automatically
5 > > > generated declarative dependency management) out the window, can we not
6 > > > separate the two and instead of uploading the tarball upload the
7 > > > dependency set instead?
8 > > I think that this idea that has been pitched already (see for example
9 > > Robin's post [1]), although in a broader non-Go-specific sense and it is
10 > > one obvious way to move forward.
11 > >
12 > > An, and probably the largest, obstacle is that this can not be
13 > > implemented in an eclass alone. Due the sandboxing during the build
14 > > process, fetching distfiles, which is what we are talking about, is the
15 > > package managers job and hence, I believe, this would require adustments
16 > > to the package manager and package manager specification (PMS).
17 > >
18 > > The basic idea, at least to my understanding (or how I would propose
19 > > it), is to have a new top-level ebuild variable
20 > >
21 > > SRC_URI_FILE="https://example.org/manifests/restic-0.13.1.files"
22 > >
23 > > where restic-0.13.1.files contains lines like
24 > >
25 > > <SRC_URI> <SIZE> <HASH> [<TARGET_FILENAME>]
26 > >
27 > > which is, as you nicely demonstrated on the restic ebuild, where the
28 > > bytes contributing to the ebuild size bloat originate from.
29 > >
30 > > Those bytes are now outsourced from ::gentoo, can be fetched on-demand,
31 > > allowing the package manager to download the individual distfiles into
32 > > DISTDIR, where an, e.g., the go eclass can process them further within
33 > > the constraints of the security sandbox.
34 > >
35 >
36 > Anything that involves breaking the Portage plan-depgraph / fetch&build
37 > separately would require major architectural changes, so can be rejected
38 > immediately as "not going to be implemented in our lifetimes".
39 >
40
41 Just to be clear, I'm not against this proposal. In fact, I think it's
42 probably the best solution that's been proposed so far. What I wanted
43 to point out is that we probably don't have anyone who would actually
44 implement that.
45
46 --
47 Best regards,
48 Michał Górny