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)
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).
10 Ci dessous se trouvent des notes de ce que j’ai compris de la stack
11 stdenv (pkgs/stdenv/linux/default.nix)
18 `stagem1 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages`
19 -> contient cinq entrées (dont stdenv "invalide")
22 `stage0 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages`
23 (`stagem1 = stage0.stdenv.__bootPackages`)
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
36 `stage1 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages`
37 (`stage0 = stage1.stdenv.__bootPackages`)
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
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)
57 `stage2 = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages`
58 (`stage1 = stage2.stdenv.__bootPackages`)
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
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)
76 - libunistring = nuke-refs
78 - gnum4 = stage1.gnum4
79 - bison = stage1.bison
82 `stage3 = stdenv.__bootPackages.stdenv.__bootPackages`
83 (`stage2 = stage3.stdenv.__bootPackages`)
85 -> cc = cc-wrapper buildé avec
86 cc = stage2.gcc-unwrapped = bootstrapTools
87 bintools = stage2.binutils
89 coreutils = bootstrapTools
90 gnugrep = bootstrapTools
91 stdenvNoCC = stage2.ccWrapperStdenv = stage0.stdenv
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)
104 `stage4 = stdenv.__bootPackages`
105 (`stage3 = stage4.stdenv.__bootPackages`)
107 -> cc = cc-wrapper buildé avec
108 cc = stage3.gcc-unwrapped = override (isl)
109 bintools = stage2.binutils
111 coreutils = bootstrapTools
112 gnugrep = bootstrapTools
113 stdenvNoCC = stage3.ccWrapperStdenv = stage0.stdenv
116 - gettext gnum4 bison gmp perl texinfo zlib linuxHeaders libidn2 libunistring = stage3
117 - glibc = stage3.glibc = stage2.glibc
118 - binutils = override
120 cc = stage3.gcc-unwrapped
121 bintools = self.binutils
123 stdenvNoCC coreutils gnugrep = self
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