diff options
Diffstat (limited to 'stdenv_prefix/stdenv.md')
-rw-r--r-- | stdenv_prefix/stdenv.md | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/stdenv_prefix/stdenv.md b/stdenv_prefix/stdenv.md new file mode 100644 index 0000000..f58455a --- /dev/null +++ b/stdenv_prefix/stdenv.md | |||
@@ -0,0 +1,133 @@ | |||
1 | Ce dossier contient un travail permettant de créer des dérivations qui | ||
2 | vont toutes commencer par un préfix de taille et avec un nombre de | ||
3 | composants donné (de la forme x/x/xxxxx) | ||
4 | |||
5 | Le but étant de pouvoir copier une closure d’une dérivation, la mettre | ||
6 | par exemple dans /opt/nix/store/....-foo et avec un simple `rename` + | ||
7 | `sed` la rendre utilisable (dans l’exemple /nix/store/....-foo/xxx -> | ||
8 | /opt/nix/store/....-foo). | ||
9 | |||
10 | Ci dessous se trouvent des notes de ce que j’ai compris de la stack | ||
11 | stdenv (pkgs/stdenv/linux/default.nix) | ||
12 | |||
13 | # Stage -1 | ||
14 | gcc-unwrapped = null | ||
15 | binutils = null | ||
16 | coreutils = null | ||
17 | gnugrep = null | ||
18 | `stagem1 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages` | ||
19 | -> contient cinq entrées (dont stdenv "invalide") | ||
20 | |||
21 | # Stage 0 | ||
22 | `stage0 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages` | ||
23 | (`stagem1 = stage0.stdenv.__bootPackages`) | ||
24 | `stage0.stdenv` | ||
25 | -> cc = null | ||
26 | `stage0` | ||
27 | overrides: | ||
28 | - glibc = extrait (ln -s) de bootstrapTools (bootstrap-stage0-glibc) | ||
29 | - gcc-unwrapped = bootstrapTools | ||
30 | - binutils = wrapper sur bootstrapTools (bootstrap-stage0-binutils-wrapper) | ||
31 | - coreutils = bootstrapTools | ||
32 | - gnugrep = bootstrapTools | ||
33 | - ccWrapperStdenv = stage0.stdenv | ||
34 | |||
35 | # Stage 1 | ||
36 | `stage1 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages` | ||
37 | (`stage0 = stage1.stdenv.__bootPackages`) | ||
38 | `stage1.stdenv` | ||
39 | -> cc = cc-wrapper buildé avec | ||
40 | cc = stage0.gcc-unwrapped = bootstrapTools | ||
41 | bintools = stage0.binutils = bootstrap-stage0-binutils-wrapper | ||
42 | glibc = stage0.glibc = bootstrap-stage0-glibc | ||
43 | coreutils = stage0.coreutils = bootstrapTools | ||
44 | gnugrep = stage0.gnugrep = bootstrapTools | ||
45 | stdenvNoCC = stage0.ccWrapperStdenv = stage0.stdenv | ||
46 | `stage1` | ||
47 | overrides: | ||
48 | - binutils-unwrapped = override (gold = false) | ||
49 | - ccWrapperStdenv = stage0.stdenv | ||
50 | - gcc-unwrapped = bootstrapTools | ||
51 | - coreutils = bootstrapTools | ||
52 | - gnugrep = bootstrapTools | ||
53 | - glibc = bootstrap-stage0-glibc | ||
54 | - perl = override (threading = false) | ||
55 | |||
56 | # Stage 2 | ||
57 | `stage2 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages` | ||
58 | (`stage1 = stage2.stdenv.__bootPackages`) | ||
59 | `stage2.stdenv` | ||
60 | -> cc = cc-wrapper buildé avec | ||
61 | cc = stage1.gcc-unwrapped = bootstrapTools | ||
62 | bintools = stage1.binutils = wrapper sur binutils-unwrapped (gold = false) | ||
63 | glibc = bootstrap-stage0-glibc | ||
64 | coreutils = bootstrapTools | ||
65 | gnugrep = bootstrapTools | ||
66 | stdenvNoCC = stage1.ccWrapperStdenv = stage0.stdenv | ||
67 | `stage2` | ||
68 | overrides: | ||
69 | - ccWrapperStdenv = stage0.stdenv | ||
70 | - gcc-unwrapped = bootstrapTools | ||
71 | - coreutils = bootstrapTools | ||
72 | - gnugrep = bootstrapTools | ||
73 | - perl = override (threading = false) | ||
74 | - binutils = stage1.override (libc = self.glibc) | ||
75 | - libidn2 = nuke-refs | ||
76 | - libunistring = nuke-refs | ||
77 | - dejagnu = nocheck | ||
78 | - gnum4 = stage1.gnum4 | ||
79 | - bison = stage1.bison | ||
80 | |||
81 | # Stage 3 | ||
82 | `stage3 = stdenv.__bootPackages.stdenv.__bootPackages` | ||
83 | (`stage2 = stage3.stdenv.__bootPackages`) | ||
84 | `stage3.stdenv` | ||
85 | -> cc = cc-wrapper buildé avec | ||
86 | cc = stage2.gcc-unwrapped = bootstrapTools | ||
87 | bintools = stage2.binutils | ||
88 | glibc = stage2.glibc | ||
89 | coreutils = bootstrapTools | ||
90 | gnugrep = bootstrapTools | ||
91 | stdenvNoCC = stage2.ccWrapperStdenv = stage0.stdenv | ||
92 | `stage3` | ||
93 | overrides: | ||
94 | - ccWrapperStdenv = stage0.stdenv | ||
95 | - binutils = stage2.binutils | ||
96 | - coreutils = bootstrapTools | ||
97 | - gnugrep = bootstrapTools | ||
98 | - perl patchelf linuxHeaders gnum4 bison libidn2 libunistring = stage2 | ||
99 | - glibc = stage2.glibc | ||
100 | - gmp mpfr libmpc isl_0_20 = override static | ||
101 | - gcc-unwrapped = override (isl) | ||
102 | |||
103 | # Stage 4 | ||
104 | `stage4 = stdenv.__bootPackages` | ||
105 | (`stage3 = stage4.stdenv.__bootPackages`) | ||
106 | `stage4.stdenv` | ||
107 | -> cc = cc-wrapper buildé avec | ||
108 | cc = stage3.gcc-unwrapped = override (isl) | ||
109 | bintools = stage2.binutils | ||
110 | glibc = stage2.glibc | ||
111 | coreutils = bootstrapTools | ||
112 | gnugrep = bootstrapTools | ||
113 | stdenvNoCC = stage3.ccWrapperStdenv = stage0.stdenv | ||
114 | `stage4` | ||
115 | overrides: | ||
116 | - gettext gnum4 bison gmp perl texinfo zlib linuxHeaders libidn2 libunistring = stage3 | ||
117 | - glibc = stage3.glibc = stage2.glibc | ||
118 | - binutils = override | ||
119 | - gcc = buildé avec | ||
120 | cc = stage3.gcc-unwrapped | ||
121 | bintools = self.binutils | ||
122 | libc = self.glibc | ||
123 | stdenvNoCC coreutils gnugrep = self | ||
124 | |||
125 | # Final Stage | ||
126 | `stdenv` | ||
127 | cc = stage4.gcc | ||
128 | `pkgs` | ||
129 | overrides: | ||
130 | - glibc = stage4.glibc = stage2.glibc | ||
131 | - zlib libidn2 libunistring = stage4 = stage3 | ||
132 | - (hors cross-compile) binutils binutils-unwrapped = stage4 | ||
133 | - (hors cross-compile) gcc = cc | ||