summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo 'Grim' Cabrita <grimkriegor@krutt.org>2019-12-28 01:18:02 +0100
committerRicardo 'Grim' Cabrita <grimkriegor@krutt.org>2019-12-28 03:53:07 +0100
commit6e98b13ee57d6c698024a207201107010dc67ac6 (patch)
treebe2ee7776a8b2d798cd1d08ddb266aebdc433ac4
parent95687732ede9f0e3c5d46abf54dd5355ddd7a6c6 (diff)
downloadbuildsystem-presentation-master.tar.gz
buildsystem-presentation-master.tar.bz2
buildsystem-presentation-master.zip
Finishing touchesHEADmaster
-rw-r--r--slides.tex69
-rw-r--r--txt/ninja-example4
-rw-r--r--txt/pkgbuild-example2
3 files changed, 61 insertions, 14 deletions
diff --git a/slides.tex b/slides.tex
index e8ed401..1c6162c 100644
--- a/slides.tex
+++ b/slides.tex
@@ -9,11 +9,6 @@
\usepackage{color}
\usepackage{listings}
-%\usepackage[utf8]{inputenc}
-%\usepackage{graphicx}
-%\usepackage[font=tiny,skip=0pt]{caption}
-%\usepackage{array}
-%\usepackage{verbatim}
\graphicspath{{img/}}
@@ -33,7 +28,7 @@
\title[Android's build system is messier than your distro's]{Android's build system is messier than your distro's}
\author{Denis `GNUtoo' Carikli \and Ricardo `Grim' Cabrita}
-\institute[Replicant]{Replicant}
+\institute[]{Replicant}
\date{}
@@ -78,6 +73,7 @@
% The transition to Soong solved the performance issue of AOSP's builds but got
% short of taking it closer to the modularity and flexibility found in most
% GNU/Linux distributions.
+
\section{BuildSystemIntro}
\begin{frame}[fragile]
@@ -94,7 +90,7 @@
\begin{frame}[fragile]
\frametitle{The Build System}
- Barebones Android.mk file example
+ {\bf Android.mk} file example
\begin{block}{}
\lstinputlisting{txt/android-mk-example}
\end{block}
@@ -123,13 +119,21 @@
\begin{frame}[fragile]
\frametitle{The Build System}
- Barebones Android.bp file example
+ {\bf Android.bp} file example
\begin{block}{}
\lstinputlisting{txt/android-bp-example}
\end{block}
\end{frame}
\begin{frame}[fragile]
+ \frametitle{The Build System}
+ {\bf build.ninja} file example
+ \begin{block}{}
+ \lstinputlisting{txt/ninja-example}
+ \end{block}
+\end{frame}
+
+\begin{frame}[fragile]
\frametitle{Workflow}
\framesubtitle{Getting the source tree}
Initialize the repository
@@ -265,6 +269,7 @@ heimdall flash --SYSTEM system.img
% This contrasts with GNU/Linux distributions, which provide ways to build each
% project in its own native build system and then incorporate it into the distro
% image as an independent package.
+
\section{ComparisonToOtherDistros}
\begin{frame}[fragile]
\frametitle{Comparison to other distros}
@@ -286,7 +291,7 @@ heimdall flash --SYSTEM system.img
\begin{frame}[fragile]
\frametitle{Comparison to other distros}
\framesubtitle{Recipe maintenance}
- {\bf Android}: Projects are expected to keep their own Android.mk
+ {\bf Android}: Projects are expected to keep their own {\bf Android.mk}
\includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{mesa-androidmk}
\end{frame}
@@ -298,6 +303,8 @@ heimdall flash --SYSTEM system.img
\item Troublesome to modify build recipes
\item Disregard for the project's prefered build system
\item Changes to the recipe have to be made upstream least the distro wishes to maintain yet another fork
+ \item Recipe needs to account for multiple Android versions and distros
+ \item No clear license definition
\end{itemize}
\end{frame}
@@ -323,8 +330,10 @@ heimdall flash --SYSTEM system.img
\frametitle{Comparison to other distros}
\framesubtitle{Software delivery}
\begin{itemize}
- \item User has to download the entire system in order to update a single component
+ \item Only developers can update a single component
+ \item User has to download the entire system for every update
\item Updates are rarely delivered in a timely manner
+ \item Best case scenario is the OTA update
\end{itemize}
\end{frame}
@@ -347,7 +356,9 @@ heimdall flash --SYSTEM system.img
% similarly to GNU/Linux distributions. Adding and maintaining Blueprint support
% in all external software components can be incredibly time consuming and could
% even be unsustainable.
+
\section{Replicant}
+
\begin{frame}[fragile]
\frametitle{Replicant's stake}
\begin{columns}
@@ -356,13 +367,45 @@ heimdall flash --SYSTEM system.img
\end{column}
\begin{column}{0.7\textwidth}
Fully free Android distribution running on several devices\\\bigskip
- Now undergoing intense work to make it as sustainable as possible\\\bigskip
- Spending a lot of development time on the build system's quirks\\\bigskip
- Seeking to discuss on a sustainable way to deal with external software componentes
+ Undergoing intense work to make it as {\bf sustainable} as possible\\\bigskip
+ Spending a lot of {\bf development time} on the build system's quirks\\\bigskip
+ Seeking to discuss on a sustainable way to deal with {\bf external software components}
\end{column}
\end{columns}
\end{frame}
+\begin{frame}[fragile]
+ \frametitle{Replicant's stake}
+ Arguments for supporting {\bf Soong}
+ \begin{itemize}
+ \item It's fast
+ \item Supports multiple Android versions without convoluted conditional cases
+ \item Works well for Android components
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Replicant's stake}
+ Arguments for supporting a {\bf package system}
+ \begin{itemize}
+ \item More control on the side of the distro
+ \item Less forks to maintain
+ \item More sustainable
+ \end{itemize}
+\end{frame}
+
+
+% ## End
+
+\section{Ending}
+
+\begin{frame}[fragile]
+ \frametitle{}
+ \centerline{Thank you for listening}
+ \centerline{Come talk to us at the \href{https://36c3.c3nav.de/l/replicant/details/@0,260.22,385.89,-0.56}{\bf Replicant assembly} @ CDC}
+ \centerline{\url{https://replicant.us}}
+\end{frame}
+
\end{document}
diff --git a/txt/ninja-example b/txt/ninja-example
new file mode 100644
index 0000000..a8eab8a
--- /dev/null
+++ b/txt/ninja-example
@@ -0,0 +1,4 @@
+ description = Install: /home/grim/lineage16/out/target/product/i9305/data/nativetest/ltp/testcases/bin/getcwd04
+ command = /bin/bash -c "(rm -f /home/grim/lineage16/out/target/product/i9305/data/nativetest/ltp/testcases/bin/getcwd04 ) && (cp /home/grim/lineage16/out/target/product>
+build /home/grim/lineage16/out/target/product/i9305/data/nativetest/ltp/testcases/bin/getcwd04: rule60592 /home/grim/lineage16/out/target/product/i9305/obj/NATIVE_TESTS/>
+rule rule60593)"
diff --git a/txt/pkgbuild-example b/txt/pkgbuild-example
index 44a5857..b43ebbc 100644
--- a/txt/pkgbuild-example
+++ b/txt/pkgbuild-example
@@ -2,11 +2,11 @@ pkgbase=mesa
pkgname=('vulkan-mesa-layer' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
pkgdesc="An open-source implementation of the OpenGL specification"
pkgver=19.3.1
+license=('custom')
(...)
build() {
arch-meson mesa-$pkgver build \
- -D b_lto=false \
-D platforms=x11,wayland,drm,surfaceless \
-D dri-drivers=i915,i965,r100,r200,nouveau \
(...)