Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o, "Michał Górny" <mgorny@g.o>, "Andreas K. Hüttel" <dilfridge@g.o>, Sam James <sam@g.o>
Cc: binhost@g.o
Subject: Re: [gentoo-dev] New project: binhost
Date: Wed, 24 Feb 2021 12:13:11
Message-Id: 446ccdce-3d5e-5796-e94a-121b73dc8b6b@gentoo.org
In Reply to: Re: [gentoo-dev] New project: binhost by Zac Medico
1 On 2/24/21 2:29 AM, Zac Medico wrote:
2 > For example, for 3 USE flags, up to 8 combinations will be indexed:
3 >
4 > IUSE="a b c installsources splitdebug"
5 > SRC_URI="
6 > !a? !b? !c? ( mirror://binhost/24fe6bd377 )
7 > !a? !b? c? ( mirror://binhost/fbe14cbb02 )
8 > !a? b? !c? ( mirror://binhost/1dfff1f2ac )
9 > !a? b? c? ( mirror://binhost/ae60f2940d )
10 > a? !b? !c? ( mirror://binhost/2976e1acc0 )
11 > a? !b? c? ( mirror://binhost/f4809db70c )
12 > a? b? !c? ( mirror://binhost/ecd08466cf )
13 > a? b? c? ( mirror://binhost/0c00f33b2e )
14 > installsources? (
15 > !a? !b? !c? ( mirror://binhost/063a14d6c7 )
16 > !a? !b? c? ( mirror://binhost/f67c311625 )
17 > !a? b? !c? ( mirror://binhost/1dfff1f2ac )
18 > !a? b? c? ( mirror://binhost/17a673e16a )
19 > a? !b? !c? ( mirror://binhost/914d1cecfe )
20 > a? !b? c? ( mirror://binhost/ca18d86a2b )
21 > a? b? !c? ( mirror://binhost/6bce13471a )
22 > a? b? c? ( mirror://binhost/3a6bdcd228 )
23 > )
24 > splitdebug? (
25 > !a? !b? !c? ( mirror://binhost/29b2f38c41 )
26 > !a? !b? c? ( mirror://binhost/8adc9bef51 )
27 > !a? b? !c? ( mirror://binhost/954d2ce484 )
28 > !a? b? c? ( mirror://binhost/32a614aaca )
29 > a? !b? !c? ( mirror://binhost/3548a2302d )
30 > a? !b? c? ( mirror://binhost/e0c02cdc88 )
31 > a? b? !c? ( mirror://binhost/f9cbd3c181 )
32 > a? b? c? ( mirror://binhost/31d4c03474 )
33 > )
34 > "
35 >
36 > For installsources, we can automate deduplication, so that we can
37 > distribute the same file content for multiple USE combinations when
38 > appropriate. If all of the combinations have identical content, then it
39 > will look like this:
40 >
41 > installsources? (
42 > !a? !b? !c? ( mirror://binhost/063a14d6c7 )
43 > !a? !b? c? ( mirror://binhost/063a14d6c7 )
44 > !a? b? !c? ( mirror://binhost/063a14d6c7 )
45 > !a? b? c? ( mirror://binhost/063a14d6c7 )
46 > a? !b? !c? ( mirror://binhost/063a14d6c7 )
47 > a? !b? c? ( mirror://binhost/063a14d6c7 )
48 > a? b? !c? ( mirror://binhost/063a14d6c7 )
49 > a? b? c? ( mirror://binhost/063a14d6c7 )
50 > )
51 >
52 > In order to ensure that an ebin is not selected for a USE combination
53 > that has not been built yet, combinations for existing builds will be
54 > listed in REQUIRED_USE, like this:
55 >
56 > REQUIRED_USE="
57 > || (
58 > ( !a !b !c )
59 > ( !a !b c )
60 > ( !a b !c )
61 > ( !a b c )
62 > ( a !b !c )
63 > ( a !b c )
64 > ( a b !c )
65 > ( a b c )
66 > )
67 > "
68
69 In https://bugs.gentoo.org/772380 I'm planning to implement a script
70 that will take an existing $PKGDIR as input, and generate an "ebin"
71 binhost as output. It will automatically split out pre-built content
72 bundles for installsources and splitdebug as shown above. If there is
73 more than one build for a particular package version and USE
74 combination, then the script will choose the package instance with
75 latest BUILD_TIME metadata (in alignment with
76 FEATURES=binpkg-multi-instance).
77 --
78 Thanks,
79 Zac

Attachments

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