]> git.immae.eu Git - perso/Immae/Config/Nixies.git/blame - stdenv_prefix/stdenv.md
Add stdenv_prefix
[perso/Immae/Config/Nixies.git] / stdenv_prefix / stdenv.md
CommitLineData
b4e94e5f
IB
1Ce dossier contient un travail permettant de créer des dérivations qui
2vont toutes commencer par un préfix de taille et avec un nombre de
3composants donné (de la forme x/x/xxxxx)
4
5Le but étant de pouvoir copier une closure d’une dérivation, la mettre
6par 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
10Ci dessous se trouvent des notes de ce que j’ai compris de la stack
11stdenv (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