Gentoo Archives: gentoo-dev

From: Brian Dolbec <dolsen@g.o>
To: "gentoo-dev@l.g.o" <gentoo-dev@l.g.o>
Subject: [gentoo-dev] Re: toolchain update was Re: [gentoo-project] Re: Questions for candidates for Gentoo Council 2013/2014
Date: Sat, 06 Jul 2013 04:28:04
Message-Id: 1373084866.13901.16.camel@big_daddy.dol-sen.ca
1 On Fri, 2013-07-05 at 22:18 -0400, Rick "Zero_Chaos" Farina wrote:
2 > On 07/05/2013 09:41 PM, Ryan Hill wrote:
3 > > On Fri, 05 Jul 2013 15:47:08 -0400
4 > > "Rick \"Zero_Chaos\" Farina" <zerochaos@g.o> wrote:
5 > >
6 > >> -----BEGIN PGP SIGNED MESSAGE-----
7 > >> Hash: SHA1
8 > >>
9 > >>> Paweł was nice enough to write a patch for us to get toolchain.eclass up to
10 > >>> EAPI 5. I believe it still needs some pieces like prefix support and I
11 > >>> haven't reviewed it in depth but it looks good so far (and much simpler
12 > >>> than I thought (oops)). I'm planning on moving up an EAPI at a time,
13 > >>> bumping it whenever we could use new features or people start hucking fruit.
14 > >>>
15 > >>>
16 > >> I would be forever in your debt if toolchain were on eapi 5 and had
17 > >> proper subslot deps.
18 > >
19 > > What use case are you encountering? I hadn't planned on using subslots, but
20 > > I'm open to good reasons/bribery.
21 > >
22 > >
23 >
24 > Livecd builds work like this:
25 >
26 > stage3 tarball is unpacked, then toolchain (minimum package set) is
27 > built with ROOT=/tmp/stage1root and is linked to the original (seed
28 > stage) while being built.
29 >
30 > When we then move onto stage 2, it uses just the packages built during
31 > stage1 (/tmp/stage1root becomes /). This means, if seed stage has
32 > mpc.so.0.1 but portage has since included mpc.so.2 that the gcc in
33 > stage2 is linked against mpc.so.0.1 but only mpc.so.0.2 is installed.
34 >
35 > To combat this kind of failure we are currently running "emerge --update
36 > --deep --newuse --complete-graph --rebuild-if-new-ver gcc" which could
37 > just be "emerge --update gcc" if eapi 5 subslots were used properly.
38 >
39 > Please forgive me if any of these details aren't perfect, I'm using my
40 > best recollection of the most recent issue which happened when mpc was
41 > bumped a few months ago.
42 >
43 > I am available on irc quite a bit if you would like to discuss, however,
44 > if you want to keep it on the ML we really need to move this to -dev.
45 >
46 > Thanks,
47 > Zero
48
49 Continuing this on -dev mail list.
50
51
52 The other thing we needed to do was completely remove the use of or
53 building of binpkgs during the update_seed stage. Portage has no
54 capability to check binpkg linking to ensure the binpkg was properly
55 usable. EAPI 5 subslots also put that info into the DEPENDS so portage
56 then considers that information. It would then reject a binpkg properly
57 and build from source due to the abi mismatch. I might also add that
58 using broken binpkgs in catalyst (like the mpc update) cause delayed
59 breakage, making trouble shooting the problem more difficult.
60
61 With proper use of subslots for base system pkgs, binpkgs can be re-used
62 safely, saving both build and turn around time to get fully working
63 stages and livecd's etc. in catalyst released. The same holds true for
64 user systems that build and try to reuse binkgs.

Replies