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 |