doc: Add fosdem21 talk.
|
@ -1,4 +1,5 @@
|
|||
# time grep -E '^([^#]|$)' autocue.org | sed -re 's/^[*]+.*/. . slide. ./' | head -264 | tr '\n' ' ' | espeak -s 110 -l 1
|
||||
# grep -E '^([^#]|$)' autocue.org | sed -re 's/^[*]+.*/. . slide. ./' | head -264 | tr '\n' ' ' | espeak -s 110 -l 1 --stdin -w fosdem20.wav
|
||||
# ffmpeg -i fosdem21.wav |& grep Duration:
|
||||
#+TITLE: GNU Mes
|
||||
|
||||
* Introduction
|
||||
|
|
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,81 @@
|
|||
https://www.scivision.dev/beamer-latex-dual-display-pdf-notes/
|
||||
|
||||
* oproep: wereld moet het gaan begrijpen
|
||||
* hardware boys
|
||||
* politiek actiever worden om dit te vereisen: trusted computing base
|
||||
* free software: moet mensenrecht worden
|
||||
* need your help
|
||||
|
||||
|
||||
Technical requirements: Please adhere to the following technical requirements for your FOSDEM 2021 presentation video:
|
||||
|
||||
resolution: 1280x720
|
||||
frame rate: 25 fps
|
||||
video codec: h264 video codec, main profile
|
||||
video bitrate: <= 2Mbit/s
|
||||
audio codec: aac audio codec
|
||||
audio sample rate: 48 KHz mono
|
||||
audio bitrate: 128 Kbit/s
|
||||
media container: mp4
|
||||
|
||||
|
||||
https://github.com/stikonas/live-bootstrap
|
||||
|
||||
|
||||
On May 18, 2020, GCC moved away from ISO/IEC C++03 standard to ISO/IEC
|
||||
C++11 standard needed to compile, bootstrap, the compiler itself.
|
||||
|
||||
Supported releases
|
||||
|
||||
|
||||
GCC 4.9.4 released [2016-08-03]
|
||||
|
||||
June 12, 2014
|
||||
|
||||
The GNU project and the GCC developers are pleased to announce the release of GCC 4.7.4.
|
||||
|
||||
|
||||
GCC 4.8.1 will be C++11 feature-complete [2013-04-01]
|
||||
Support for C++11 ref-qualifiers was added to the GCC 4.8 branch, making G++ the first C++ compiler to implement all the major language features of the C++11 standard. This functionality will be available in GCC 4.8.1.
|
||||
|
||||
* hoe sturen we olietanker bij
|
||||
|
||||
* als je bootstrappen serieus wilt nemen, zullen we dit moeten
|
||||
supporten
|
||||
|
||||
* voldongen feit, geen awareness
|
||||
|
||||
** megolomane visie **: all software must be bootstrappable
|
||||
|
||||
** niet-bootstrappable: geen controle over binaries, trust
|
||||
|
||||
*** Choices: *giving up*
|
||||
**** finding great reasons for giving up
|
||||
|
||||
ik houd van yoghurt, melk is verzekerd, moet ik vasthouden aan yoghurt
|
||||
* stel nou dat iemand mijn yoghurt, lawyers
|
||||
* stel nou op n dag, mijn yoghurt is bedorven
|
||||
|
||||
* it just doesn't feel right
|
||||
|
||||
* i call upon you to understand what it means for You (you, me, the free
|
||||
software world, humanity)
|
||||
|
||||
* ultieme vrijheid: als je niemand nodig hebt
|
||||
* je hebt niks aan broncode, het moet omgezet
|
||||
* 0001100101 machine code is abundant, maar geen garantie
|
||||
* imagine this press release: intel,ppc,arm are all compromised
|
||||
|
||||
* wat gaat de wereld hiermee doen?
|
||||
** gaan we een vrijere wereld cre-eren?
|
||||
** do we just forget this idea, and keep trusting yoghurt
|
||||
|
||||
** bitcoin example
|
||||
** sit back and place your bets on the apocolypse
|
||||
** hardware
|
||||
|
||||
** less control or more control ... place your bets
|
||||
** bootstrappability pandamic
|
||||
** enormous gamble
|
||||
** bitcoin?
|
||||
** health care?
|
|
@ -0,0 +1,15 @@
|
|||
guix environment --ad-hoc espeak xwininfo recordmydesktop
|
||||
xwininfo
|
||||
recordmydesktop --delay 3 --windowid 0x1e0000e -x 50 -y 130 --width 1280 --height 960 --no-cursor
|
||||
|
||||
recordmydesktop --delay 3 --fps 15 --windowid 0x1e0000e -x 375 -y 340 --width 480 --height 350 --no-cursor
|
||||
|
||||
# stop after 1 sec of silence
|
||||
sox -t alsa default recording.wav silence 1 0.1 5% 1 1.0 5%
|
||||
|
||||
# stop after 20 sec of silence
|
||||
sox -t alsa default recording.wav silence 1 0.1 5% 20 1.0 5%
|
||||
|
||||
ffmpeg -i recording-0.ogg -i recording-1.ogg -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' concat.ogg
|
||||
|
||||
ffmpeg $(for i in recordings/*.ogg; do echo "-i $i "; done) -filter_complex '[0:0][1:0][2:0][3:0]concat=n=47:v=0:a=1[out]' -map '[out]' fosdem21.ogg
|
After Width: | Height: | Size: 953 KiB |
After Width: | Height: | Size: 854 KiB |
After Width: | Height: | Size: 967 KiB |
|
@ -0,0 +1,331 @@
|
|||
# grep -E '^([^#]|$|^[*] )' autocue.org | grep -v '^[*] ' | sed -re 's/^[*]+.*/. . slide. ./' | head -274 | tr '\n' ' ' | espeak -s 110 -l 1 --stdin -w fosdem21.wav
|
||||
# ffmpeg -i fosdem21.wav |& grep Duration:
|
||||
#+TITLE: GNU Mes
|
||||
|
||||
* Top
|
||||
|
||||
** GNU Mes
|
||||
|
||||
hello, i am janneke.
|
||||
|
||||
this talk is about GNU Mes and the ongoing effort to remove all
|
||||
the binaries that we inject into our free software stack.
|
||||
|
||||
* Introduction
|
||||
|
||||
** Introduction
|
||||
|
||||
at the end of my talk i hope you have learned what bootstrapping is about.
|
||||
|
||||
** Full Source Bootstrap: Why?
|
||||
|
||||
richard stallman is helping us understand
|
||||
that software freedom is a human right
|
||||
|
||||
if we loose one of these rights,
|
||||
it becomes much harder to maintain our freedom.
|
||||
|
||||
every time you say free software instead of Open Source, for example,
|
||||
you are already helping.
|
||||
|
||||
we need to care for our free software rights;
|
||||
if we neglect bootstrappability or if we lose it,
|
||||
we also loose freedom of our computing.
|
||||
|
||||
** Full Source Bootstrap: GNU Mes
|
||||
|
||||
to crack the chicken and egg problem that bootstrapping is,
|
||||
i wrote GNU Mes.
|
||||
|
||||
MesCC is a C99 compiler written in a subset of Guile Scheme
|
||||
and comes with Mes, a Scheme interpreter to run it.
|
||||
|
||||
** The Holy Grail
|
||||
|
||||
The Stage0 project is an amazing bootstrap story
|
||||
it all starts with a 357-byte, well-audited binary, hex0,
|
||||
and as some of you may have heard...
|
||||
|
||||
** Full Source Bootstrap: *WE DID IT!!!*
|
||||
. . we . . did . . it . .
|
||||
|
||||
when i started this, five years ago my youngest daughter was a big messi
|
||||
and fc barcelona fan. that inpsired me while i was working on mescc.
|
||||
|
||||
** Full Source Bootstrap: hex0 => M2-Planet => GNU Mes
|
||||
GNU Mes can now be built by M2-Planet,
|
||||
and thus bootstrapped from these initial 357 bytes
|
||||
** A big problem, predicted 40y ago
|
||||
|
||||
in the eighties, ken thompson showed us in his Turing lecture, that we
|
||||
were having a big problem in computing.
|
||||
|
||||
** Journey to the Source?
|
||||
his message has mostly been ignored.
|
||||
|
||||
every day we are becoming more dependent on more and larger binaries
|
||||
to create our free software systems.
|
||||
|
||||
* Reproducibility
|
||||
|
||||
** Carl Dong -- bitcoin build system security
|
||||
|
||||
the importance to stop this trend was evident to bitcoin developer Carl
|
||||
Dong of Chaincode Labs.
|
||||
|
||||
i warmly recommend his talk he gave at the breaking bitcoin conference
|
||||
in 2019, it will only take 18 minutes of your time.
|
||||
|
||||
** Reproducible-Builds.org
|
||||
|
||||
carl dong explains that bitcoin, driven by the wish to provide secure
|
||||
bitcoin downloads, have implemented Gitian, a system that uses
|
||||
reproducible builds.
|
||||
|
||||
** What is a Bootstrap?
|
||||
|
||||
let's say you wrote the first ever GNU CC compiler and you wrote it in
|
||||
C; it is impossible to compile this C source code into an executable gcc
|
||||
program.
|
||||
|
||||
** How to Bootstrap: An Old Recipe...
|
||||
|
||||
ah but that's like making yoghurt: use fresh milk and just add some
|
||||
yoghurt leftover from yesterday.
|
||||
|
||||
** How to Bootstrap: Create your second GCC
|
||||
|
||||
using this insight, we can now create our second GCC!
|
||||
|
||||
** Pour milk
|
||||
|
||||
we take fresh, security-audited milk.
|
||||
|
||||
** Add yoghurt
|
||||
|
||||
we publish the recipe, so that others may verify the result.
|
||||
|
||||
** We're reproducible
|
||||
|
||||
and low and behold, your second compiler exactly matches ours!
|
||||
|
||||
as long as you follow our recipe.
|
||||
|
||||
** Add evil yoghurt
|
||||
|
||||
and use the exact same, FIRST compiler...
|
||||
|
||||
** We're reproducible
|
||||
|
||||
everyone is ...
|
||||
|
||||
** Evil yoghurt
|
||||
|
||||
just as bug-free and secure
|
||||
|
||||
** We're reproducibly malicous
|
||||
|
||||
as our shared, FIRST compiler was
|
||||
|
||||
** Reproducibility is not enough
|
||||
|
||||
reproducibility is no substitute for bootstrappability
|
||||
|
||||
** Reproducibility plus clean source code is not enough
|
||||
|
||||
and while bug-free source code remains important, we need something
|
||||
else.
|
||||
|
||||
* Bootstrappability
|
||||
** Guix /pronounced geeks/
|
||||
|
||||
enter GNU Guix.
|
||||
|
||||
in Guix, we implemented the Full Source Bootstrap.
|
||||
|
||||
** NLnet Foundation
|
||||
|
||||
so we are very excited that NlNet provided a grant to make that possible
|
||||
|
||||
** WE DID IT! We did what?
|
||||
|
||||
to make GNU Mes ready for M2 Planet,
|
||||
we first removed all pre-processor statements,
|
||||
then switched from SICP-like number-based cells
|
||||
to pointer-based cells
|
||||
|
||||
an interesting operation, notably for the garbage collector
|
||||
|
||||
then, we rewrote all non-supported C constructs for M2 Planet
|
||||
in a way that GCC also still likes them
|
||||
|
||||
notice how easy it sounds, now that it has been done
|
||||
|
||||
on, to integrate this new mes into guix
|
||||
|
||||
** Bottom of Guix package graph
|
||||
|
||||
on the wip-full-source-bootstrap branch, this is what the bottom of the
|
||||
graph looks like
|
||||
|
||||
i think a generated graph like this is very cool,
|
||||
an introduction works probably better when we remove some detail
|
||||
|
||||
** Full Source Bootstrap: Stage 0
|
||||
Stage0 was a big inspiration to start working on mes, to address
|
||||
bootstrappability.
|
||||
|
||||
the first stage creates the hex1 assembler from the initial hex0 seed.
|
||||
|
||||
it is the binary form of as ASCII-equivalent. therefore we can bless it
|
||||
as source and have our full source bootstrap.
|
||||
|
||||
hex1 is just a bit richer than hex0, but not a language to write big
|
||||
programs in.
|
||||
|
||||
** Full Source Bootstrap: Stage 1
|
||||
|
||||
the second stage builds the hex2 linker, the M1 Macro assembler and
|
||||
M2-Planet.
|
||||
|
||||
** Full Source Bootstrap: Stage 2
|
||||
|
||||
the third stage builds mes and the mes c library
|
||||
|
||||
** Full Source Bootstrap: Stage mes
|
||||
|
||||
after mes we build a bootstrappable fork of tinycc, that we maintain
|
||||
ourselves.
|
||||
|
||||
from mes onwards, we need a shell.
|
||||
|
||||
we use gash with gash-utils and cheat just a bit by running them on
|
||||
bootstrap guile; the driver we need for guix anyway.
|
||||
|
||||
in the future we would like to run gash and gash utils on mes.
|
||||
|
||||
you will forgive us this little lie, any shell with utilities will do
|
||||
fine here anyway.
|
||||
|
||||
** Full Source Bootstrap: Stage mesboot
|
||||
|
||||
from tcc it goes up via ancient binutils and glibc versions to gcc.
|
||||
|
||||
you may notice that most of the packages in this graph are unmaintained.
|
||||
|
||||
that is a problem.
|
||||
|
||||
anyway, this brings us to
|
||||
|
||||
** Long path: Full Source Bootstrap
|
||||
|
||||
a full GNU/Linux system that is bootstrapped from 357-bytes.
|
||||
|
||||
** Trusted Computing Base
|
||||
|
||||
anything else?
|
||||
** Trusted Computing Base
|
||||
|
||||
when building a package on Guix, the trusted computing base includes
|
||||
the build daemon and the linux kernel.
|
||||
|
||||
ludovic has built a package in the intial ramdisk, thereby removing the
|
||||
build daemon from the trusted computing base.
|
||||
|
||||
an obvious next step is linux.
|
||||
|
||||
mes v0.22 now runs on the hurd, a micro kernel is another possibility to
|
||||
reduce the trusted computing base.
|
||||
|
||||
last year GNU Guix has made it very easy to run the hurd in a vm,
|
||||
a so-called childhurd.
|
||||
|
||||
** What's Next?
|
||||
|
||||
apart from the real big plans, there is lots of fun work ahead, let's
|
||||
find some time and money for that.
|
||||
|
||||
* Freedom
|
||||
** Free Software as a Human Right
|
||||
|
||||
at the start of this talk i showed this image with richard's view on
|
||||
free software
|
||||
|
||||
** Freedom of Computing
|
||||
|
||||
have i strayed too far when i reinterpret this as freedom of computing?
|
||||
|
||||
if we have free software, and our binaries are compromised, do we really
|
||||
have freedom of computing, can we enjoy this human right?
|
||||
|
||||
** Moving target: Are we losing GCC?
|
||||
when gnu guix started, GCC could be bootstrapped by any C compiler.
|
||||
|
||||
four years later, when gnu mes started, gcc also needed C++,
|
||||
ensuring bootstrappability would only require for GCC developers
|
||||
to continue maintaining 4.6 or 4.7
|
||||
|
||||
after four years of work we can bootstrap gcc-4.7, our target is moving.
|
||||
|
||||
is it moving faster than we are?
|
||||
|
||||
** Contemplate: What is happening?
|
||||
|
||||
i call upon you to understand the problem of bootstrapping
|
||||
|
||||
to contemplate on where we are, and where we going
|
||||
|
||||
and to decide where you would really want to go
|
||||
** Joy of Source
|
||||
|
||||
are we doing this only to counter the trusting trust attack?
|
||||
|
||||
i'm not sure, i think that building from source is the proper way to do
|
||||
computing; and the trusting trust attack is only a symptom of confusing
|
||||
a binary substitute with the compilation of source code.
|
||||
|
||||
** Choices: More control, or less control?
|
||||
|
||||
apparently, bitcoin users rather have more control over what their
|
||||
computer does when it handles money.
|
||||
|
||||
so it seems to me that our choices are simple: raise awareness and slay
|
||||
this dragon together, or sit back and place our bets on what the
|
||||
apocalypse will look like.
|
||||
|
||||
i mean, why bother, i'm betting heavily on climate change.
|
||||
|
||||
* Thanks
|
||||
|
||||
i am very grateful for getting so much help and seeing this crazy
|
||||
project grow!
|
||||
|
||||
** Want to join?
|
||||
|
||||
that's all folks!
|
||||
|
||||
*** You can help
|
||||
* make Guix run on Mes
|
||||
* write a bootstrappable syntax-case
|
||||
* simplify MesCC and target GCC-4.6
|
||||
* bootstrap NixOS, Debian
|
||||
* port MesCC to the Hurd, FreeBSD
|
||||
* spread the message
|
||||
* retweet =@janneke_gnu= =janneke@octodon.social=
|
||||
|
||||
*** Connect
|
||||
* irc freenode.net [[irc://bootstrappable@freenode.net][#bootstrappable]] [[irc://guix@freenode.net][#guix]]
|
||||
* mail [[mailto:bug-mes@gnu.org][bug-mes@gnu.org]] [[mailto://guix-devel@gnu.org][guix-devel@gnu.org]]
|
||||
* git [[https://git.savannah.gnu.org/git/mes.git][https://git.savannah.gnu.org/git/mes.git]]
|
||||
* web [[http://bootstrappable.org][bootstrappable.org]]
|
||||
|
||||
* legalese
|
||||
Copyright \copy 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts.
|
||||
#+END_QUOTE
|
|
@ -0,0 +1,27 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\usecolortheme{spruce}
|
||||
\setbeamercolor*{structure}{fg=blue!25!white}
|
||||
\setbeamercolor*{structure}{fg=MSUgreen!80!white}
|
||||
\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black}
|
||||
|
||||
\mode
|
||||
<all>
|
|
@ -0,0 +1,36 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
\newif\ifbeamer@secheader
|
||||
\beamer@secheaderfalse
|
||||
|
||||
\DeclareOptionBeamer{secheader}{\beamer@secheadertrue}
|
||||
\ProcessOptionsBeamer
|
||||
|
||||
\usecolortheme{X}
|
||||
\useinnertheme[shadow]{rounded}
|
||||
\useoutertheme{infolines}
|
||||
|
||||
\ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi
|
||||
|
||||
\mode
|
||||
<all>
|
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 551 KiB |
After Width: | Height: | Size: 936 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,12 @@
|
|||
dot -T png < stage-0.dot > stage-0.png
|
||||
dot -T png < stage-0.dot > stage-0.png
|
||||
dot -T png < stage-1.dot > stage-1.png
|
||||
dot -T png < stage-2.dot > stage-2.png
|
||||
dot -T png < stage-mes.dot > stage-mes.png
|
||||
dot -T png < stage-mesboot.dot > stage-mesboot.png
|
||||
dot -T png < stage-mesboot.dot > stage-mesboot.png
|
||||
|
||||
dot -T png < gcc-core-mesboot0-fsb.dot > gcc-core-mesboot0-fsb.png
|
||||
dot -T png < gcc-core-mesboot0-fsb-unversioned.dot > gcc-core-mesboot0-fsb-unversioned.png
|
||||
|
||||
dot -T png < gcc-core-mesboot0-fsb-no-guile-unversioned.dot > gcc-core-mesboot0-fsb-no-guile-unversioned.png
|
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 915 KiB |
After Width: | Height: | Size: 760 KiB |
After Width: | Height: | Size: 768 KiB |
After Width: | Height: | Size: 684 KiB |
After Width: | Height: | Size: 814 KiB |
|
@ -0,0 +1,447 @@
|
|||
#+TITLE: GNU Mes
|
||||
#+TITLE: \smaller[2]{-- Full Source Bootstrap}
|
||||
#+DATE:2021-02-07
|
||||
#+EMAIL: janneke@gnu.org
|
||||
#+AUTHOR: janneke@gnu.org
|
||||
#+COPYRIGHT: janneke (Jan) Nieuwenhuizen <janneke@gn.org>
|
||||
#+LICENSE: GNU Free Documentation License, version 1.3 or later.
|
||||
#+OPTIONS: H:2 @:t ::t
|
||||
#+OPTIONS: tex:t latex:t todo:t tasks:t
|
||||
#+LATEX_HEADER:\institute{FOSDEM'21}
|
||||
#+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}}
|
||||
#+LATEX_CLASS: beamer
|
||||
#+LATEX_CLASS_OPTIONS: [presentation]
|
||||
#+LaTeX_CLASS_OPTIONS: [aspectratio=169]
|
||||
#+LATEX_HEADER: \usepackage{relsize}
|
||||
#+LATEX_HEADER: \usepackage{hyperref}
|
||||
#+LATEX_HEADER: \mode<beamer>{\usetheme{X}}
|
||||
#+KEYWORDS: GNU, Mes, Mes, Guix, bootstrappable, reproducible
|
||||
#+BEAMER_THEME: X
|
||||
#+BEAMER_FRAME_LEVEL: 2
|
||||
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt)
|
||||
# #+LATEX_HEADER:\usepackage{pgfpages}
|
||||
# #+LATEX_HEADER:\setbeameroption{show notes}
|
||||
# #+LATEX_HEADER:\setbeameroption{show notes on second screen=left}
|
||||
|
||||
* Introduction
|
||||
** Introduction
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: note
|
||||
:END:
|
||||
hello, i am janneke.
|
||||
|
||||
this talk is about GNU Mes and the ongoing effort to remove all
|
||||
the binaries that we inject into our free software stack.
|
||||
|
||||
** Full Source Bootstrap: Why?
|
||||
|
||||
#+LATEX:{\hspace{-0.5cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{human-rights-rms.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Full Source Bootstrap: GNU Mes
|
||||
|
||||
*** GNU Mes
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.6
|
||||
:BEAMER_ENV: block
|
||||
:END:
|
||||
|
||||
* A Scheme interpreter written in ~5,000LOC of simple C.
|
||||
|
||||
* A C compiler written in Scheme.
|
||||
|
||||
* Built on LISP: eval/apply, the *Maxwell Equations of Software*.
|
||||
*** LOGO
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.3
|
||||
:BEAMER_ENV: quote
|
||||
:END:
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.7\textwidth]{mes.png}
|
||||
|
||||
** The Holy Grail: Stage0's hex0 => Mes
|
||||
#+BEGIN_QUOTE
|
||||
The holy grail of bootstrappability will be connecting mes to hex0.
|
||||
|
||||
-- Carl Dong, Chaincode Labs
|
||||
#+END_QUOTE
|
||||
|
||||
** Full Source Bootstrap: *WE DID IT!!!*
|
||||
#+LATEX:\begin{center}
|
||||
#+LATEX:\includegraphics[width=0.4\textwidth]{fsb-logo-guile-guix-mes.png}
|
||||
#+LATEX:\end{center}
|
||||
|
||||
** Full Source Bootstrap: hex0 => M2-Planet => GNU Mes
|
||||
|
||||
*** GNU Mes
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.6
|
||||
:BEAMER_ENV: block
|
||||
:END:
|
||||
|
||||
* A Scheme interpreter written in ~5,000LOC of simple C, *or* M2.
|
||||
|
||||
* A C compiler written in Scheme.
|
||||
|
||||
* Built on LISP: eval/apply, the *Maxwell Equations of Software*.
|
||||
*** LOGO
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.3
|
||||
:BEAMER_ENV: quote
|
||||
:END:
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.7\textwidth]{mes.png}
|
||||
|
||||
** A big problem, predicted 40y ago
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.4cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{ken-thompson.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
** Journey to the Source?
|
||||
#+LATEX:\hspace{115mm}\tiny{???}\\[-6.0ex]
|
||||
#+LATEX:\hspace{ 90mm}\tiny{Soft Landing Systems}\\[-0.5ex]
|
||||
#+LATEX:\hspace{ 82mm}\tiny{0.90 .. 0.01}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 74mm}\tiny{0.93rc5}\\[-1.1ex]
|
||||
#+LATEX:\hspace{ 66mm}\tiny{0.93rc6}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 60mm}\tiny{1.1 buzz}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 54mm}\tiny{1.2 rex}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 48mm}\tiny{1.3 bo}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 42mm}\tiny{2.0 hamm}\\[-0.6ex]
|
||||
#+LATEX:\hspace{ 37mm}\tiny{2.1 slink}\\[-1.1ex]
|
||||
#+LATEX:\hspace{ 30mm}\scriptsize{2.2 potato}\\[-1.1ex]
|
||||
#+LATEX:\hspace{ 24mm}\footnotesize{3.0 woody}\\[-1.1ex]
|
||||
#+LATEX:\hspace{ 19mm}\small{3.1 sarge}\\[-1.0ex]
|
||||
#+LATEX:\hspace{ 14mm}\normalsize{4 etch}\\[-1.1ex]
|
||||
#+LATEX:\hspace{ 10mm}\large{5 lenny}\\[-1.2ex]
|
||||
#+LATEX:\hspace{ 6mm}\Large{6 squeeze}\\[-1.2ex]
|
||||
#+LATEX:\hspace{ 3mm}\LARGE{7 wheezy}\\[-1.2ex]
|
||||
#+LATEX:\hspace{ 1mm}\huge{8 jessie}\\[-1.3ex]
|
||||
#+LATEX:\hspace{ 0mm}\Huge{9 stretch}\\[-0.2ex]
|
||||
#+LATEX:\hspace{ 0mm}\Huge{10 buster}
|
||||
#+LATEX:\normalsize
|
||||
#+BEGIN_QUOTE
|
||||
As time goes on we will expire the binary packages for old releases.
|
||||
Currently we have binaries for squeeze, lenny, etch, sarge, woody,
|
||||
potato, slink, hamm and bo available, and only source code for the other
|
||||
releases. -- \ahref{https://www.debian.org/distrib/archive}{www.debian.org/distrib/archive}
|
||||
#+END_QUOTE
|
||||
|
||||
* Reproducibility
|
||||
** Carl Dong -- bitcoin build system security
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{bitcoin-carl-dong.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Reproducible-Builds.org
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducible-builds.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** What is a Bootstrap?
|
||||
*** Impossible task: pull yourself up on your boot straps
|
||||
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.2\textwidth]{boot-strap.png}
|
||||
|
||||
*** Software: to create your first: kernel, shell, C compiler, ...
|
||||
|
||||
#+LATEX:\includegraphics[width=0.12\textwidth]{gcc.png}
|
||||
#+LATEX:{\fontsize{20}{10}\selectfont source\normalsize}
|
||||
#+LATEX:{\fontsize{40}{20}\selectfont + ?? =}
|
||||
#+LATEX:\includegraphics[width=0.12\textwidth]{gcc.png}
|
||||
#+LATEX:{\fontsize{20}{10}\selectfont binary\normalsize}
|
||||
|
||||
** How to Bootstrap: An Old Recipe...
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.3\textwidth]{yoghurt.png}\\
|
||||
#+BEGIN_QUOTE
|
||||
Recipe for yoghurt: Add yoghurt to milk -- Anonymous
|
||||
#+END_QUOTE
|
||||
** How to Bootstrap: Create your second GCC
|
||||
|
||||
*** IGNORE
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: ignoreheading
|
||||
:END:
|
||||
|
||||
Traditional recipe: like yoghurt
|
||||
#+LATEX:\\[1cm]
|
||||
#+LATEX:\includegraphics[width=0.15\textwidth]{gcc.png}
|
||||
#+LATEX:{\fontsize{10}{5}\selectfont source\normalsize}
|
||||
#+LATEX:{\fontsize{40}{20}\selectfont +}
|
||||
#+LATEX:\includegraphics[width=0.15\textwidth]{gcc.png}
|
||||
#+LATEX:{\fontsize{10}{5}\selectfont binary - 1\normalsize}
|
||||
#+LATEX:{\fontsize{40}{10}\selectfont = \normalsize}
|
||||
#+LATEX:\includegraphics[width=0.15\textwidth]{gcc.png}
|
||||
#+LATEX:{\fontsize{10}{5}\selectfont binary\normalsize}
|
||||
#+LATEX:\\[1cm]
|
||||
|
||||
*** IGNORE
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: ignoreheading
|
||||
:END:
|
||||
|
||||
... and done!
|
||||
|
||||
** Pour milk
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.4cm{\hspace*{-2cm}\includegraphics[width=1.2\paperwidth,height=1.1\paperheight]{pour-milk.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Add yoghurt
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.4cm{\hspace*{-2cm}\includegraphics[width=1.2\paperwidth,height=1.1\paperheight]{add-yoghurt.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** We're reproducible
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{we-are-reproducible.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Add evil yoghurt
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.4cm{\hspace*{-2cm}\includegraphics[width=1.2\paperwidth,height=1.1\paperheight]{add-evil-yoghurt.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** We're reproducible
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{we-are-reproducible.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Evil yoghurt
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.4cm{\hspace*{-2cm}\includegraphics[width=1.2\paperwidth,height=1.1\paperheight]{evil-yoghurt-rect-black.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** We're reproducibly malicous
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{we-are-reproducibly-malicious.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Reproducibility is not enough
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducibility-is-not-enough.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Reproducibility plus clean source code is not enough
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducibility+clean-source-code.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
* Bootstrappability
|
||||
** Guix /pronounced geeks/
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{guix-pronounced-geeks.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
** NLnet Foundation
|
||||
#+LATEX:\begin{center}
|
||||
#+LATEX:\includegraphics[width=0.3\paperwidth,height=0.5\paperheight]{nl-net.png}
|
||||
#+LATEX:\end{center}
|
||||
|
||||
** WE DID IT! We did what?
|
||||
|
||||
*** Adapt Mes and Mes C Library for M2-Planet
|
||||
* #define FOO => ...; #if BAR => ...; CAR (x) => x->car
|
||||
* remove global and static array data
|
||||
* foo.bar => foo->bar
|
||||
* rewrite pointer arithmetic
|
||||
* rewrite garbage collector
|
||||
* mature M2-Planet
|
||||
* ...
|
||||
*** Integrate Full Source Bootstrap
|
||||
* package M2-Planet
|
||||
* remove (dependency on) bootstrap seeds
|
||||
* ...
|
||||
** Bottom of Guix package graph
|
||||
#+LATEX:{\hspace{-0.55cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-1.9cm\includegraphics[width=1\paperwidth,height=1\paperheight]{gcc-core-mesboot0-fsb-no-guile-unversioned.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Full Source Bootstrap: Stage 0
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.8\textwidth]{stage-0.png}
|
||||
** Full Source Bootstrap: Stage 1
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.80\textwidth]{stage-1.png}
|
||||
** Full Source Bootstrap: Stage 2
|
||||
#+LATEX:\vskip-2mm\rightskip=2cm\includegraphics[width=0.55\textwidth]{stage-2.png}
|
||||
** Full Source Bootstrap: Stage mes
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.70\textwidth]{stage-mes.png}
|
||||
** Full Source Bootstrap: Stage mesboot
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.80\textwidth]{stage-mesboot.png}
|
||||
** Long path: Full Source Bootstrap
|
||||
#+LATEX:\Large
|
||||
*** GNU Mes
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.75
|
||||
:BEAMER_ENV: quote
|
||||
:END:
|
||||
#+LATEX:\normalfont
|
||||
* *500+ MB:* no bootstrap
|
||||
* *252 MB:* GNU Guix System v1.0
|
||||
* *145 MB:* Reduced Binary Seed
|
||||
+ master branch
|
||||
+ +GCC+, +GLIBC+, +Binutils+
|
||||
+ + MesCC-Tools, + Mes
|
||||
* *57 MB:* Scheme-only
|
||||
+ wip-bootstrap branch
|
||||
+ +Awk+, +Bash+, +Bzip2+, +GNU Core Utilities+, +Grep+, +Gzip+,
|
||||
+Make+, +Patch+, +Sed+, +Tar+, and +XZ+.
|
||||
+ + Gash (source only!)
|
||||
* *357 bytes:* Full Source
|
||||
+ +MesCC-Tools+, +Mes+
|
||||
+ + Stage0: 357 bytes (x86)
|
||||
#+LATEX:\vskip 1cm
|
||||
*** LOGO
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.25
|
||||
:BEAMER_ENV: quote
|
||||
:END:
|
||||
|
||||
#+LATEX:\includegraphics[height=0.7cm]{logos/debian.png}
|
||||
#+LATEX:\includegraphics[height=0.7cm]{logos/guix.png}\includegraphics[height=0.4cm]{logos/nixos.png}\\[0.4cm]
|
||||
#+LATEX:\includegraphics[height=0.7cm]{logos/guix.png}\\[1cm]
|
||||
#+LATEX:\includegraphics[height=0.7cm]{logos/guix.png}\\
|
||||
#+LATEX:\vskip 4.2cm
|
||||
#+LATEX:\normalsize
|
||||
|
||||
** Trusted Computing Base
|
||||
#+LATEX:{\hspace{-1.2cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\vskip-2.6cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{bowl-empty-spoon.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Trusted Computing Base
|
||||
* Source code
|
||||
* Binary seeds
|
||||
* Guix System
|
||||
* Linux
|
||||
* Guix's Childhurds (Hurd in VM)
|
||||
|
||||
** What's Next?
|
||||
|
||||
*** wip-full-source-bootstrap
|
||||
- release mes-0.24
|
||||
- update and merge
|
||||
*** wip-arm-bootstrap
|
||||
- finish the bootstrap: currently stuck at glibc-mesboot0 (2.2.5)
|
||||
- release mes-0.23
|
||||
- update and merge
|
||||
*** RISC-V
|
||||
- remove gcc-2.95 from the bootstrap
|
||||
- port RISC-V extensions to gcc-4.6
|
||||
* Freedom
|
||||
** Free Software as a Human Right
|
||||
|
||||
#+LATEX:{\hspace{-0.5cm}\begin{frame}[plain]
|
||||
#+LATEX:{{\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{human-rights-rms.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Freedom of Computing
|
||||
|
||||
*** Free Software == Freedom of Computing
|
||||
|
||||
* Inspect source => Free Software
|
||||
* Binary matches source? => Reproducible builds
|
||||
* Toolchain compromised? => Bootstrappable builds
|
||||
* Hardware trustable? => DDC, free hardware
|
||||
|
||||
** Moving target: Are we losing GCC?
|
||||
|
||||
*** June 12, 2014
|
||||
GCC 4.7.4, the final "bootstrappable", already a *huge* download
|
||||
|
||||
*** August 3rd, 2016
|
||||
GCC 4.9.4 released, as of 4.8 requires C++03 to bootstrap
|
||||
|
||||
*** May 18, 2020
|
||||
GCC moved away from C++03 and now needs to C++11 to bootstrap
|
||||
** Contemplate: What is happening?
|
||||
#+BEGIN_QUOTE
|
||||
It just doesn't *feel* right
|
||||
|
||||
-- Vagrant Cascadian, Debian developer
|
||||
#+END_QUOTE
|
||||
|
||||
** Joy of Source
|
||||
#+LATEX:\large
|
||||
#+BEGIN_QUOTE
|
||||
Vulnerability to a *trusting trust attack* is a symptom of an
|
||||
unauditable or missing bootstrap story. -- janneke
|
||||
#+END_QUOTE
|
||||
#+LATEX:\normalsize
|
||||
|
||||
** Choices: More control, or less control?
|
||||
|
||||
*** raise bootstrappable awareness
|
||||
to take back control over our computing, or
|
||||
*** keep doing what we're doing
|
||||
and watch the erosion of our computing freedoms.
|
||||
|
||||
* Thanks
|
||||
** Thanks
|
||||
# *** Mortals :B_block:BMCOL:
|
||||
# :PROPERTIES:
|
||||
# :BEAMER_COL: 0.48
|
||||
# :BEAMER_ENV: block
|
||||
# :END:
|
||||
* Carl Dong
|
||||
* Danny Milosavljevic
|
||||
* David Terry
|
||||
* Jeremiah Orians
|
||||
* Ludovic Courtès
|
||||
* Matt Wette
|
||||
* Pjotr Prins
|
||||
* Rutger van Beusekom
|
||||
* Timothy Sample
|
||||
* Vagrant Cascadian
|
||||
# *** All the Giants :B_block:BMCOL:
|
||||
# :PROPERTIES:
|
||||
# :BEAMER_COL: 0.48
|
||||
# :xBEAMER_ACT: <2->
|
||||
# :BEAMER_ENV: block
|
||||
# :END:
|
||||
# * ...
|
||||
# *** Connect
|
||||
# * irc freenode.net [[irc://bootstrappable@freenode.net][#bootstrappable]] [[irc://guix@freenode.net][#guix]]
|
||||
# * mail [[mailto:bug-mes@gnu.org][bug-mes@gnu.org]] [[mailto://guix-devel@gnu.org][guix-devel@gnu.org]]
|
||||
# * git [[https://git.savannah.gnu.org/git/mes.git][https://git.savannah.gnu.org/git/mes.git]]
|
||||
# * web [[http://bootstrappable.org][bootstrappable.org]]
|
||||
|
||||
** Want to join?
|
||||
*** You can help
|
||||
* raise awareness
|
||||
* make core GNU packages bootstrappable again
|
||||
# + +XZ-only+ => *.GZ* tarballs (thank you: sed, coreutils!)
|
||||
+ GCC (c++!), GNU Libc (python?!)
|
||||
* reduced bootstrap NixOS, Debian
|
||||
* port MesCC to the Hurd, FreeBSD
|
||||
* retweet/toot =@janneke_gnu= =janneke@octodon.social=
|
||||
|
||||
*** Connect
|
||||
* irc freenode.net [[irc://bootstrappable@freenode.net][#bootstrappable]] [[irc://guix@freenode.net][#guix]]
|
||||
* mail [[mailto:bug-mes@gnu.org][bug-mes@gnu.org]] [[mailto://guix-devel@gnu.org][guix-devel@gnu.org]]
|
||||
* git [[https://git.savannah.gnu.org/git/mes.git][https://git.savannah.gnu.org/git/mes.git]]
|
||||
* web [[http://bootstrappable.org][bootstrappable.org]]
|
||||
|
||||
* legalese
|
||||
:PROPERTIES:
|
||||
:BEAMER_ENV: note
|
||||
:COPYING: t
|
||||
:END:
|
||||
|
||||
Copyright \copy 2017,2019,2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
||||
and with no Back-Cover Texts.
|
||||
#+END_QUOTE
|
||||
|
||||
By Debian - www.debian.org/logos/, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=3330975
|
||||
By Canonical Ltd. - http://design.ubuntu.com/wp-content/uploads/logo-ubuntu_no%C2%AE-black_orange-hex.svg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=18296544
|
||||
By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=60635229
|
||||
By Original: Apple Inc.Vectorization: Totie - https://www.apple.com/macos/high-sierra/, Public Domain, https://commons.wikimedia.org/w/index.php?curid=59644704
|
||||
By Original: Rob Janoff - https://www.apple.com/ac/globalnav/2.0/en_US/images/ac-globalnav/globalnav/apple/image_large.svg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=10472152
|
||||
|
||||
By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=26987122
|
||||
By Source (WP:NFCC#4), Fair use, https://en.wikipedia.org/w/index.php?curid=38767733
|
||||
By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=13822991
|
||||
By Microsoft - File:Windows Server 2012 logo.svg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=45931123
|
||||
By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=28200444
|
||||
By 2014, Christian Noguera, Valentin Pasquier, Richard Stallman CC-BY 3.0 license.
|
After Width: | Height: | Size: 300 KiB |
After Width: | Height: | Size: 222 KiB |
After Width: | Height: | Size: 222 KiB |
|
@ -0,0 +1,61 @@
|
|||
digraph "Guix package" {
|
||||
|
||||
"gcc-cross-boot0@5.5.0" -> "libstdc++-boot0@4.9.4" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "binutils-cross-boot0@2.31.1" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "binutils-bootstrap@0" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "bootstrap-binaries@0" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "diffutils-boot0@3.6" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "file-boot0@5.33" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "findutils-boot0@4.6.0" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "gcc-bootstrap@0" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "glibc-bootstrap@0" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" -> "make-boot0@4.2.1" [color = black];
|
||||
"gcc-cross-boot0@5.5.0" [label = "gcc-cross-boot0@5.5.0", shape = box, fontname = Helvetica];
|
||||
"libstdc++-boot0@4.9.4" -> "binutils-bootstrap@0" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "bootstrap-binaries@0" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "diffutils-boot0@3.6" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "file-boot0@5.33" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "findutils-boot0@4.6.0" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "gcc-bootstrap@0" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "glibc-bootstrap@0" [color = black];
|
||||
"libstdc++-boot0@4.9.4" -> "make-boot0@4.2.1" [color = black];
|
||||
"libstdc++-boot0@4.9.4" [label = "libstdc++-boot0@4.9.4", shape = box, fontname = Helvetica];
|
||||
"binutils-cross-boot0@2.31.1" -> "binutils-bootstrap@0" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "bootstrap-binaries@0" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "diffutils-boot0@3.6" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "file-boot0@5.33" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "findutils-boot0@4.6.0" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "gcc-bootstrap@0" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "glibc-bootstrap@0" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" -> "make-boot0@4.2.1" [color = black];
|
||||
"binutils-cross-boot0@2.31.1" [label = "binutils-cross-boot0@2.31.1", shape = box, fontname = Helvetica];
|
||||
"binutils-bootstrap@0" [label = "binutils-bootstrap@0", fontname = Helvetica];
|
||||
"bootstrap-binaries@0" [label = "bootstrap-binaries@0", fontname = Helvetica];
|
||||
"diffutils-boot0@3.6" -> "binutils-bootstrap@0" [color = black];
|
||||
"diffutils-boot0@3.6" -> "bootstrap-binaries@0" [color = black];
|
||||
"diffutils-boot0@3.6" -> "gcc-bootstrap@0" [color = black];
|
||||
"diffutils-boot0@3.6" -> "glibc-bootstrap@0" [color = black];
|
||||
"diffutils-boot0@3.6" -> "make-boot0@4.2.1" [color = black];
|
||||
"diffutils-boot0@3.6" [label = "diffutils-boot0@3.6", shape = box, fontname = Helvetica];
|
||||
"file-boot0@5.33" -> "binutils-bootstrap@0" [color = black];
|
||||
"file-boot0@5.33" -> "bootstrap-binaries@0" [color = black];
|
||||
"file-boot0@5.33" -> "gcc-bootstrap@0" [color = black];
|
||||
"file-boot0@5.33" -> "glibc-bootstrap@0" [color = black];
|
||||
"file-boot0@5.33" -> "make-boot0@4.2.1" [color = black];
|
||||
"file-boot0@5.33" [label = "file-boot0@5.33", shape = box, fontname = Helvetica];
|
||||
"findutils-boot0@4.6.0" -> "binutils-bootstrap@0" [color = black];
|
||||
"findutils-boot0@4.6.0" -> "bootstrap-binaries@0" [color = black];
|
||||
"findutils-boot0@4.6.0" -> "diffutils-boot0@3.6" [color = black];
|
||||
"findutils-boot0@4.6.0" -> "gcc-bootstrap@0" [color = black];
|
||||
"findutils-boot0@4.6.0" -> "glibc-bootstrap@0" [color = black];
|
||||
"findutils-boot0@4.6.0" -> "make-boot0@4.2.1" [color = black];
|
||||
"findutils-boot0@4.6.0" [label = "findutils-boot0@4.6.0", shape = box, fontname = Helvetica];
|
||||
"gcc-bootstrap@0" -> "glibc-bootstrap@0" [color = black];
|
||||
"gcc-bootstrap@0" [label = "gcc-bootstrap@0", fontname = Helvetica];
|
||||
"glibc-bootstrap@0" [label = "glibc-bootstrap@0", fontname = Helvetica];
|
||||
"make-boot0@4.2.1" -> "binutils-bootstrap@0" [color = black];
|
||||
"make-boot0@4.2.1" -> "bootstrap-binaries@0" [color = black];
|
||||
"make-boot0@4.2.1" -> "gcc-bootstrap@0" [color = black];
|
||||
"make-boot0@4.2.1" -> "glibc-bootstrap@0" [color = black];
|
||||
"make-boot0@4.2.1" [label = "make-boot0@4.2.1", shape = box, fontname = Helvetica];
|
||||
}
|
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 359 KiB |
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"139965588787520" [label = "gcc-core0", shape = box, fontname = sans];
|
||||
"139965588787520" -> "139965588787680" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788480" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788640" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788160" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788960" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788000" [color = darkviolet];
|
||||
"139965588787520" -> "139965588787840" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788320" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788800" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789920" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789760" [color = darkviolet];
|
||||
"139965588787520" -> "139965588790080" [color = darkviolet];
|
||||
# "139965588787520" -> "139965749563136" [color = darkviolet];
|
||||
"139965588787680" [label = "binutils0", shape = box, fontname = sans];
|
||||
"139965588787680" -> "139965588788480" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788640" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788160" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788960" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788000" [color = dimgrey];
|
||||
"139965588787680" -> "139965588787840" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788320" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788800" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789920" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789760" [color = dimgrey];
|
||||
"139965588787680" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588787680" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788480" [label = "bash0", shape = box, fontname = sans];
|
||||
"139965588788480" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788480" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788480" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788800" [label = "make0", shape = box, fontname = sans];
|
||||
"139965588788800" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588790080" [color = peachpuff4];
|
||||
# "139965588788800" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588789120" [label = "tcc0", shape = box, fontname = sans];
|
||||
"139965588789120" -> "139965588789280" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789440" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789920" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789760" [color = dimgrey];
|
||||
"139965588789120" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588789120" -> "139965749563136" [color = dimgrey];
|
||||
"139965588789280" [label = "mes", shape = box, fontname = sans];
|
||||
"139965588789280" -> "139965588789440" [color = red];
|
||||
"139965588789280" -> "139965588789920" [color = red];
|
||||
"139965588789280" -> "139965588789760" [color = red];
|
||||
"139965588789280" -> "139965588790080" [color = red];
|
||||
# "139965588789280" -> "139965749563136" [color = red];
|
||||
"139965588789440" [label = "m2-planet", shape = box, fontname = sans];
|
||||
"139965588789440" -> "139965588789600" [color = cyan3];
|
||||
"139965588789440" -> "139965588789920" [color = cyan3];
|
||||
"139965588789440" -> "139965588789760" [color = cyan3];
|
||||
"139965588789440" -> "139965588790080" [color = cyan3];
|
||||
# "139965588789440" -> "139965749563136" [color = cyan3];
|
||||
"139965588789600" [label = "bootstrap-seeds", shape = ellipse, fontname = sans];
|
||||
"139965588789600" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588790080" [label = "bootar", shape = box, fontname = sans];
|
||||
"139965588790080" -> "139965749563136" [color = darkseagreen];
|
||||
"139965749563136" [label = "%bootstrap-guile", shape = ellipse, fontname = sans];
|
||||
"139965588789920" [label = "gash", shape = box, fontname = sans];
|
||||
"139965588789920" -> "139965588790080" [color = magenta];
|
||||
"139965588789920" -> "139965749563136" [color = magenta];
|
||||
"139965588789760" [label = "gash-utils", shape = box, fontname = sans];
|
||||
"139965588789760" -> "139965588790080" [color = magenta];
|
||||
"139965588789760" -> "139965588789920" [color = magenta];
|
||||
"139965588789760" -> "139965749563136" [color = magenta];
|
||||
"139965588788640" [label = "bzip2", shape = box, fontname = sans];
|
||||
"139965588788640" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788640" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788640" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788160" [label = "diffutils", shape = box, fontname = sans];
|
||||
"139965588788160" -> "139965588788800" [color = cyan3];
|
||||
"139965588788160" -> "139965588789120" [color = cyan3];
|
||||
"139965588788160" -> "139965588789920" [color = cyan3];
|
||||
"139965588788160" -> "139965588789760" [color = cyan3];
|
||||
"139965588788160" -> "139965588790080" [color = cyan3];
|
||||
# "139965588788160" -> "139965749563136" [color = cyan3];
|
||||
"139965588788960" [label = "gzip", shape = box, fontname = sans];
|
||||
"139965588788960" -> "139965588789120" [color = cyan3];
|
||||
"139965588788960" -> "139965588789920" [color = cyan3];
|
||||
"139965588788960" -> "139965588789760" [color = cyan3];
|
||||
"139965588788960" -> "139965588790080" [color = cyan3];
|
||||
# "139965588788960" -> "139965749563136" [color = cyan3];
|
||||
"139965588788000" [label = "patch", shape = box, fontname = sans];
|
||||
"139965588788000" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788000" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788000" -> "139965749563136" [color = dimgrey];
|
||||
"139965588787840" [label = "sed0", shape = box, fontname = sans];
|
||||
"139965588787840" -> "139965588788800" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588790080" [color = peachpuff4];
|
||||
# "139965588787840" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588788320" [label = "tcc", shape = box, fontname = sans];
|
||||
"139965588788320" -> "139965588788640" [color = dimgrey];
|
||||
"139965588788320" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788320" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788320" -> "139965749563136" [color = dimgrey];
|
||||
|
||||
}
|
After Width: | Height: | Size: 475 KiB |
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"139965588787520" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
|
||||
"139965588787520" -> "139965588787680" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788480" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788640" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788160" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788960" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788000" [color = darkviolet];
|
||||
"139965588787520" -> "139965588787840" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788320" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788800" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789920" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789760" [color = darkviolet];
|
||||
"139965588787520" -> "139965588790080" [color = darkviolet];
|
||||
# "139965588787520" -> "139965749563136" [color = darkviolet];
|
||||
"139965588787680" [label = "binutils-mesboot0@2.14", shape = box, fontname = sans];
|
||||
"139965588787680" -> "139965588788480" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788640" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788160" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788960" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788000" [color = dimgrey];
|
||||
"139965588787680" -> "139965588787840" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788320" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788800" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789920" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789760" [color = dimgrey];
|
||||
"139965588787680" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588787680" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788480" [label = "bash-mesboot0@2.05b", shape = box, fontname = sans];
|
||||
"139965588788480" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788480" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788480" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788800" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
||||
"139965588788800" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588790080" [color = peachpuff4];
|
||||
# "139965588788800" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588789120" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = sans];
|
||||
"139965588789120" -> "139965588789280" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789440" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789920" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789760" [color = dimgrey];
|
||||
"139965588789120" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588789120" -> "139965749563136" [color = dimgrey];
|
||||
"139965588789280" [label = "mes-boot@0.22-305-g2ab4c5c67", shape = box, fontname = sans];
|
||||
"139965588789280" -> "139965588789440" [color = red];
|
||||
"139965588789280" -> "139965588789920" [color = red];
|
||||
"139965588789280" -> "139965588789760" [color = red];
|
||||
"139965588789280" -> "139965588790080" [color = red];
|
||||
# "139965588789280" -> "139965749563136" [color = red];
|
||||
"139965588789440" [label = "m2-planet-boot@1.7.0-31-g358b6cf", shape = box, fontname = sans];
|
||||
"139965588789440" -> "139965588789600" [color = cyan3];
|
||||
"139965588789440" -> "139965588789920" [color = cyan3];
|
||||
"139965588789440" -> "139965588789760" [color = cyan3];
|
||||
"139965588789440" -> "139965588790080" [color = cyan3];
|
||||
# "139965588789440" -> "139965749563136" [color = cyan3];
|
||||
"139965588789600" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = sans];
|
||||
"139965588789600" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588790080" [label = "bootar@1a", shape = box, fontname = sans];
|
||||
# "139965588790080" -> "139965749563136" [color = darkseagreen];
|
||||
"139965749563136" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = sans];
|
||||
"139965588789920" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
|
||||
"139965588789920" -> "139965588790080" [color = magenta];
|
||||
"139965588789920" -> "139965749563136" [color = magenta];
|
||||
"139965588789760" [label = "gash-utils-boot@0.1.0", shape = box, fontname = sans];
|
||||
"139965588789760" -> "139965588790080" [color = magenta];
|
||||
"139965588789760" -> "139965588789920" [color = magenta];
|
||||
"139965588789760" -> "139965749563136" [color = magenta];
|
||||
"139965588788640" [label = "bzip2-mesboot@1.0.8", shape = box, fontname = sans];
|
||||
"139965588788640" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788640" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788640" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788160" [label = "diffutils-mesboot@2.7", shape = box, fontname = sans];
|
||||
"139965588788160" -> "139965588788800" [color = cyan3];
|
||||
"139965588788160" -> "139965588789120" [color = cyan3];
|
||||
"139965588788160" -> "139965588789920" [color = cyan3];
|
||||
"139965588788160" -> "139965588789760" [color = cyan3];
|
||||
"139965588788160" -> "139965588790080" [color = cyan3];
|
||||
# "139965588788160" -> "139965749563136" [color = cyan3];
|
||||
"139965588788960" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
||||
"139965588788960" -> "139965588789120" [color = cyan3];
|
||||
"139965588788960" -> "139965588789920" [color = cyan3];
|
||||
"139965588788960" -> "139965588789760" [color = cyan3];
|
||||
"139965588788960" -> "139965588790080" [color = cyan3];
|
||||
# "139965588788960" -> "139965749563136" [color = cyan3];
|
||||
"139965588788000" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
||||
"139965588788000" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788000" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788000" -> "139965749563136" [color = dimgrey];
|
||||
"139965588787840" [label = "sed-mesboot0@1.18", shape = box, fontname = sans];
|
||||
"139965588787840" -> "139965588788800" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588790080" [color = peachpuff4];
|
||||
# "139965588787840" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588788320" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
||||
"139965588788320" -> "139965588788640" [color = dimgrey];
|
||||
"139965588788320" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788320" -> "139965588790080" [color = dimgrey];
|
||||
# "139965588788320" -> "139965749563136" [color = dimgrey];
|
||||
|
||||
}
|
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"139965588787520" [label = "gcc-core0", shape = box, fontname = sans];
|
||||
"139965588787520" -> "139965588787680" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788480" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788640" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788160" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788960" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788000" [color = darkviolet];
|
||||
"139965588787520" -> "139965588787840" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788320" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788800" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789920" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789760" [color = darkviolet];
|
||||
"139965588787520" -> "139965588790080" [color = darkviolet];
|
||||
"139965588787520" -> "139965749563136" [color = darkviolet];
|
||||
"139965588787680" [label = "binutils0", shape = box, fontname = sans];
|
||||
"139965588787680" -> "139965588788480" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788640" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788160" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788960" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788000" [color = dimgrey];
|
||||
"139965588787680" -> "139965588787840" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788320" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788800" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789920" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789760" [color = dimgrey];
|
||||
"139965588787680" -> "139965588790080" [color = dimgrey];
|
||||
"139965588787680" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788480" [label = "bash0", shape = box, fontname = sans];
|
||||
"139965588788480" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788480" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788480" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788800" [label = "make0", shape = box, fontname = sans];
|
||||
"139965588788800" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588788800" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588789120" [label = "tcc0", shape = box, fontname = sans];
|
||||
"139965588789120" -> "139965588789280" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789440" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789920" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789760" [color = dimgrey];
|
||||
"139965588789120" -> "139965588790080" [color = dimgrey];
|
||||
"139965588789120" -> "139965749563136" [color = dimgrey];
|
||||
"139965588789280" [label = "mes", shape = box, fontname = sans];
|
||||
"139965588789280" -> "139965588789440" [color = red];
|
||||
"139965588789280" -> "139965588789920" [color = red];
|
||||
"139965588789280" -> "139965588789760" [color = red];
|
||||
"139965588789280" -> "139965588790080" [color = red];
|
||||
"139965588789280" -> "139965749563136" [color = red];
|
||||
"139965588789440" [label = "m2-planet", shape = box, fontname = sans];
|
||||
"139965588789440" -> "139965588789600" [color = cyan3];
|
||||
"139965588789440" -> "139965588789920" [color = cyan3];
|
||||
"139965588789440" -> "139965588789760" [color = cyan3];
|
||||
"139965588789440" -> "139965588790080" [color = cyan3];
|
||||
"139965588789440" -> "139965749563136" [color = cyan3];
|
||||
"139965588789600" [label = "bootstrap-seeds", shape = ellipse, fontname = sans];
|
||||
"139965588789600" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588790080" [label = "bootar", shape = box, fontname = sans];
|
||||
"139965588790080" -> "139965749563136" [color = darkseagreen];
|
||||
"139965749563136" [label = "%bootstrap-guile", shape = ellipse, fontname = sans];
|
||||
"139965588789920" [label = "gash", shape = box, fontname = sans];
|
||||
"139965588789920" -> "139965588790080" [color = magenta];
|
||||
"139965588789920" -> "139965749563136" [color = magenta];
|
||||
"139965588789760" [label = "gash-utils", shape = box, fontname = sans];
|
||||
"139965588789760" -> "139965588790080" [color = magenta];
|
||||
"139965588789760" -> "139965588789920" [color = magenta];
|
||||
"139965588789760" -> "139965749563136" [color = magenta];
|
||||
"139965588788640" [label = "bzip2", shape = box, fontname = sans];
|
||||
"139965588788640" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788640" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788640" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788160" [label = "diffutils", shape = box, fontname = sans];
|
||||
"139965588788160" -> "139965588788800" [color = cyan3];
|
||||
"139965588788160" -> "139965588789120" [color = cyan3];
|
||||
"139965588788160" -> "139965588789920" [color = cyan3];
|
||||
"139965588788160" -> "139965588789760" [color = cyan3];
|
||||
"139965588788160" -> "139965588790080" [color = cyan3];
|
||||
"139965588788160" -> "139965749563136" [color = cyan3];
|
||||
"139965588788960" [label = "gzip", shape = box, fontname = sans];
|
||||
"139965588788960" -> "139965588789120" [color = cyan3];
|
||||
"139965588788960" -> "139965588789920" [color = cyan3];
|
||||
"139965588788960" -> "139965588789760" [color = cyan3];
|
||||
"139965588788960" -> "139965588790080" [color = cyan3];
|
||||
"139965588788960" -> "139965749563136" [color = cyan3];
|
||||
"139965588788000" [label = "patch", shape = box, fontname = sans];
|
||||
"139965588788000" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788000" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788000" -> "139965749563136" [color = dimgrey];
|
||||
"139965588787840" [label = "sed0", shape = box, fontname = sans];
|
||||
"139965588787840" -> "139965588788800" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588787840" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588788320" [label = "tcc", shape = box, fontname = sans];
|
||||
"139965588788320" -> "139965588788640" [color = dimgrey];
|
||||
"139965588788320" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788320" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788320" -> "139965749563136" [color = dimgrey];
|
||||
|
||||
}
|
After Width: | Height: | Size: 686 KiB |
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"139965588787520" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
|
||||
"139965588787520" -> "139965588787680" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788480" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788640" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788160" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788960" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788000" [color = darkviolet];
|
||||
"139965588787520" -> "139965588787840" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788320" [color = darkviolet];
|
||||
"139965588787520" -> "139965588788800" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789920" [color = darkviolet];
|
||||
"139965588787520" -> "139965588789760" [color = darkviolet];
|
||||
"139965588787520" -> "139965588790080" [color = darkviolet];
|
||||
"139965588787520" -> "139965749563136" [color = darkviolet];
|
||||
"139965588787680" [label = "binutils-mesboot0@2.14", shape = box, fontname = sans];
|
||||
"139965588787680" -> "139965588788480" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788640" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788160" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788960" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788000" [color = dimgrey];
|
||||
"139965588787680" -> "139965588787840" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788320" [color = dimgrey];
|
||||
"139965588787680" -> "139965588788800" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789920" [color = dimgrey];
|
||||
"139965588787680" -> "139965588789760" [color = dimgrey];
|
||||
"139965588787680" -> "139965588790080" [color = dimgrey];
|
||||
"139965588787680" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788480" [label = "bash-mesboot0@2.05b", shape = box, fontname = sans];
|
||||
"139965588788480" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788480" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788480" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788480" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788800" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
||||
"139965588788800" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588788800" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588788800" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588789120" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = sans];
|
||||
"139965588789120" -> "139965588789280" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789440" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789920" [color = dimgrey];
|
||||
"139965588789120" -> "139965588789760" [color = dimgrey];
|
||||
"139965588789120" -> "139965588790080" [color = dimgrey];
|
||||
"139965588789120" -> "139965749563136" [color = dimgrey];
|
||||
"139965588789280" [label = "mes-boot@0.22-305-g2ab4c5c67", shape = box, fontname = sans];
|
||||
"139965588789280" -> "139965588789440" [color = red];
|
||||
"139965588789280" -> "139965588789920" [color = red];
|
||||
"139965588789280" -> "139965588789760" [color = red];
|
||||
"139965588789280" -> "139965588790080" [color = red];
|
||||
"139965588789280" -> "139965749563136" [color = red];
|
||||
"139965588789440" [label = "m2-planet-boot@1.7.0-31-g358b6cf", shape = box, fontname = sans];
|
||||
"139965588789440" -> "139965588789600" [color = cyan3];
|
||||
"139965588789440" -> "139965588789920" [color = cyan3];
|
||||
"139965588789440" -> "139965588789760" [color = cyan3];
|
||||
"139965588789440" -> "139965588790080" [color = cyan3];
|
||||
"139965588789440" -> "139965749563136" [color = cyan3];
|
||||
"139965588789600" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = sans];
|
||||
"139965588789600" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588790080" [label = "bootar@1a", shape = box, fontname = sans];
|
||||
"139965588790080" -> "139965749563136" [color = darkseagreen];
|
||||
"139965749563136" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = sans];
|
||||
"139965588789920" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
|
||||
"139965588789920" -> "139965588790080" [color = magenta];
|
||||
"139965588789920" -> "139965749563136" [color = magenta];
|
||||
"139965588789760" [label = "gash-utils-boot@0.1.0", shape = box, fontname = sans];
|
||||
"139965588789760" -> "139965588790080" [color = magenta];
|
||||
"139965588789760" -> "139965588789920" [color = magenta];
|
||||
"139965588789760" -> "139965749563136" [color = magenta];
|
||||
"139965588788640" [label = "bzip2-mesboot@1.0.8", shape = box, fontname = sans];
|
||||
"139965588788640" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788640" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788640" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788640" -> "139965749563136" [color = dimgrey];
|
||||
"139965588788160" [label = "diffutils-mesboot@2.7", shape = box, fontname = sans];
|
||||
"139965588788160" -> "139965588788800" [color = cyan3];
|
||||
"139965588788160" -> "139965588789120" [color = cyan3];
|
||||
"139965588788160" -> "139965588789920" [color = cyan3];
|
||||
"139965588788160" -> "139965588789760" [color = cyan3];
|
||||
"139965588788160" -> "139965588790080" [color = cyan3];
|
||||
"139965588788160" -> "139965749563136" [color = cyan3];
|
||||
"139965588788960" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
||||
"139965588788960" -> "139965588789120" [color = cyan3];
|
||||
"139965588788960" -> "139965588789920" [color = cyan3];
|
||||
"139965588788960" -> "139965588789760" [color = cyan3];
|
||||
"139965588788960" -> "139965588790080" [color = cyan3];
|
||||
"139965588788960" -> "139965749563136" [color = cyan3];
|
||||
"139965588788000" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
||||
"139965588788000" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788000" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788000" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788000" -> "139965749563136" [color = dimgrey];
|
||||
"139965588787840" [label = "sed-mesboot0@1.18", shape = box, fontname = sans];
|
||||
"139965588787840" -> "139965588788800" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789120" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789920" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588789760" [color = peachpuff4];
|
||||
"139965588787840" -> "139965588790080" [color = peachpuff4];
|
||||
"139965588787840" -> "139965749563136" [color = peachpuff4];
|
||||
"139965588788320" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
||||
"139965588788320" -> "139965588788640" [color = dimgrey];
|
||||
"139965588788320" -> "139965588788800" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789120" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789920" [color = dimgrey];
|
||||
"139965588788320" -> "139965588789760" [color = dimgrey];
|
||||
"139965588788320" -> "139965588790080" [color = dimgrey];
|
||||
"139965588788320" -> "139965749563136" [color = dimgrey];
|
||||
|
||||
}
|
After Width: | Height: | Size: 733 KiB |
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"gcc-core0" [label = "gcc-core0", shape = box, fontname = Helvetica];
|
||||
"gcc-core0" -> "binutils0" [color = peachpuff4];
|
||||
"gcc-core0" -> "bash0" [color = peachpuff4];
|
||||
"gcc-core0" -> "bzip2" [color = peachpuff4];
|
||||
"gcc-core0" -> "diffutils" [color = peachpuff4];
|
||||
"gcc-core0" -> "gzip" [color = peachpuff4];
|
||||
"gcc-core0" -> "patch" [color = peachpuff4];
|
||||
"gcc-core0" -> "sed0" [color = peachpuff4];
|
||||
"gcc-core0" -> "tcc" [color = peachpuff4];
|
||||
"gcc-core0" -> "make0" [color = peachpuff4];
|
||||
"gcc-core0" -> "gash" [color = peachpuff4];
|
||||
"gcc-core0" -> "gash core utils" [color = peachpuff4];
|
||||
# "gcc-core0" -> "139838140100384" [color = peachpuff4];
|
||||
"gcc-core0" -> "bootstrap-guile" [color = peachpuff4];
|
||||
"binutils0" [label = "binutils0", shape = box, fontname = Helvetica];
|
||||
"binutils0" -> "bash0" [color = cyan3];
|
||||
"binutils0" -> "bzip2" [color = cyan3];
|
||||
"binutils0" -> "diffutils" [color = cyan3];
|
||||
"binutils0" -> "gzip" [color = cyan3];
|
||||
"binutils0" -> "patch" [color = cyan3];
|
||||
"binutils0" -> "sed0" [color = cyan3];
|
||||
"binutils0" -> "tcc" [color = cyan3];
|
||||
"binutils0" -> "make0" [color = cyan3];
|
||||
"binutils0" -> "gash" [color = cyan3];
|
||||
"binutils0" -> "gash core utils" [color = cyan3];
|
||||
# "binutils0" -> "139838140100384" [color = cyan3];
|
||||
"binutils0" -> "bootstrap-guile" [color = cyan3];
|
||||
"bash0" [label = "bash0", shape = box, fontname = Helvetica];
|
||||
"bash0" -> "make0" [color = darkgoldenrod];
|
||||
"bash0" -> "tcc0" [color = darkgoldenrod];
|
||||
"bash0" -> "gash" [color = darkgoldenrod];
|
||||
"bash0" -> "gash core utils" [color = darkgoldenrod];
|
||||
# "bash0" -> "139838140100384" [color = darkgoldenrod];
|
||||
"bash0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
"make0" [label = "make0", shape = box, fontname = Helvetica];
|
||||
"make0" -> "tcc0" [color = blue];
|
||||
"make0" -> "gash" [color = blue];
|
||||
"make0" -> "gash core utils" [color = blue];
|
||||
# "make0" -> "139838140100384" [color = blue];
|
||||
"make0" -> "bootstrap-guile" [color = blue];
|
||||
"tcc0" [label = "tcc0", shape = box, fontname = Helvetica];
|
||||
"tcc0" -> "mes" [color = red];
|
||||
"tcc0" -> "bootstrap-mescc-tools" [color = red];
|
||||
"tcc0" -> "gash" [color = red];
|
||||
"tcc0" -> "gash core utils" [color = red];
|
||||
# "tcc0" -> "139838140100384" [color = red];
|
||||
"tcc0" -> "bootstrap-guile" [color = red];
|
||||
#"mes" [label = "mes", shape = box, fontname = Helvetica];
|
||||
"mes" [label = "mes", shape = box, fontname = Helvetica];
|
||||
"mes" -> "bootstrap-mes" [color = cyan3];
|
||||
"mes" -> "bootstrap-mescc-tools" [color = cyan3];
|
||||
"mes" -> "gash" [color = cyan3];
|
||||
"mes" -> "gash core utils" [color = cyan3];
|
||||
# "mes" -> "139838140100384" [color = cyan3];
|
||||
"mes" -> "bootstrap-guile" [color = cyan3];
|
||||
#"139837957673136" [label = "bootstrap-mes-rewired", shape = box, fontname = Helvetica];
|
||||
#"139837957673136" [label = "bootstrap-mes", fontname = Helvetica];
|
||||
#"bootstrap-mes" -> "139838140099152" [color = darkseagreen];
|
||||
#"bootstrap-mes" -> "gash" [color = darkseagreen];
|
||||
#"139838140099152" [label = "bootstrap-mes", shape = box, fontname = Helvetica];
|
||||
#"139838140099152" [label = "bootstrap-mes", fontname = Helvetica];
|
||||
"gash" [label = "gash", shape = box, fontname = Helvetica];
|
||||
"gash" -> "bootstrap-guile" [color = red];
|
||||
#"bootstrap-guile" [label = "bootstrap-guile+guild", shape = box, fontname = Helvetica];
|
||||
"bootstrap-guile" [label = "bootstrap-guile", fontname = Helvetica];
|
||||
# "bootstrap-guile" -> "139838140100384" [color = darkviolet];
|
||||
# "139838140100384" [label = "bootstrap-guile", shape = box, fontname = Helvetica];
|
||||
#"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools", fontname = Helvetica];
|
||||
"gash core utils" [label = "gash-core-utils", shape = box, fontname = Helvetica];
|
||||
"gash core utils" -> "bootstrap-guile" [color = red];
|
||||
"gash core utils" -> "gash" [color = red];
|
||||
"bzip2" [label = "bzip2", shape = box, fontname = Helvetica];
|
||||
"bzip2" -> "make0" [color = red];
|
||||
"bzip2" -> "tcc0" [color = red];
|
||||
"bzip2" -> "gash" [color = red];
|
||||
"bzip2" -> "gash core utils" [color = red];
|
||||
# "bzip2" -> "139838140100384" [color = red];
|
||||
"bzip2" -> "bootstrap-guile" [color = red];
|
||||
"diffutils" [label = "diffutils", shape = box, fontname = Helvetica];
|
||||
"diffutils" -> "make0" [color = blue];
|
||||
"diffutils" -> "tcc0" [color = blue];
|
||||
"diffutils" -> "gash" [color = blue];
|
||||
"diffutils" -> "gash core utils" [color = blue];
|
||||
# "diffutils" -> "139838140100384" [color = blue];
|
||||
"diffutils" -> "bootstrap-guile" [color = blue];
|
||||
"gzip" [label = "gzip", shape = box, fontname = Helvetica];
|
||||
"gzip" -> "tcc0" [color = blue];
|
||||
"gzip" -> "gash" [color = blue];
|
||||
"gzip" -> "gash core utils" [color = blue];
|
||||
# "gzip" -> "139838140100384" [color = blue];
|
||||
"gzip" -> "bootstrap-guile" [color = blue];
|
||||
"patch" [label = "patch", shape = box, fontname = Helvetica];
|
||||
"patch" -> "make0" [color = blue];
|
||||
"patch" -> "tcc0" [color = blue];
|
||||
"patch" -> "gash" [color = blue];
|
||||
"patch" -> "gash core utils" [color = blue];
|
||||
# "patch" -> "139838140100384" [color = blue];
|
||||
"patch" -> "bootstrap-guile" [color = blue];
|
||||
"sed0" [label = "sed0", shape = box, fontname = Helvetica];
|
||||
"sed0" -> "make0" [color = magenta];
|
||||
"sed0" -> "tcc0" [color = magenta];
|
||||
"sed0" -> "gash" [color = magenta];
|
||||
"sed0" -> "gash core utils" [color = magenta];
|
||||
# "sed0" -> "139838140100384" [color = magenta];
|
||||
"sed0" -> "bootstrap-guile" [color = magenta];
|
||||
"tcc" [label = "tcc", shape = box, fontname = Helvetica];
|
||||
"tcc" -> "bzip2" [color = darkviolet];
|
||||
"tcc" -> "make0" [color = darkviolet];
|
||||
"tcc" -> "tcc0" [color = darkviolet];
|
||||
"tcc" -> "gash" [color = darkviolet];
|
||||
"tcc" -> "gash core utils" [color = darkviolet];
|
||||
# "tcc" -> "139838140100384" [color = darkviolet];
|
||||
"tcc" -> "bootstrap-guile" [color = darkviolet];
|
||||
}
|
After Width: | Height: | Size: 395 KiB |
|
@ -0,0 +1,116 @@
|
|||
digraph "Guix package" {
|
||||
"gcc-core0" [label = "gcc-core0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"gcc-core0" -> "binutils0" [color = peachpuff4];
|
||||
"gcc-core0" -> "bash0" [color = peachpuff4];
|
||||
"gcc-core0" -> "bzip2" [color = peachpuff4];
|
||||
"gcc-core0" -> "diffutils" [color = peachpuff4];
|
||||
"gcc-core0" -> "gzip" [color = peachpuff4];
|
||||
"gcc-core0" -> "patch" [color = peachpuff4];
|
||||
"gcc-core0" -> "sed0" [color = peachpuff4];
|
||||
"gcc-core0" -> "tcc" [color = peachpuff4];
|
||||
"gcc-core0" -> "make0" [color = peachpuff4];
|
||||
"gcc-core0" -> "gash" [color = peachpuff4];
|
||||
"gcc-core0" -> "gash core utils" [color = peachpuff4];
|
||||
# "gcc-core0" -> "139838140100384" [color = peachpuff4];
|
||||
"gcc-core0" -> "bootstrap-guile" [color = peachpuff4];
|
||||
"binutils0" [label = "binutils0@2.14", shape = box, fontname = Helvetica];
|
||||
"binutils0" -> "bash0" [color = cyan3];
|
||||
"binutils0" -> "bzip2" [color = cyan3];
|
||||
"binutils0" -> "diffutils" [color = cyan3];
|
||||
"binutils0" -> "gzip" [color = cyan3];
|
||||
"binutils0" -> "patch" [color = cyan3];
|
||||
"binutils0" -> "sed0" [color = cyan3];
|
||||
"binutils0" -> "tcc" [color = cyan3];
|
||||
"binutils0" -> "make0" [color = cyan3];
|
||||
"binutils0" -> "gash" [color = cyan3];
|
||||
"binutils0" -> "gash core utils" [color = cyan3];
|
||||
# "binutils0" -> "139838140100384" [color = cyan3];
|
||||
"binutils0" -> "bootstrap-guile" [color = cyan3];
|
||||
"bash0" [label = "bash0@2.05b", shape = box, fontname = Helvetica];
|
||||
"bash0" -> "make0" [color = darkgoldenrod];
|
||||
"bash0" -> "tcc0" [color = darkgoldenrod];
|
||||
"bash0" -> "gash" [color = darkgoldenrod];
|
||||
"bash0" -> "gash core utils" [color = darkgoldenrod];
|
||||
# "bash0" -> "139838140100384" [color = darkgoldenrod];
|
||||
"bash0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
"make0" [label = "make0@3.80", shape = box, fontname = Helvetica];
|
||||
"make0" -> "tcc0" [color = blue];
|
||||
"make0" -> "gash" [color = blue];
|
||||
"make0" -> "gash core utils" [color = blue];
|
||||
# "make0" -> "139838140100384" [color = blue];
|
||||
"make0" -> "bootstrap-guile" [color = blue];
|
||||
"tcc0" [label = "tcc0@0.9.26", shape = box, fontname = Helvetica];
|
||||
"tcc0" -> "mes" [color = red];
|
||||
"tcc0" -> "bootstrap-mescc-tools" [color = red];
|
||||
"tcc0" -> "gash" [color = red];
|
||||
"tcc0" -> "gash core utils" [color = red];
|
||||
# "tcc0" -> "139838140100384" [color = red];
|
||||
"tcc0" -> "bootstrap-guile" [color = red];
|
||||
#"mes" [label = "mes@0.21-54-g85cadbb2c", shape = box, fontname = Helvetica];
|
||||
"mes" [label = "mes@0.22", shape = box, fontname = Helvetica];
|
||||
"mes" -> "bootstrap-mes@0.19" [color = cyan3];
|
||||
"mes" -> "bootstrap-mescc-tools" [color = cyan3];
|
||||
"mes" -> "gash" [color = cyan3];
|
||||
"mes" -> "gash core utils" [color = cyan3];
|
||||
# "mes" -> "139838140100384" [color = cyan3];
|
||||
"mes" -> "bootstrap-guile" [color = cyan3];
|
||||
#"139837957673136" [label = "bootstrap-mes-rewired@0.19", shape = box, fontname = Helvetica];
|
||||
#"139837957673136" [label = "bootstrap-mes@0.19", fontname = Helvetica];
|
||||
#"bootstrap-mes" -> "139838140099152" [color = darkseagreen];
|
||||
#"bootstrap-mes" -> "gash" [color = darkseagreen];
|
||||
#"139838140099152" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
#"139838140099152" [label = "bootstrap-mes@0.19", fontname = Helvetica];
|
||||
"gash" [label = "gash@0.2.0", shape = box, fontname = Helvetica];
|
||||
"gash" -> "bootstrap-guile" [color = red];
|
||||
#"bootstrap-guile" [label = "bootstrap-guile+guild@2.0", shape = box, fontname = Helvetica];
|
||||
"bootstrap-guile" [label = "bootstrap-guile@2.0", fontname = Helvetica];
|
||||
# "bootstrap-guile" -> "139838140100384" [color = darkviolet];
|
||||
# "139838140100384" [label = "bootstrap-guile@2.0", shape = box, fontname = Helvetica];
|
||||
#"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools@0.5.2", fontname = Helvetica];
|
||||
"gash core utils" [label = "gash-core-utils@0.0", shape = box, fontname = Helvetica];
|
||||
"gash core utils" -> "bootstrap-guile" [color = red];
|
||||
"gash core utils" -> "gash" [color = red];
|
||||
"bzip2" [label = "bzip2@1.0.6", shape = box, fontname = Helvetica];
|
||||
"bzip2" -> "make0" [color = red];
|
||||
"bzip2" -> "tcc0" [color = red];
|
||||
"bzip2" -> "gash" [color = red];
|
||||
"bzip2" -> "gash core utils" [color = red];
|
||||
# "bzip2" -> "139838140100384" [color = red];
|
||||
"bzip2" -> "bootstrap-guile" [color = red];
|
||||
"diffutils" [label = "diffutils@2.7", shape = box, fontname = Helvetica];
|
||||
"diffutils" -> "make0" [color = blue];
|
||||
"diffutils" -> "tcc0" [color = blue];
|
||||
"diffutils" -> "gash" [color = blue];
|
||||
"diffutils" -> "gash core utils" [color = blue];
|
||||
# "diffutils" -> "139838140100384" [color = blue];
|
||||
"diffutils" -> "bootstrap-guile" [color = blue];
|
||||
"gzip" [label = "gzip@1.2.4", shape = box, fontname = Helvetica];
|
||||
"gzip" -> "tcc0" [color = blue];
|
||||
"gzip" -> "gash" [color = blue];
|
||||
"gzip" -> "gash core utils" [color = blue];
|
||||
# "gzip" -> "139838140100384" [color = blue];
|
||||
"gzip" -> "bootstrap-guile" [color = blue];
|
||||
"patch" [label = "patch@2.5.9", shape = box, fontname = Helvetica];
|
||||
"patch" -> "make0" [color = blue];
|
||||
"patch" -> "tcc0" [color = blue];
|
||||
"patch" -> "gash" [color = blue];
|
||||
"patch" -> "gash core utils" [color = blue];
|
||||
# "patch" -> "139838140100384" [color = blue];
|
||||
"patch" -> "bootstrap-guile" [color = blue];
|
||||
"sed0" [label = "sed0@1.18", shape = box, fontname = Helvetica];
|
||||
"sed0" -> "make0" [color = magenta];
|
||||
"sed0" -> "tcc0" [color = magenta];
|
||||
"sed0" -> "gash" [color = magenta];
|
||||
"sed0" -> "gash core utils" [color = magenta];
|
||||
# "sed0" -> "139838140100384" [color = magenta];
|
||||
"sed0" -> "bootstrap-guile" [color = magenta];
|
||||
"tcc" [label = "tcc@0.9.27", shape = box, fontname = Helvetica];
|
||||
"tcc" -> "bzip2" [color = darkviolet];
|
||||
"tcc" -> "make0" [color = darkviolet];
|
||||
"tcc" -> "tcc0" [color = darkviolet];
|
||||
"tcc" -> "gash" [color = darkviolet];
|
||||
"tcc" -> "gash core utils" [color = darkviolet];
|
||||
# "tcc" -> "139838140100384" [color = darkviolet];
|
||||
"tcc" -> "bootstrap-guile" [color = darkviolet];
|
||||
}
|
After Width: | Height: | Size: 427 KiB |
|
@ -0,0 +1,180 @@
|
|||
digraph "Guix package" {
|
||||
"gcc0" [label = "gcc0", shape = box, fontname = Helvetica];
|
||||
"gcc0" -> "glibc0" [color = red];
|
||||
"gcc0" -> "linux-libre-headers" [color = red];
|
||||
"gcc0" -> "binutils0" [color = red];
|
||||
"gcc0" -> "gawk0" [color = red];
|
||||
"gcc0" -> "gcc-core0" [color = red];
|
||||
"gcc0" -> "bash0" [color = red];
|
||||
"gcc0" -> "bzip2" [color = red];
|
||||
"gcc0" -> "diffutils" [color = red];
|
||||
"gcc0" -> "gzip" [color = red];
|
||||
"gcc0" -> "patch" [color = red];
|
||||
"gcc0" -> "sed0" [color = red];
|
||||
"gcc0" -> "make0" [color = red];
|
||||
"gcc0" -> "gash" [color = red];
|
||||
"gcc0" -> "gash-core-utils" [color = red];
|
||||
"gcc0" -> "bootstrap-guile" [color = red];
|
||||
#"gcc0" -> "guile-bootstrap+guild" [color = red];
|
||||
"glibc0" [label = "glibc0", shape = box, fontname = Helvetica];
|
||||
"glibc0" -> "mes-headers" [color = dimgrey];
|
||||
"glibc0" -> "binutils0" [color = dimgrey];
|
||||
"glibc0" -> "gawk0" [color = dimgrey];
|
||||
"glibc0" -> "gcc-core0" [color = dimgrey];
|
||||
"glibc0" -> "bash0" [color = dimgrey];
|
||||
"glibc0" -> "bzip2" [color = dimgrey];
|
||||
"glibc0" -> "diffutils" [color = dimgrey];
|
||||
"glibc0" -> "gzip" [color = dimgrey];
|
||||
"glibc0" -> "patch" [color = dimgrey];
|
||||
"glibc0" -> "sed0" [color = dimgrey];
|
||||
"glibc0" -> "make0" [color = dimgrey];
|
||||
"glibc0" -> "gash" [color = dimgrey];
|
||||
"glibc0" -> "gash-core-utils" [color = dimgrey];
|
||||
"glibc0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"glibc0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"mes-headers" [label = "mes-headers", shape = box, fontname = Helvetica];
|
||||
"mes-headers" -> "linux-libre-headers" [color = blue];
|
||||
"mes-headers" -> "bash0" [color = blue];
|
||||
"mes-headers" -> "bzip2" [color = blue];
|
||||
"mes-headers" -> "diffutils" [color = blue];
|
||||
"mes-headers" -> "gzip" [color = blue];
|
||||
"mes-headers" -> "patch" [color = blue];
|
||||
"mes-headers" -> "sed0" [color = blue];
|
||||
"mes-headers" -> "tcc" [color = blue];
|
||||
"mes-headers" -> "make0" [color = blue];
|
||||
"mes-headers" -> "gash" [color = blue];
|
||||
"mes-headers" -> "gash-core-utils" [color = blue];
|
||||
"mes-headers" -> "bootstrap-guile" [color = blue];
|
||||
#"mes-headers" -> "guile-bootstrap+guild" [color = blue];
|
||||
#"linux-libre-headers" [label = "linux-libre-headers-bootstrap", shape = box, fontname = Helvetica];
|
||||
"linux-libre-headers" [label = "bootstrap-linux-libre-headers", fontname = Helvetica];
|
||||
"bash0" [label = "bash0", shape = box, fontname = Helvetica];
|
||||
"bash0" -> "make0" [color = dimgrey];
|
||||
"bash0" -> "tcc0" [color = dimgrey];
|
||||
"bash0" -> "gash" [color = dimgrey];
|
||||
"bash0" -> "gash-core-utils" [color = dimgrey];
|
||||
"bash0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"bash0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"make0" [label = "make0", shape = box, fontname = Helvetica];
|
||||
"make0" -> "tcc0" [color = red];
|
||||
"make0" -> "gash" [color = red];
|
||||
"make0" -> "gash-core-utils" [color = red];
|
||||
"make0" -> "bootstrap-guile" [color = red];
|
||||
#"make0" -> "guile-bootstrap+guild" [color = red];
|
||||
"tcc0" [label = "tcc0", shape = box, fontname = Helvetica];
|
||||
"tcc0" -> "mes" [color = darkgoldenrod];
|
||||
"tcc0" -> "bootstrap-mescc-tools" [color = darkgoldenrod];
|
||||
"tcc0" -> "gash" [color = darkgoldenrod];
|
||||
"tcc0" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"tcc0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"tcc0" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"mes" [label = "mes", shape = box, fontname = Helvetica];
|
||||
#"mes" -> "bootstrap-mes-rewired" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-mes" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-mescc-tools" [color = darkgoldenrod];
|
||||
"mes" -> "gash" [color = darkgoldenrod];
|
||||
"mes" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"mes" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
#"bootstrap-mes-rewired" [label = "bootstrap-mes-rewired", shape = box, fontname = Helvetica];
|
||||
#"bootstrap-mes-rewired" -> "bootstrap-mes" [color = dimgrey];
|
||||
#"bootstrap-mes-rewired" -> "gash" [color = dimgrey];
|
||||
#"bootstrap-mes" [label = "bootstrap-mes", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mes" [label = "bootstrap-mes", fontname = Helvetica];
|
||||
"gash" [label = "gash", shape = box, fontname = Helvetica];
|
||||
"gash" -> "bootstrap-guile" [color = darkviolet];
|
||||
# "guile-bootstrap+guild" [label = "guile-bootstrap+guild", shape = box, fontname = Helvetica];
|
||||
# "guile-bootstrap+guild" -> "bootstrap-guile" [color = blue];
|
||||
|
||||
#"bootstrap-guile" [label = "guile-bootstrap", shape = box, fontname = Helvetica];
|
||||
"bootstrap-guile" [label = "guile-bootstrap", fontname = Helvetica];
|
||||
#"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools", fontname = Helvetica];
|
||||
|
||||
"gash-core-utils" [label = "gash-core-utils", shape = box, fontname = Helvetica];
|
||||
"gash-core-utils" -> "bootstrap-guile" [color = red];
|
||||
"gash-core-utils" -> "gash" [color = red];
|
||||
"bzip2" [label = "bzip2", shape = box, fontname = Helvetica];
|
||||
"bzip2" -> "make0" [color = darkgoldenrod];
|
||||
"bzip2" -> "tcc0" [color = darkgoldenrod];
|
||||
"bzip2" -> "gash" [color = darkgoldenrod];
|
||||
"bzip2" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"bzip2" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"bzip2" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"diffutils" [label = "diffutils", shape = box, fontname = Helvetica];
|
||||
"diffutils" -> "make0" [color = darkgoldenrod];
|
||||
"diffutils" -> "tcc0" [color = darkgoldenrod];
|
||||
"diffutils" -> "gash" [color = darkgoldenrod];
|
||||
"diffutils" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"diffutils" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"diffutils" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"gzip" [label = "gzip", shape = box, fontname = Helvetica];
|
||||
"gzip" -> "tcc0" [color = darkseagreen];
|
||||
"gzip" -> "gash" [color = darkseagreen];
|
||||
"gzip" -> "gash-core-utils" [color = darkseagreen];
|
||||
"gzip" -> "bootstrap-guile" [color = darkseagreen];
|
||||
#"gzip" -> "guile-bootstrap+guild" [color = darkseagreen];
|
||||
"patch" [label = "patch", shape = box, fontname = Helvetica];
|
||||
"patch" -> "make0" [color = peachpuff4];
|
||||
"patch" -> "tcc0" [color = peachpuff4];
|
||||
"patch" -> "gash" [color = peachpuff4];
|
||||
"patch" -> "gash-core-utils" [color = peachpuff4];
|
||||
"patch" -> "bootstrap-guile" [color = peachpuff4];
|
||||
#"patch" -> "guile-bootstrap+guild" [color = peachpuff4];
|
||||
"sed0" [label = "sed0", shape = box, fontname = Helvetica];
|
||||
"sed0" -> "make0" [color = peachpuff4];
|
||||
"sed0" -> "tcc0" [color = peachpuff4];
|
||||
"sed0" -> "gash" [color = peachpuff4];
|
||||
"sed0" -> "gash-core-utils" [color = peachpuff4];
|
||||
"sed0" -> "bootstrap-guile" [color = peachpuff4];
|
||||
#"sed0" -> "guile-bootstrap+guild" [color = peachpuff4];
|
||||
"tcc" [label = "tcc0", shape = box, fontname = Helvetica];
|
||||
"tcc" -> "bzip2" [color = blue];
|
||||
"tcc" -> "make0" [color = blue];
|
||||
"tcc" -> "tcc0" [color = blue];
|
||||
"tcc" -> "gash" [color = blue];
|
||||
"tcc" -> "gash-core-utils" [color = blue];
|
||||
"tcc" -> "bootstrap-guile" [color = blue];
|
||||
#"tcc" -> "guile-bootstrap+guild" [color = blue];
|
||||
"binutils0" [label = "binutils0", shape = box, fontname = Helvetica];
|
||||
"binutils0" -> "bash0" [color = darkgoldenrod];
|
||||
"binutils0" -> "bzip2" [color = darkgoldenrod];
|
||||
"binutils0" -> "diffutils" [color = darkgoldenrod];
|
||||
"binutils0" -> "gzip" [color = darkgoldenrod];
|
||||
"binutils0" -> "patch" [color = darkgoldenrod];
|
||||
"binutils0" -> "sed0" [color = darkgoldenrod];
|
||||
"binutils0" -> "tcc" [color = darkgoldenrod];
|
||||
"binutils0" -> "make0" [color = darkgoldenrod];
|
||||
"binutils0" -> "gash" [color = darkgoldenrod];
|
||||
"binutils0" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"binutils0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"binutils0" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"gawk0" [label = "gawk0", shape = box, fontname = Helvetica];
|
||||
"gawk0" -> "bash0" [color = dimgrey];
|
||||
"gawk0" -> "bzip2" [color = dimgrey];
|
||||
"gawk0" -> "diffutils" [color = dimgrey];
|
||||
"gawk0" -> "gzip" [color = dimgrey];
|
||||
"gawk0" -> "patch" [color = dimgrey];
|
||||
"gawk0" -> "sed0" [color = dimgrey];
|
||||
"gawk0" -> "tcc" [color = dimgrey];
|
||||
"gawk0" -> "make0" [color = dimgrey];
|
||||
"gawk0" -> "gash" [color = dimgrey];
|
||||
"gawk0" -> "gash-core-utils" [color = dimgrey];
|
||||
"gawk0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"gawk0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"gcc-core0" [label = "gcc-core0", shape = box, fontname = Helvetica];
|
||||
"gcc-core0" -> "binutils0" [color = red];
|
||||
"gcc-core0" -> "bash0" [color = red];
|
||||
"gcc-core0" -> "bzip2" [color = red];
|
||||
"gcc-core0" -> "diffutils" [color = red];
|
||||
"gcc-core0" -> "gzip" [color = red];
|
||||
"gcc-core0" -> "patch" [color = red];
|
||||
"gcc-core0" -> "sed0" [color = red];
|
||||
"gcc-core0" -> "tcc" [color = red];
|
||||
"gcc-core0" -> "make0" [color = red];
|
||||
"gcc-core0" -> "gash" [color = red];
|
||||
"gcc-core0" -> "gash-core-utils" [color = red];
|
||||
"gcc-core0" -> "bootstrap-guile" [color = red];
|
||||
#"gcc-core0" -> "guile-bootstrap+guild" [color = red];
|
||||
|
||||
}
|
After Width: | Height: | Size: 786 KiB |
|
@ -0,0 +1,180 @@
|
|||
digraph "Guix package" {
|
||||
"gcc0" [label = "gcc0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"gcc0" -> "glibc0" [color = red];
|
||||
"gcc0" -> "linux-libre-headers" [color = red];
|
||||
"gcc0" -> "binutils0" [color = red];
|
||||
"gcc0" -> "gawk0" [color = red];
|
||||
"gcc0" -> "gcc-core0" [color = red];
|
||||
"gcc0" -> "bash0" [color = red];
|
||||
"gcc0" -> "bzip2" [color = red];
|
||||
"gcc0" -> "diffutils" [color = red];
|
||||
"gcc0" -> "gzip" [color = red];
|
||||
"gcc0" -> "patch" [color = red];
|
||||
"gcc0" -> "sed0" [color = red];
|
||||
"gcc0" -> "make0" [color = red];
|
||||
"gcc0" -> "gash" [color = red];
|
||||
"gcc0" -> "gash-core-utils" [color = red];
|
||||
"gcc0" -> "bootstrap-guile" [color = red];
|
||||
#"gcc0" -> "guile-bootstrap+guild" [color = red];
|
||||
"glibc0" [label = "glibc0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"glibc0" -> "mes-headers" [color = dimgrey];
|
||||
"glibc0" -> "binutils0" [color = dimgrey];
|
||||
"glibc0" -> "gawk0" [color = dimgrey];
|
||||
"glibc0" -> "gcc-core0" [color = dimgrey];
|
||||
"glibc0" -> "bash0" [color = dimgrey];
|
||||
"glibc0" -> "bzip2" [color = dimgrey];
|
||||
"glibc0" -> "diffutils" [color = dimgrey];
|
||||
"glibc0" -> "gzip" [color = dimgrey];
|
||||
"glibc0" -> "patch" [color = dimgrey];
|
||||
"glibc0" -> "sed0" [color = dimgrey];
|
||||
"glibc0" -> "make0" [color = dimgrey];
|
||||
"glibc0" -> "gash" [color = dimgrey];
|
||||
"glibc0" -> "gash-core-utils" [color = dimgrey];
|
||||
"glibc0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"glibc0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"mes-headers" [label = "mes-headers@0.22", shape = box, fontname = Helvetica];
|
||||
"mes-headers" -> "linux-libre-headers" [color = blue];
|
||||
"mes-headers" -> "bash0" [color = blue];
|
||||
"mes-headers" -> "bzip2" [color = blue];
|
||||
"mes-headers" -> "diffutils" [color = blue];
|
||||
"mes-headers" -> "gzip" [color = blue];
|
||||
"mes-headers" -> "patch" [color = blue];
|
||||
"mes-headers" -> "sed0" [color = blue];
|
||||
"mes-headers" -> "tcc" [color = blue];
|
||||
"mes-headers" -> "make0" [color = blue];
|
||||
"mes-headers" -> "gash" [color = blue];
|
||||
"mes-headers" -> "gash-core-utils" [color = blue];
|
||||
"mes-headers" -> "bootstrap-guile" [color = blue];
|
||||
#"mes-headers" -> "guile-bootstrap+guild" [color = blue];
|
||||
#"linux-libre-headers" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"linux-libre-headers" [label = "bootstrap-linux-libre-headers@0", fontname = Helvetica];
|
||||
"bash0" [label = "bash0@2.05b", shape = box, fontname = Helvetica];
|
||||
"bash0" -> "make0" [color = dimgrey];
|
||||
"bash0" -> "tcc0" [color = dimgrey];
|
||||
"bash0" -> "gash" [color = dimgrey];
|
||||
"bash0" -> "gash-core-utils" [color = dimgrey];
|
||||
"bash0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"bash0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"make0" [label = "make0@3.80", shape = box, fontname = Helvetica];
|
||||
"make0" -> "tcc0" [color = red];
|
||||
"make0" -> "gash" [color = red];
|
||||
"make0" -> "gash-core-utils" [color = red];
|
||||
"make0" -> "bootstrap-guile" [color = red];
|
||||
#"make0" -> "guile-bootstrap+guild" [color = red];
|
||||
"tcc0" [label = "tcc0@0.9.26", shape = box, fontname = Helvetica];
|
||||
"tcc0" -> "mes" [color = darkgoldenrod];
|
||||
"tcc0" -> "bootstrap-mescc-tools" [color = darkgoldenrod];
|
||||
"tcc0" -> "gash" [color = darkgoldenrod];
|
||||
"tcc0" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"tcc0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"tcc0" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"mes" [label = "mes@0.22", shape = box, fontname = Helvetica];
|
||||
#"mes" -> "bootstrap-mes-rewired" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-mes" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-mescc-tools" [color = darkgoldenrod];
|
||||
"mes" -> "gash" [color = darkgoldenrod];
|
||||
"mes" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"mes" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"mes" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
#"bootstrap-mes-rewired" [label = "bootstrap-mes-rewired@0.19", shape = box, fontname = Helvetica];
|
||||
#"bootstrap-mes-rewired" -> "bootstrap-mes" [color = dimgrey];
|
||||
#"bootstrap-mes-rewired" -> "gash" [color = dimgrey];
|
||||
#"bootstrap-mes" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mes" [label = "bootstrap-mes@0.19", fontname = Helvetica];
|
||||
"gash" [label = "gash@0.2.0", shape = box, fontname = Helvetica];
|
||||
"gash" -> "bootstrap-guile" [color = darkviolet];
|
||||
# "guile-bootstrap+guild" [label = "guile-bootstrap+guild@2.0", shape = box, fontname = Helvetica];
|
||||
# "guile-bootstrap+guild" -> "bootstrap-guile" [color = blue];
|
||||
|
||||
#"bootstrap-guile" [label = "guile-bootstrap@2.0", shape = box, fontname = Helvetica];
|
||||
"bootstrap-guile" [label = "guile-bootstrap@2.0", fontname = Helvetica];
|
||||
#"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"bootstrap-mescc-tools" [label = "bootstrap-mescc-tools@0.5.2", fontname = Helvetica];
|
||||
|
||||
"gash-core-utils" [label = "gash-core-utils@0.0", shape = box, fontname = Helvetica];
|
||||
"gash-core-utils" -> "bootstrap-guile" [color = red];
|
||||
"gash-core-utils" -> "gash" [color = red];
|
||||
"bzip2" [label = "bzip2@1.0.6", shape = box, fontname = Helvetica];
|
||||
"bzip2" -> "make0" [color = darkgoldenrod];
|
||||
"bzip2" -> "tcc0" [color = darkgoldenrod];
|
||||
"bzip2" -> "gash" [color = darkgoldenrod];
|
||||
"bzip2" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"bzip2" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"bzip2" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"diffutils" [label = "diffutils@2.7", shape = box, fontname = Helvetica];
|
||||
"diffutils" -> "make0" [color = darkgoldenrod];
|
||||
"diffutils" -> "tcc0" [color = darkgoldenrod];
|
||||
"diffutils" -> "gash" [color = darkgoldenrod];
|
||||
"diffutils" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"diffutils" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"diffutils" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"gzip" [label = "gzip@1.2.4", shape = box, fontname = Helvetica];
|
||||
"gzip" -> "tcc0" [color = darkseagreen];
|
||||
"gzip" -> "gash" [color = darkseagreen];
|
||||
"gzip" -> "gash-core-utils" [color = darkseagreen];
|
||||
"gzip" -> "bootstrap-guile" [color = darkseagreen];
|
||||
#"gzip" -> "guile-bootstrap+guild" [color = darkseagreen];
|
||||
"patch" [label = "patch@2.5.9", shape = box, fontname = Helvetica];
|
||||
"patch" -> "make0" [color = peachpuff4];
|
||||
"patch" -> "tcc0" [color = peachpuff4];
|
||||
"patch" -> "gash" [color = peachpuff4];
|
||||
"patch" -> "gash-core-utils" [color = peachpuff4];
|
||||
"patch" -> "bootstrap-guile" [color = peachpuff4];
|
||||
#"patch" -> "guile-bootstrap+guild" [color = peachpuff4];
|
||||
"sed0" [label = "sed0@1.18", shape = box, fontname = Helvetica];
|
||||
"sed0" -> "make0" [color = peachpuff4];
|
||||
"sed0" -> "tcc0" [color = peachpuff4];
|
||||
"sed0" -> "gash" [color = peachpuff4];
|
||||
"sed0" -> "gash-core-utils" [color = peachpuff4];
|
||||
"sed0" -> "bootstrap-guile" [color = peachpuff4];
|
||||
#"sed0" -> "guile-bootstrap+guild" [color = peachpuff4];
|
||||
"tcc" [label = "tcc0@0.9.27", shape = box, fontname = Helvetica];
|
||||
"tcc" -> "bzip2" [color = blue];
|
||||
"tcc" -> "make0" [color = blue];
|
||||
"tcc" -> "tcc0" [color = blue];
|
||||
"tcc" -> "gash" [color = blue];
|
||||
"tcc" -> "gash-core-utils" [color = blue];
|
||||
"tcc" -> "bootstrap-guile" [color = blue];
|
||||
#"tcc" -> "guile-bootstrap+guild" [color = blue];
|
||||
"binutils0" [label = "binutils0@2.14", shape = box, fontname = Helvetica];
|
||||
"binutils0" -> "bash0" [color = darkgoldenrod];
|
||||
"binutils0" -> "bzip2" [color = darkgoldenrod];
|
||||
"binutils0" -> "diffutils" [color = darkgoldenrod];
|
||||
"binutils0" -> "gzip" [color = darkgoldenrod];
|
||||
"binutils0" -> "patch" [color = darkgoldenrod];
|
||||
"binutils0" -> "sed0" [color = darkgoldenrod];
|
||||
"binutils0" -> "tcc" [color = darkgoldenrod];
|
||||
"binutils0" -> "make0" [color = darkgoldenrod];
|
||||
"binutils0" -> "gash" [color = darkgoldenrod];
|
||||
"binutils0" -> "gash-core-utils" [color = darkgoldenrod];
|
||||
"binutils0" -> "bootstrap-guile" [color = darkgoldenrod];
|
||||
#"binutils0" -> "guile-bootstrap+guild" [color = darkgoldenrod];
|
||||
"gawk0" [label = "gawk0@3.0.0", shape = box, fontname = Helvetica];
|
||||
"gawk0" -> "bash0" [color = dimgrey];
|
||||
"gawk0" -> "bzip2" [color = dimgrey];
|
||||
"gawk0" -> "diffutils" [color = dimgrey];
|
||||
"gawk0" -> "gzip" [color = dimgrey];
|
||||
"gawk0" -> "patch" [color = dimgrey];
|
||||
"gawk0" -> "sed0" [color = dimgrey];
|
||||
"gawk0" -> "tcc" [color = dimgrey];
|
||||
"gawk0" -> "make0" [color = dimgrey];
|
||||
"gawk0" -> "gash" [color = dimgrey];
|
||||
"gawk0" -> "gash-core-utils" [color = dimgrey];
|
||||
"gawk0" -> "bootstrap-guile" [color = dimgrey];
|
||||
#"gawk0" -> "guile-bootstrap+guild" [color = dimgrey];
|
||||
"gcc-core0" [label = "gcc-core0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"gcc-core0" -> "binutils0" [color = red];
|
||||
"gcc-core0" -> "bash0" [color = red];
|
||||
"gcc-core0" -> "bzip2" [color = red];
|
||||
"gcc-core0" -> "diffutils" [color = red];
|
||||
"gcc-core0" -> "gzip" [color = red];
|
||||
"gcc-core0" -> "patch" [color = red];
|
||||
"gcc-core0" -> "sed0" [color = red];
|
||||
"gcc-core0" -> "tcc" [color = red];
|
||||
"gcc-core0" -> "make0" [color = red];
|
||||
"gcc-core0" -> "gash" [color = red];
|
||||
"gcc-core0" -> "gash-core-utils" [color = red];
|
||||
"gcc-core0" -> "bootstrap-guile" [color = red];
|
||||
#"gcc-core0" -> "guile-bootstrap+guild" [color = red];
|
||||
|
||||
}
|
After Width: | Height: | Size: 815 KiB |
|
@ -0,0 +1,94 @@
|
|||
digraph "Guix bag" {
|
||||
|
||||
node[width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
dpi=75
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [fontcolor = red]
|
||||
|
||||
//HANDCRAFTED UNTIL HERE TO BE ABLE TO CUSTOMIZE
|
||||
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" [label = "gcc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [label = "binutils0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [label = "tcc", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [label = "mes", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = darkseagreen];
|
||||
# "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [label = "bootstrap-binaries", shape = box, fontname = Helvetica];
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [label = "guile-bootstrap", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" [label = "tcc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = dimgrey];
|
||||
# "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = dimgrey];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [label = "diffutils", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [label = "make0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [label = "gcc-core", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" [label = "glibc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = blue];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" [label = "mes-headers", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
#"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "bootstrap-linux-libre-headers", fontname = Helvetica];
|
||||
|
||||
// HANDCRAFTED FROM HERE TO MAKE THE STATIC BOOTSTRAP BINARIES VISIBLE
|
||||
|
||||
bash [fontname = Helvetica]
|
||||
bzip2 [fontname = Helvetica]
|
||||
coreutils [fontname = Helvetica]
|
||||
gawk [fontname = Helvetica]
|
||||
grep [fontname = Helvetica]
|
||||
gzip [fontname = Helvetica]
|
||||
patch [fontname = Helevtica]
|
||||
sed [fontname = Helvetica]
|
||||
tar [fontname = Helvetica]
|
||||
xz [fontname = Helevtica]
|
||||
|
||||
"/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools", fontname = Helvetica];
|
||||
"/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [label = "bootstrap-mes", fontname = Helvetica];
|
||||
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bash
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bzip2
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> coreutils
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gawk
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> grep
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gzip
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> patch
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> sed
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> tar
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> xz
|
||||
}
|
After Width: | Height: | Size: 136 KiB |
|
@ -0,0 +1,94 @@
|
|||
digraph "Guix bag" {
|
||||
|
||||
node[width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
dpi=75
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [fontcolor = red]
|
||||
|
||||
//HANDCRAFTED UNTIL HERE TO BE ABLE TO CUSTOMIZE
|
||||
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" [label = "gcc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc0-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [label = "binutils0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [label = "tcc", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [label = "mes", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = darkseagreen];
|
||||
# "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [label = "bootstrap-binaries", shape = box, fontname = Helvetica];
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [label = "guile-bootstrap", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" [label = "tcc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = dimgrey];
|
||||
# "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = dimgrey];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [label = "diffutils", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-0.19.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [label = "make0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [label = "gcc-core", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-0.9.27.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" [label = "glibc0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils0-2.20.1a.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-2.95.3.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-2.7.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc0-2.2.5.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make0-3.80.drv" [color = blue];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" [label = "mes-headers", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-headers-0.19.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
#"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "bootstrap-linux-libre-headers", fontname = Helvetica];
|
||||
|
||||
// HANDCRAFTED FROM HERE TO MAKE THE STATIC BOOTSTRAP BINARIES VISIBLE
|
||||
|
||||
bash [fontname = Helvetica]
|
||||
bzip2 [fontname = Helvetica]
|
||||
coreutils [fontname = Helvetica]
|
||||
gawk [fontname = Helvetica]
|
||||
grep [fontname = Helvetica]
|
||||
gzip [fontname = Helvetica]
|
||||
patch [fontname = Helevtica]
|
||||
sed [fontname = Helvetica]
|
||||
tar [fontname = Helvetica]
|
||||
xz [fontname = Helevtica]
|
||||
|
||||
"/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools", fontname = Helvetica];
|
||||
"/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [label = "bootstrap-mes", fontname = Helvetica];
|
||||
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bash
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bzip2
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> coreutils
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gawk
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> grep
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gzip
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> patch
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> sed
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> tar
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> xz
|
||||
}
|
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,13 @@
|
|||
digraph "Guix package" {
|
||||
"39920672" [label = "make-boot0@4.2.1", shape = box, fontname = Helvetica];
|
||||
"39920672" -> "40227520" [color = black];
|
||||
"39920672" -> "40227344" [color = black];
|
||||
"39920672" -> "40227168" [color = black];
|
||||
"39920672" -> "40226992" [color = black];
|
||||
"40227520" [label = "glibc-bootstrap@0", fontname = Helvetica];
|
||||
"40227344" [label = "gcc-bootstrap@0", fontname = Helvetica];
|
||||
"40227344" -> "40227520" [color = black];
|
||||
"40227168" [label = "binutils-bootstrap@0", fontname = Helvetica];
|
||||
"40226992" [label = "bootstrap-binaries@0", fontname = Helvetica];
|
||||
|
||||
}
|
After Width: | Height: | Size: 34 KiB |
|
@ -0,0 +1,20 @@
|
|||
3906 ./pre-inst-env guix graph --system=i686-linux gcc-mesboot0
|
||||
3907 ./pre-inst-env guix graph --system=i686-linux -e '(@@ (gnu packages commencement) gcc-mesboot0)'
|
||||
3908 ./pre-inst-env guix graph --system=i686-linux -e '(@@ (gnu packages commencement) gcc-mesboot0)' > gcc-mesboot0-scheme-only.dot
|
||||
3914 ./pre-inst-env guix graph --system=i686-linux -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' > gcc-core-mesboot0-scheme-only.dot
|
||||
3923 ./pre-inst-env guix graph --system=i686-linux -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' > gcc-core-mesboot0-scheme-only.dotpk
|
||||
4859 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gnu-make-boot0)'
|
||||
4860 guix graph hello > hello| dot -T png > hello.png
|
||||
5855 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gnu-make-boot0)' > gnu-make-boot0.dot
|
||||
5859 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gnu-make-boot0)' > gnu-make-boot0.dot
|
||||
5862 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-final)' > gcc-final.dot
|
||||
5865 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-boot-0)' > gcc-boot-0.dot
|
||||
5866 ~/src/guix/version-1.0/pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-boot0)' > gcc-boot0.dot
|
||||
5925 guix graph hello > hello| dot -T png > hello.png
|
||||
5928 guix graph hello | dot -T png > hello.png
|
||||
5930 guix graph mes | dot -T png > mes.png
|
||||
5932 guix graph make | dot -T png > make.png
|
||||
10007 git grep 'guix graph'
|
||||
10008 history | grep guix graph
|
||||
10009 history | grep 'guix graph'
|
||||
10010 history | grep 'guix graph' > graphs
|
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1 @@
|
|||
guix environment --ad-hoc espeak graphviz texlive-bin texlive texlive-latex-base texlive-latex-graphics texlive-latex-geometry texlive-beamer sox ffmpeg vorbis-tools
|
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 116 KiB |
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: GNU Mes
|
||||
#+TITLE: \smaller[2]{-- Scheme-only bootstrap}
|
||||
#+DATE:2020-02-02
|
||||
#+EMAIL: janneke@gnu.org
|
||||
#+AUTHOR: janneke@gnu.org
|
||||
#+OPTIONS: ^:nil
|
||||
#+COPYRIGHT: janneke (Jan) Nieuwenhuizen <janneke@gn.org>
|
||||
#+LICENSE: GNU Free Documentation License, version 1.3 or later.
|
||||
#+LATEX_HEADER:\institute{FOSDEM'20}
|
||||
#+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}}
|
||||
#+OPTIONS: H:2
|
||||
#+LATEX_CLASS: beamer
|
||||
#+LATEX_CLASS_OPTIONS: [presentation]
|
||||
#+LATEX_HEADER: \usepackage{relsize}
|
||||
#+LATEX_HEADER: \usepackage{hyperref}
|
||||
#+LATEX_HEADER: \mode<beamer>{\usetheme{X}}
|
||||
#+LATEX_HEADER: \newcommand<>{\fullscreen}[1]{
|
||||
#+LATEX_HEADER: \begin{textblock*}{0cm}(-1cm,-3.78cm)
|
||||
#+LATEX_HEADER: \includegraphics[width=\paperwidth]{#1}
|
||||
#+LATEX_HEADER: \end{textblock*}
|
||||
#+LATEX_HEADER: }
|
||||
#+BEAMER_THEME: X
|
||||
#+BEAMER_FRAME_LEVEL: 2
|
||||
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt)
|
||||
|
||||
Ken Thompson UNIX, UTF-8, Golang
|
||||
Reflections on trusting trust
|
||||
1984 turing award acceptance speach
|
||||
|
||||
because toolchains are built by previous versions of themselves
|
||||
you can poison an entire line of them
|
||||
just by poisoning one generation
|
||||
and it would propagate down to future generations
|
||||
even if the source code was clean
|
||||
|
||||
so, what can we do about a toolchain that consists of countless trusted
|
||||
binaries?
|
||||
|
||||
reproducible + bootstrappable
|
||||
|
||||
=> Minimize trusted binary seeds
|
||||
=> Maintain auditable bootstrap path
|
||||
|
||||
* Scheme-only bootstrap: Introduction.
|
||||
|
||||
** Scheme-only bootstrap: GNU Mes
|
||||
|
||||
*** GNU Mes
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.6
|
||||
:BEAMER_ENV: block
|
||||
:END:
|
||||
|
||||
* A Scheme interpreter written in ~5,000LOC of simple C.
|
||||
|
||||
* A C compiler written in Scheme.
|
||||
|
||||
* Built on Lisp: eval/apply, the *Maxwell Equations of Software*.
|
||||
|
||||
*** LOGO
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.3
|
||||
:BEAMER_ENV: quote
|
||||
:END:
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.7\textwidth]{mes.png}
|
||||
|
||||
** Reproducible-Builds.org
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\hskip-10cm\vskip-2.5cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducible-builds.png}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Reproducible-Builds.org
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.5cm\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducible-builds.png}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** Reproducible-Builds.org
|
||||
#+LATEX:{\begin{frame}[plain]
|
||||
#+LATEX:{\vskip-2.5cm{\hspace{-1.5cm}\includegraphics[width=1.1\paperwidth,height=1.1\paperheight]{reproducible-builds.png}}}
|
||||
#+LATEX:\end{frame}}
|
||||
|
||||
** How to Bootstrap: An Old Recipe...
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.3\textwidth]{yoghurt.png}\\
|
||||
#+BEGIN_QUOTE
|
||||
Recipe for yoghurt: Add yoghurt to milk -- Anonymous
|
||||
#+END_QUOTE
|
|
@ -0,0 +1,163 @@
|
|||
#+TITLE: Bootstrapping Intro
|
||||
#+TITLE: \smaller[2]{-- Current status}
|
||||
#+DATE:2020-01-30
|
||||
#+EMAIL: janneke@gnu.org
|
||||
#+AUTHOR: janneke@gnu.org
|
||||
#+COPYRIGHT: janneke (Jan Nieuwenhuizen) <janneke@gn.org>
|
||||
#+LICENSE: GNU Free Documentation License, version 1.3 or later.
|
||||
#+OPTIONS: H:2 @:t ::t
|
||||
#+OPTIONS: tex:t latex:t todo:t tasks:t
|
||||
#+LATEX_HEADER:\institute{GNU Guix Days @FOSDEM'20}
|
||||
#+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}}
|
||||
#+LATEX_CLASS: beamer
|
||||
#+LATEX_CLASS_OPTIONS: [presentation]
|
||||
#+LATEX_HEADER: \usepackage{relsize}
|
||||
#+LATEX_HEADER: \usepackage{hyperref}
|
||||
#+LATEX_HEADER: \mode<beamer>{\usetheme{X}}
|
||||
#+KEYWORDS: GNU, Mes, Mes, Guix, bootstrappable, reproducible
|
||||
#+BEAMER_THEME: X
|
||||
#+BEAMER_FRAME_LEVEL: 2
|
||||
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt)
|
||||
|
||||
* Bootstrapping Guix v1.0
|
||||
|
||||
** Guix v1.0: The First Package
|
||||
#+LATEX:\includegraphics[width=1.0\textwidth]{gnu-make-boot0.png}
|
||||
|
||||
** Guix Graph
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
$ guix graph make
|
||||
$ guix graph make | dot -T png > make.png
|
||||
$ guix graph -e '(@@ (gnu packages commencement) gnu-make-boot0)'
|
||||
#+END_SRC
|
||||
|
||||
** Guix v1.0: The First GCC
|
||||
#+LATEX:\includegraphics[width=1.3\textwidth]{gcc-boot0-black.png}
|
||||
|
||||
** Guix bootstrap tarballs
|
||||
#+BEGIN_SRC sh
|
||||
$ guix build bootstrap-tarballs
|
||||
#+END_SRC
|
||||
|
||||
** Guix v1.0 bootstrap binary seed
|
||||
#+BEGIN_SRC sh
|
||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||
2.1M /gnu/store/9623n4bq6iq5c8cwwdq99qb7d0xj93ym-binutils-static-stripped-tarball-2.28.1/binutils-static-stripped-2.28.1-x86_64-linux.tar.xz
|
||||
18M /gnu/store/437xwygmmwwpkddcyy1qvjcv4hak89pb-gcc-stripped-tarball-5.5.0/gcc-stripped-5.5.0-x86_64-linux.tar.xz
|
||||
1.8M /gnu/store/55ccx18a0d1x5y6a575jf1yr0ywizvdg-glibc-stripped-tarball-2.26.105-g0890d5379c/glibc-stripped-2.26.105-g0890d5379c-x86_64-linux.tar.xz
|
||||
5.7M /gnu/store/bqf0ajclbvnbm0a46819f30804y3ilx0-guile-static-stripped-tarball-2.2.3/guile-static-stripped-2.2.3-x86_64-linux.tar.xz
|
||||
5.8M /gnu/store/j8yzjmh9sy4gbdfwjrhw46zca43aah6x-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz
|
||||
33M total
|
||||
$ for i in $(readlink $(guix build bootstrap-tarballs)/*);\
|
||||
do sudo tar xf $i; done
|
||||
$ du -schx *
|
||||
130M bin
|
||||
13M include
|
||||
54M lib
|
||||
51M libexec
|
||||
5.2M share
|
||||
252M total
|
||||
#+END_SRC
|
||||
|
||||
** Reduce binary seeds to bare minimum
|
||||
#+BEGIN_QUOTE
|
||||
These big chunks of binary code are practically non-auditable which
|
||||
breaks the source to binary transparency that we get in the rest of
|
||||
the package dependency graph.
|
||||
#+END_QUOTE
|
||||
#+BEGIN_QUOTE
|
||||
Every unauditable binary leaves us vulnerable to compiler backdoors as
|
||||
described by Ken Thompson in the 1984 paper *Reflections on Trusting
|
||||
Trust*.
|
||||
#+END_QUOTE
|
||||
#+BEGIN_QUOTE
|
||||
Thus, our goal is to reduce the set of bootstrap binaries to the bare
|
||||
minimum. -- Ludovic Courtès (GNU Guix documentation, December 2017)
|
||||
#+END_QUOTE
|
||||
|
||||
** Guix Reduced Binary Seed
|
||||
#+BEGIN_SRC sh
|
||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||
5.7M /gnu/store/9f8gi8raqfx9j3l9d00qrrc0jg3r1kyj-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz
|
||||
80K /gnu/store/b6rjl52hibhmvyw4dg8678pwryhla0h2-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz
|
||||
12K /gnu/store/d7zlxsjcnqilmvqwx7scija9x9bjw8cw-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz
|
||||
428K /gnu/store/n7zc4kpi8ny6jlfaikkzxlwhc5fvr1vr-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz
|
||||
6.0M /gnu/store/nv4djwlrljfqmynqr2cqvfwz0ydx7kxb-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz
|
||||
13M total
|
||||
$ for i in $(readlink $(guix build bootstrap-tarballs)/*);\
|
||||
do sudo tar xf $i; done
|
||||
Password:
|
||||
$ du -schx *
|
||||
93M bin
|
||||
700K include
|
||||
38M lib
|
||||
14M share
|
||||
145M total
|
||||
#+END_SRC
|
||||
|
||||
** Guix Scheme-only bootstrap
|
||||
#+BEGIN_SRC sh
|
||||
$ du -schx $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*)
|
||||
5.7M /gnu/store/1mq2pcd2h7g54xpi2jrgj6ibbi4lgi3c-guile-static-stripped-tarball-2.2.6/guile-static-stripped-2.2.6-x86_64-linux.tar.xz
|
||||
80K /gnu/store/bl1r2bpk6fam8r2gjvr5mvr48i3dm2hn-linux-libre-headers-stripped-tarball-4.19.56/linux-libre-headers-stripped-4.19.56-x86_64-linux.tar.xz
|
||||
12K /gnu/store/w0dlz486dhb8aiq8pxm5akllz628fqin-mescc-tools-static-stripped-tarball-0.5.2-0.bb062b0/mescc-tools-static-stripped-0.5.2-0.bb062b0-x86_64-linux.tar.xz
|
||||
428K /gnu/store/15j6l18q44ymlrh1cfp4s4hc9835xic5-mes-minimal-stripped-tarball-0.19/mes-minimal-stripped-0.19-x86_64-linux.tar.xz
|
||||
6.2M total
|
||||
$ for i in $(readlink $(~/src/guix/wip-bootstrap/pre-inst-env guix build bootstrap-tarballs)/*);\
|
||||
do sudo tar xf $i; done
|
||||
$ du -schx *
|
||||
4.9M bin
|
||||
700K include
|
||||
38M lib
|
||||
14M share
|
||||
57M total
|
||||
#+END_SRC
|
||||
|
||||
** Scheme-only bootstrap: Gash Core Utils
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
awk cp gash mv sleep uname
|
||||
basename cut grep pwd sort uniq
|
||||
bash diff gzip reboot tar wc
|
||||
cat dirname head rm test which
|
||||
chmod expr ln rmdir touch
|
||||
cmp false ls sed tr
|
||||
compress find mkdir sh true
|
||||
#+END_SRC
|
||||
|
||||
* Aim for the Stars: Full Source Bootstrap
|
||||
|
||||
** Full Source Bootstrap
|
||||
#+LATEX:\includegraphics[width=0.6\textwidth]{fsb-logo-guile-guix-mes.png}
|
||||
|
||||
** Full Source Bootstrap: Stage 0
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.8\textwidth]{stage-0.png}
|
||||
|
||||
** Full Source Bootstrap: Stage 1
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.85\textwidth]{stage-1.png}
|
||||
|
||||
** Full Source Bootstrap: Stage 2
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.75\textwidth]{stage-2.png}
|
||||
|
||||
** Full Source Bootstrap: Stage mes
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=0.75\textwidth]{stage-mes.png}
|
||||
|
||||
** Full Source Bootstrap: Stage mesboot
|
||||
#+LATEX:\rightskip=2cm\includegraphics[width=1.0\textwidth]{stage-mesboot.png}
|
||||
|
||||
* legalese
|
||||
:PROPERTIES:
|
||||
:BEAMER_ENV: note
|
||||
:COPYING: t
|
||||
:END:
|
||||
|
||||
Copyright \copy 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
||||
and with no Back-Cover Texts.
|
||||
#+END_QUOTE
|
After Width: | Height: | Size: 187 KiB |
|
@ -0,0 +1,32 @@
|
|||
* < 1 week *Trivial*
|
||||
** Trusting trust attack can compromise entire system
|
||||
** System language, essential applications
|
||||
|
||||
| Program | Depndency | Seed |
|
||||
|---------+-----------+------|
|
||||
| Gcc | GCC-1 | |
|
||||
| Guile | C | |
|
||||
|---------+-----------+------|
|
||||
|
||||
|
||||
* < 1 year *Doable*
|
||||
** Trusting trust attack can lead to data loss
|
||||
** Emerging application programming languages
|
||||
|
||||
| Program | Dependency | Seed |
|
||||
|---------+------------+-----------|
|
||||
| rust | rust-1 | mrustc(?) |
|
||||
| | | |
|
||||
| | | |
|
||||
|---------+------------+-----------|
|
||||
|
||||
* >= 1 year *Impossible*
|
||||
** OK to ignore Trusting trust attack
|
||||
** Experimental languages, toy languages
|
||||
|
||||
| Program | Dependency | Seed |
|
||||
|---------+------------+------|
|
||||
| C | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|---------+------------+------|
|
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 12 KiB |