Gentoo Archives: gentoo-alt

From: Fabian Groffen <grobian@g.o>
To: gentoo-alt@l.g.o
Subject: [gentoo-alt] [PREFIX] revolutions in the bootstrapping world
Date: Mon, 13 Aug 2012 09:06:08
Message-Id: 20120813065958.GD84847@gentoo.org
1 All,
2
3 Over the past few days, I've changed lots in the bootstrapping
4 procedures itself, and mostly the bootstrap-prefix.sh script.
5
6 In short, I've completely changed my attitude towards education of the
7 users of Gentoo Prefix, and in fact put my knowledge in a script, for it
8 to revolve till eternity, hopefully making many bootstraps flawless.
9
10 Things I've changed:
11 - versioned targets no longer used
12 Things like patch259 sometimes do still exist, but are no longer
13 referenced. Instead, the generic target (patch in this case) tries
14 out in sequence a couple of versions, with hopefully one not failing.
15 This has the advantage that we can add new versions, and if they break
16 some platforms that's not necessarily an issue, while they might fix
17 other platforms, from which we benefit then.
18 - downloading GNU targets is slightly smarter
19 The code now loops over .tar.xz, .tar.gz and .tar to find the
20 availability of a file. If the host can't unpack one, it also
21 continues to the next. This can possibly be optimised by not trying
22 to download e.g. the .xz first. If the file cannot be found on the
23 Gentoo mirrors, the script tries the official GNU mirrors instead.
24 - solaris bootstrap guide is now unix-like bootstrap guide
25 The Solaris bootstrap guide now is de-solaris-ised. It contains
26 pointers for UNIX-like platforms, in detail at the moment for Solaris,
27 FreeBSD and Mac OS X. The guide isn't up to date at the moment, see
28 auto-bootstraps below.
29 - the freebsd and macos bootstrap guides should go
30 They are incorporated in the UNIX-like guide, so just maintenance
31 overhead.
32 - introduced stage1, stage2 and stage3
33 The stage1 meta function performs the initial steps of getting
34 packages necessary to bootstrap the first Portage instance. It does
35 all but Portage itself. stage2 downloads and unpacks a Portage tree,
36 and then installs Portage and sets up a profile. Finally, stage3 does
37 everything up to and excluding the emerge -e system step. This means,
38 all the logic of emerging packages with/without deps and figuring out
39 which packages exactly. Note that all three stages can resume where
40 they left off. Care has been taken to detect if a certain task has
41 already been done, to ease continuing the bootstrapping process in
42 case of errors.
43 - introduced the interactive installer
44 When ./bootstrap-prefix.sh is ran without arguments, it starts an
45 interactive installer session. It checks some things in your
46 environment and asks you some questions about your bootstrap. That
47 is, it sets EPREFIX, PATH, MAKEOPTS, CHOST, runs stage1, stage2,
48 stage3, emerge -e system and finally creates the startscript.
49
50 I hope this can ease bootstrapping for many of you, and resolve lots of
51 common problems. I've successfully verified it to work in the past few
52 days on x86-solaris (10), x86-macos (Lion), x86-macos (Leopard),
53 x64-macos (Lion), and I've heard that x64-macos (Mountain Lion) also
54 worked.
55
56 The docs must be updated and cleaned up to advertise the new and
57 preferred option of following the interactive installer.
58
59
60 --
61 Fabian Groffen
62 Gentoo on a different level

Attachments

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

Replies