From 3e8d5c226fe32c8b2b376daf56f775bc87f4a882 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Thu, 11 Jul 2024 23:02:32 +0200 Subject: Add Guix.social talk about Guix RISCV bootstrap --- GuixSocial/.gitignore | 2 ++ GuixSocial/Makefile | 16 +++++++++ GuixSocial/contents.latex | 60 ++++++++++++++++++++++++++++++++++ GuixSocial/takahashi.sty | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 160 insertions(+) create mode 100644 GuixSocial/.gitignore create mode 100644 GuixSocial/Makefile create mode 100644 GuixSocial/contents.latex create mode 100644 GuixSocial/takahashi.sty diff --git a/GuixSocial/.gitignore b/GuixSocial/.gitignore new file mode 100644 index 0000000..dc4967f --- /dev/null +++ b/GuixSocial/.gitignore @@ -0,0 +1,2 @@ +aux +*.pdf diff --git a/GuixSocial/Makefile b/GuixSocial/Makefile new file mode 100644 index 0000000..75b713c --- /dev/null +++ b/GuixSocial/Makefile @@ -0,0 +1,16 @@ +TARGET = presentation.pdf + +AUX = aux +CONTENT = contents.latex + +all: $(TARGET) + +$(TARGET): $(CONTENT) + mkdir -p $(AUX) + pdflatex -output-directory=$(AUX) $(CONTENT) + cp $(AUX)/*.pdf . + +clean: + rm -r $(TARGET) $(AUX) + +.PHONY: all clean diff --git a/GuixSocial/contents.latex b/GuixSocial/contents.latex new file mode 100644 index 0000000..4141e5d --- /dev/null +++ b/GuixSocial/contents.latex @@ -0,0 +1,60 @@ +\documentclass{beamer} +\usepackage{takahashi} +\usepackage{hyperref} +\hypersetup{ + colorlinks = true, + urlcolor = {red} +} +\newcommand{\link}[1]{\footnote{\url{#1}}} +\newcommand{\stack}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}} +\begin{document} +\takahashi{\stack{\textbf{Guix}\\\textbf{RISC-V}\\\textbf{Bootstrap}}} + +\takahashi{\stack{\textbf{Me, ekaitz}\\freelance\\engineer\link{https://elenq.tech}}} + +\takahashi{\textbf{RISC-V}} +\takahashi{\stack{Most ISAs\\are proprietary\\license fees}} +\takahashi{\stack{RISC-V\\is open\\and modular}} +\takahashi{\stack{microcontrollers\\computers\\huge servers}} +\takahashi{\stack{Linux \& RISC-V\\getting there}} + +\takahashi{\textbf{Bootstrapping}} +\takahashi{\stack{Can we make sure our\\Free software comes\\from the sources?}} +\takahashi{NO} +\takahashi{\stack{No, the compilers\\(person or program)\\might be evil}} +\takahashi{\stack{Making yogurt\link{https://archive.fosdem.org/2020/schedule/event/gnumes/}\\Trusting Trust\link{https://dl.acm.org/doi/pdf/10.1145/358198.358210}}} +\takahashi{\stack{Bootstrapping\\prevents this}} + +\takahashi{\stack{\textbf{A new}\\\textbf{commencement}\footnote{(gnu +packages commencement)}}} +\takahashi{\stack{\textbf{Ports!} + \\\onslide<2,3,4>{Stage0-POSIX} + \\\onslide<3,4>{GNU Mes} + \\\onslide<4>{TinyCC}}} +\takahashi{\stack{\textbf{Backports!} + \\\onslide<2,3>{GCC 4.6.4} + \\\onslide<3>{TinyCC-Boot}}} +\takahashi{\stack{\textbf{Changes!} + \onslide<2>{\\Musl instead of + \\GCC 2.95 \& Glibc}}} + +\takahashi{See \href{https://issues.guix.gnu.org/issue/71921}{\#71921}} + +\takahashi{\stack{\textbf{People} + \\\onslide<2,3,4>stikonas + \\\onslide<3,4>janneke + \\\onslide<4>efraim}} +\takahashi{\stack{\textbf{Money}\\NLNet-NGI\link{https://nlnet.nl/}}} + +\takahashi{\stack{Leadership}} +\takahashi{\stack{ + \onslide<1,2,3>{Writing\footnote{\href{https://ekaitz.elenq.tech/tag/bootstrapping-gcc-in-risc-v.html}{My blog}}}\\ + \onslide<2,3>{Introductory talk\footnote{\href{https://archive.fosdem.org/2023/schedule/event/guixriscv/}{FOSDEM 2023}}}\\ + \onslide<3>{Advanced talk\footnote{\href{https://archive.fosdem.org/2023/schedule/event/guixriscv/}{FOSDEM 2024 (in person!)}}} }} + +\takahashi{ \stack{\textbf{Thanks} + \\\onslide<2,3,4,5>help + \\\onslide<3,4,5>money + \\\onslide<4,5>support + \\\onslide<5>attention}} +\end{document} diff --git a/GuixSocial/takahashi.sty b/GuixSocial/takahashi.sty new file mode 100644 index 0000000..cab0056 --- /dev/null +++ b/GuixSocial/takahashi.sty @@ -0,0 +1,82 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{takahashi}[2013/06/25 Takahashi method for beamer] + +% Copyright (c) 2008-2013, Chung-chieh Shan. + +% This program 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 2 of the License, or +% (at your option) any later version. + +% This program 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. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Our main command \takahashi takes an optional overlay specification +% (for the frame), an optional argument (frame options, defaulting to +% "plain"), and a mandatory argument (the contents of the frame). +\newcommand<>{\takahashi}[2][plain]{% + \toks0={#1}% + \toks2={\begin{frame}#3}% + \edef\next{\the\toks0 }% + \ifx\next\@empty + \edef\next{\the\toks2 }% + \else + \edef\next{\the\toks2 [{\the\toks0 }]}% + \fi + \next + \aftergroup\aftergroup\aftergroup\beamer@takahashi + \resizebox\hsize!{#2}% + \end{frame}% +} + +% Define \takahashi@shrinkframebox, a variant of \beamer@shrinkframebox +% that centers the frame horizontally and does not depend on +% \beamer@shrinkpercentage. +\def\takahashi@shrinkframebox{% + \@tempdima=\ht\beamer@framebox + \advance\@tempdima\dp\beamer@framebox + \ifdim\@tempdima>\beamer@frametextheight + \@tempcnta=\@tempdima + \divide\@tempcnta by 65536 + \@tempdimc=\beamer@frametextheight + \divide\@tempdimc by\@tempcnta + \edef\beamer@factortemp{\strip@pt\@tempdimc}% + \setbox\beamer@framebox=\vbox to\beamer@frametextheight{% + \begin{pgfpicture}{-.5\wd\beamer@framebox}{-\beamer@frametextheight}{0pt}{0pt} + {\pgftransformscale{\beamer@factortemp}% + \pgftext[top]{\box\beamer@framebox}}% + \end{pgfpicture}% + }% + \fi +} + +% Takahashi slides always enable the frame option "shrink" with +% \takahashi@shrinkframebox in place of \beamer@shrinkframebox. +\def\beamer@takahashi{% + \beamer@shrinktrue + \let\beamer@shrinkframebox\takahashi@shrinkframebox +} + +% Patch beamer's implementation of the ignorenonframetext option +% (i.e., the \mode* command) so that \takahashi is not ignored. +\toks0={\ifx\beamer@nexttoken\takahashi\let\next=\beamer@stopoutsidemode\fi}% +\toks2=\expandafter{\beamer@treat}% +\edef\beamer@treat{\the\toks0 \the\toks2 }% + +% Tested with beamer 3.07: +% \documentclass{beamer} +% \usepackage{takahashi} +% \usepackage{calc} +% \setbeamersize{text margin left = 0pt, text margin right = 0pt} +% \begin{document} +% \takahashi{Test \onslide<2>{some more}} +% \takahashi<1>[label=repeat]{\frametitle{Title here}Test \onslide<2>{some more}} +% \againframe<2>{repeat} +% \takahashi{$_g$\!\vrule depth.2pt height.2pt \vrule} +% \takahashi[]{\frametitle{Title here}$_g$\!\vrule depth.2pt height.2pt \vrule} +% \takahashi{\raisebox{0pt}[\height+1pt][\depth+1pt]{!}} +% \end{document} -- cgit v1.2.3