Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [RFC] New file layout for PKGDIR and binhosts
Date: Mon, 29 Dec 2014 03:53:12
Message-Id: 54A0D022.30701@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [RFC] New file layout for PKGDIR and binhosts by "Rick \\\"Zero_Chaos\\\" Farina"
1 On 12/27/2014 06:25 AM, Rick "Zero_Chaos" Farina wrote:
2 > On 12/23/14 20:51, Zac Medico wrote:
3 >> Hi,
4 >>
5 >> As discussed in bug 150031 [1], it would be useful if PKGDIR could
6 >> accommodate multiple binary packages built from the same source ebuild.
7 >> Use cases for preserving multiple builds typically involve supporting
8 >> multiple clients (with partially compatible configurations) from a
9 >> single unified binhost. In this context, some of the reasons to retain
10 >> multiple builds are:
11 >>
12 >> * Different USE flag combinations enabled (--newuse/--binpkg-respect-use
13 >> needed)
14 >>
15 >> * Different versions of installed dependencies (EAPI 5 slot := operators
16 >> needed)
17 >>
18 >> * Different repositories/overlays, with variance in the time of the last
19 >> sync (--changed-deps/--binpkg-changed-deps needed if dependencies change
20 >> due to eclass changes or ebuild modifications without revbump)
21 >
22 > I'm not saying don't take this into account, but in reality, this isn't
23 > a problem we should have to deal with.
24
25 Who is we? How do you know that whatever practices you use will also be
26 utilized by everyone else out there?
27
28 > if users want to rely on binpkgs
29 > they should be syncing to the same rev the binhost used to generate
30 > them. it's a reasonably trivial task to do this, even as simple as
31 > daily webrsync or something.
32
33 The --changed-deps/--binpkg-changed-deps are also useful for the same
34 reason that emerge --dynamic-deps is enabled by default:
35
36 * On the binhost server side, --changed-deps is an easy way to rebuild
37 packages so the resulting binary packages have the latest deps, which
38 may be necessary in order for the dependencies to be *satisfiable*.
39
40 * On the binhost client side, --binpkg-changed-deps can be used to
41 reject binary packages that haven't been rebuilt with the latest
42 dependency specifications, avoiding inconsistent dependencies that may
43 not be *satisfiable*.
44
45 Sure, the --binpkg-changed-deps thing may not be needed for whatever
46 limited use cases you are thinking of, but lets not force the same
47 limits on everyone else.
48
49 > To handle users with a different class or
50 > ebuild version will prove difficult I believe, and worse, it will make
51 > possibly dozens of extra binpkg revs for basically no reason.
52
53 As discussed the above, these "extra binpkg revs" may be needed in order
54 for the dependencies to be *satisfiable*. The cost of rebuilding
55 packages can be considered negligible in comparison to the time that
56 people would otherwise have to spend in order to manually resolve issues
57 involving dependencies that are unsatisfiable.
58 --
59 Thanks,
60 Zac