]>
Commit | Line | Data |
---|---|---|
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 |