Skip to content

Commit

Permalink
yocto: slides: introduce optional dependencies before per-recipe sysroot
Browse files Browse the repository at this point in the history
The "Per-recipe sysroot" slides introduce the per-recipe sysroot but not
the main motivation it exists for, i.e. reproducible builds in presence of
automatic optional dependencies in configuration scripts.

To me this takes a significant time in a verbal explanation, which would be
more effective with a supporting slide.

Add a slide to describe optional dependences with an example found in the
oe-core recipes.

Closes: #253

Signed-off-by: Luca Ceresoli <[email protected]>
  • Loading branch information
lucaceresoli committed Oct 28, 2024
1 parent be857d2 commit c56392c
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions slides/yocto-recipe-extra/yocto-recipe-extra.tex
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,43 @@ \subsection{The per-recipe sysroot}
\end{itemize}
\end{frame}

\begin{frame}[fragile]{Optional dependencies}
\begin{itemize}
\item Most software have a configure script that checks for libraries:
\begin{itemize}
\item Fails if mandatory dependencies are not found
\item Fails if explicitly requested optional dependencies are not found
\item Enables more features is automatic dependencies are found
\end{itemize}
\item Problem with automatic dependencies: result can depend on build order. Example:
\begin{itemize}
\item \code{libpcap} built {\em before} \code{bluez5}
\begin{block}{}
\begin{minted}[fontsize=\scriptsize]{text}
libpcap$ ./configure
...
checking for bluetooth/bluetooth.h... no
configure: Bluetooth sniffing is not supported; install bluez-lib devel to enable it
\end{minted}
\end{block}
\item \code{libpcap} built {\em after} \code{bluez5}
\begin{block}{}
\begin{minted}[fontsize=\scriptsize]{text}
libpcap$ ./configure
...
checking for bluetooth/bluetooth.h... yes
configure: Bluetooth sniffing is supported
\end{minted}
\end{block}
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{Per-recipe sysroot}
\begin{itemize}
\item Instead of a global sysroot, \code{bitbake} implements a {\em
per-recipe sysroot}
\item Main goal: reproducible build even with automatic dependencies
\end{itemize}
\begin{center}
\includegraphics[width=1.00\textwidth]{slides/yocto-recipe-extra/per-recipe-sysroot.pdf}
Expand Down

0 comments on commit c56392c

Please sign in to comment.