On Tue, 2022-06-14 at 19:03 +0200, Florian Schmaus wrote:
> On 14.06.22 18:33, Holger Hoffstätte wrote:
> > So my idea here is: instead of chucking EGO_SUM (automatically
> > generated declarative dependency management) out the window, can we not
> > separate the two and instead of uploading the tarball upload the
> > dependency set instead?
> I think that this idea that has been pitched already (see for example 
> Robin's post [1]), although in a broader non-Go-specific sense and it is 
> one obvious way to move forward.
> 
> An, and probably the largest, obstacle is that this can not be 
> implemented in an eclass alone. Due the sandboxing during the build 
> process, fetching distfiles, which is what we are talking about, is the 
> package managers job and hence, I believe, this would require adustments 
> to the package manager and package manager specification (PMS).
> 
> The basic idea, at least to my understanding (or how I would propose 
> it), is to have a new top-level ebuild variable
> 
> SRC_URI_FILE="https://example.org/manifests/restic-0.13.1.files";
> 
> where restic-0.13.1.files contains lines like
> 
> <SRC_URI> <SIZE> <HASH> [<TARGET_FILENAME>]
> 
> which is, as you nicely demonstrated on the restic ebuild, where the 
> bytes contributing to the ebuild size bloat originate from.
> 
> Those bytes are now outsourced from ::gentoo, can be fetched on-demand, 
> allowing the package manager to download the individual distfiles into 
> DISTDIR, where an, e.g., the go eclass can process them further within 
> the constraints of the security sandbox.
> 

Anything that involves breaking the Portage plan-depgraph / fetch&build
separately would require major architectural changes, so can be rejected
immediately as "not going to be implemented in our lifetimes".

-- 
Best regards,
Michał Górny


Reply via email to