Gentoo Archives: gentoo-dev

From: "M. J. Everitt" <m.j.everitt@×××.org>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [pre-GLEP] Gentoo binary package container format [gentoo@jonesmz.com]
Date: Mon, 19 Nov 2018 10:46:12
Message-Id: 59f168d7-1e9e-df05-7619-452dd534172c@iee.org
In Reply to: Re: [gentoo-dev] [pre-GLEP] Gentoo binary package container format [gentoo@jonesmz.com] by Zac Medico
1 On 18/11/18 22:40, Zac Medico wrote:
2 > On 11/18/18 1:55 PM, Rich Freeman wrote:
3 >> On Sun, Nov 18, 2018 at 4:10 PM Roy Bamford <neddyseagoon@g.o> wrote:
4 >>> Replying off list because I am not on the whitelist.
5 >> That seems odd.
6 >>
7 >>> 1) append a uuid to each filename. Generated when the bin package file is generated.
8 >>> 2) encode the hostname of the machine that generated the file
9 >>> 3) encode the use flags in the filename.
10 >> So, I brought up this same issue in the earlier discussion and it was
11 >> considered out of scope, and I think this is fair. The GLEP does not
12 >> specify filename, and IMO the standard for what goes INSIDE the file
13 >> will work just fine with any future enhancements that address exactly
14 >> this use case.
15 >>
16 >> Besides your case of building for a cluster, another use case is
17 >> having a central binary repo that portage could check and utilize when
18 >> a user's preferences happen to match what is pre-built.
19 >>
20 >> I suggest we start a different thread for any additional discussion of
21 >> this use case. I was thinking and it probably wouldn't be super-hard
22 >> to actually start building something like this. But, I don't want to
23 >> derail this GLEP as I don't see any reason designing something like
24 >> this needs to hold up the binary package format. Both the existing
25 >> and proposed binary package formats will encode any metadata needed by
26 >> the package manager inside the file, and the only extension we need is
27 >> to encode identifying info in the filename.
28 >>
29 >> My idea is to basically have portage generate a tag with all the info
30 >> needed to identify the "right" package, take a hash of it, and then
31 >> stick that in the filename. Then when portage is looking for a binary
32 >> package to use at install time it generates the same tag using the
33 >> same algorithm and looks for a matching hash. If a hit is found then
34 >> it reads the complete metadata in the file and applies all the sanity
35 >> checks it already does. Generating of binary packages with the hash
36 >> cold be made optional, and portage could also be configured to first
37 >> look for the matching hash, then fall back to the existing naming
38 >> convention, so that it would be compatible with existing generic
39 >> names. So, users would get a choice as to whether they want to build
40 >> up a library of these packages, or just have each build overwrite the
41 >> last.
42 >>
43 >> Then the next step would be to allow these files to be fetched from a
44 >> binary repo optionally, and then finally we'd need tools to create the
45 >> repo. But, this step isn't needed for your use case. With the proper
46 >> optional switches you could utilize as much of this scheme as you
47 >> like.
48 >>
49 >> Also, you could optionally choose how much you want portage to encode
50 >> in the tag and look for. Are you very fussy and only want a binary
51 >> package with matching CFLAGS/USE/whatever? Or is just matching
52 >> USE/arch/etc enough? Some of the existing portage options could
53 >> potentially be re-used here.
54 > We've already had this handled for a couple years now, via
55 > FEATURES=binpkg-multi-instance.
56 Working fine for me for catalyst ARM runs ...

Attachments

File name MIME type
signature.asc application/pgp-signature