[bootlin/training-materials updates] master: yocto: slides: rework "Application development workflows" section (df722e09)
Luca Ceresoli
luca.ceresoli at bootlin.com
Tue Jun 6 23:45:00 CEST 2023
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/df722e09a5d9de1ab9a22f528eaa666f04a2f356
>---------------------------------------------------------------
commit df722e09a5d9de1ab9a22f528eaa666f04a2f356
Author: Luca Ceresoli <luca.ceresoli at bootlin.com>
Date: Tue Jun 6 23:41:20 2023 +0200
yocto: slides: rework "Application development workflows" section
Remove the "Application development workflows" and move its content:
* Leave the SDK subsection in the yocto-sdk.tex file but make it an "SDK"
section on its onw
* Move the Devtool subsection to a new Devtool section
* Move the Quilt sybsection to a new "Extra slides" Appendix
* Remove the "Recommended workflows" slide which has no place to be
anymore
Update the English agendas accordingly.
Closes: https://github.com/bootlin/training-materials/issues/203
Proposed-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli at bootlin.com>
>---------------------------------------------------------------
df722e09a5d9de1ab9a22f528eaa666f04a2f356
agenda/yocto-agenda.tex | 17 +++-
agenda/yocto-online-agenda.tex | 17 +++-
mk/yocto-stm32.mk | 4 +-
mk/yocto.mk | 4 +-
slides/yocto-devtool/yocto-devtool.tex | 73 +++++++++++++
slides/yocto-extra-slides/yocto-extra-slides.tex | 31 ++++++
slides/yocto-sdk/yocto-sdk.tex | 124 +----------------------
7 files changed, 137 insertions(+), 133 deletions(-)
diff --git a/agenda/yocto-agenda.tex b/agenda/yocto-agenda.tex
index 003fa2e5..6d3105f0 100644
--- a/agenda/yocto-agenda.tex
+++ b/agenda/yocto-agenda.tex
@@ -274,12 +274,12 @@
}
\feagendatwocolumn
-{Lecture - Application development workflows}
+{Lecture - The Yocto Project SDK}
{
\begin{itemize}
- \item The Yocto Project SDK
- \item Devtool
- \item Quilt
+ \item Goals of the SDK
+ \item Building and customizing an SDK
+ \item Using the Yocto Project SDK
\end{itemize}
}
{Lab 8 - Develop your application in the Poky SDK}
@@ -290,6 +290,15 @@
\end{itemize}
}
+\feagendaonecolumn
+{Lecture - Devtool}
+{
+ \begin{itemize}
+ \item About devtool
+ \item Devtool use cases
+ \end{itemize}
+}
+
\feagendatwocolumn
{Lecture - Automating layer management}
{
diff --git a/agenda/yocto-online-agenda.tex b/agenda/yocto-online-agenda.tex
index 64ce4a20..a1527497 100644
--- a/agenda/yocto-online-agenda.tex
+++ b/agenda/yocto-online-agenda.tex
@@ -273,12 +273,12 @@
}
\feagendatwocolumn
-{Lecture - Application development workflows}
+{Lecture - The Yocto Project SDK}
{
\begin{itemize}
- \item The Yocto Project SDK
- \item Devtool
- \item Quilt
+ \item Goals of the SDK
+ \item Building and customizing an SDK
+ \item Using the Yocto Project SDK
\end{itemize}
}
{Demo 8 - Develop your application in the Poky SDK}
@@ -289,6 +289,15 @@
\end{itemize}
}
+\feagendaonecolumn
+{Lecture - Devtool}
+{
+ \begin{itemize}
+ \item About devtool
+ \item Devtool use cases
+ \end{itemize}
+}
+
\feagendatwocolumn
{Lecture - Automating layer management}
{
diff --git a/mk/yocto-stm32.mk b/mk/yocto-stm32.mk
index 27e3a19c..fd54304d 100644
--- a/mk/yocto-stm32.mk
+++ b/mk/yocto-stm32.mk
@@ -27,10 +27,12 @@ YOCTO_STM32_SLIDES = \
yocto-licensing \
yocto-sdk \
yocto-sdk-lab \
+ yocto-devtool \
yocto-layer-management \
yocto-runtime-package-management \
yocto-resources \
- last-slides
+ last-slides \
+ yocto-extra-slides
YOCTO_STM32_LABS = setup \
yocto-first-build-stm32 \
diff --git a/mk/yocto.mk b/mk/yocto.mk
index 16eb1736..a3614b17 100644
--- a/mk/yocto.mk
+++ b/mk/yocto.mk
@@ -27,10 +27,12 @@ YOCTO_SLIDES = \
yocto-licensing \
yocto-sdk \
yocto-sdk-lab \
+ yocto-devtool \
yocto-layer-management \
yocto-runtime-package-management \
yocto-resources \
- last-slides
+ last-slides \
+ yocto-extra-slides
YOCTO_LABS = setup \
yocto-first-build \
diff --git a/slides/yocto-devtool/yocto-devtool.tex b/slides/yocto-devtool/yocto-devtool.tex
new file mode 100644
index 00000000..fe58bc91
--- /dev/null
+++ b/slides/yocto-devtool/yocto-devtool.tex
@@ -0,0 +1,73 @@
+\section{Devtool}
+
+\begin{frame}
+ \frametitle{Overview}
+ \begin{itemize}
+ \item \code{Devtool} is a set of utilities to ease the integration
+ and the development of OpenEmbedded recipes.
+ \item It can be used to:
+ \begin{itemize}
+ \item Generate a recipe for a given upstream application.
+ \item Modify an existing recipe and its associated sources.
+ \item Upgrade an existing recipe to use a newer upstream
+ application.
+ \end{itemize}
+ \item \code{Devtool} adds a new layer, automatically managed, in
+ \code{$BUILDDIR/workspace/}.
+ \item It then adds or appends recipes to this layer so that the
+ recipes point to a local path for their sources. In
+ \code{$BUILDDIR/workspace/sources/}.
+ \begin{itemize}
+ \item Local sources are managed by \code{git}.
+ \item All modifications made locally should be commited.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{\code{devtool} usage 1/3}
+ There are three ways of creating a new \code{devtool} project:
+ \begin{itemize}
+ \item To create a new recipe:
+ \code{devtool add <recipe> <fetchuri>}
+ \begin{itemize}
+ \item Where \code{recipe} is the recipe's name.
+ \item \code{fetchuri} can be a local path or a remote {\em
+ uri}.
+ \end{itemize}
+ \item To modify the source for an existing recipe: \code{devtool modify <recipe>}
+ \item To upgrade a given recipe:
+ \code{devtool upgrade -V <version> <recipe>}
+ \begin{itemize}
+ \item Where \code{version} is the new version of the upstream
+ application.
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{\code{devtool} usage 2/3}
+ Once a \code{devtool} project is started, commands can be issued:
+ \begin{itemize}
+ \item \code{devtool edit-recipe <recipe>}: edit \code{recipe} in a text
+ editor (as defined by the \code{EDITOR} environment variable).
+ \item \code{devtool build <recipe>}: build the given
+ \code{recipe}.
+ \item \code{devtool build-image <image>}: build \code{image} with
+ the additional \code{devtool} recipes' packages.
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{\code{devtool} usage 3/3}
+ \begin{itemize}
+ \item \code{devtool deploy-target <recipe> <target>}: upload the
+ \code{recipe}'s packages on \code{target}, which is a live
+ running target with an SSH server running (\code{user at address}).
+ \item \code{devtool update-recipe <recipe>}: generate patches from
+ git commits made locally.
+ \item \code{devtool reset <recipe>}: remove \code{recipe} from the
+ control of \code{devtool}. Standard layers and remote sources
+ are used again as usual.
+ \end{itemize}
+\end{frame}
diff --git a/slides/yocto-extra-slides/yocto-extra-slides.tex b/slides/yocto-extra-slides/yocto-extra-slides.tex
new file mode 100644
index 00000000..7808f3e3
--- /dev/null
+++ b/slides/yocto-extra-slides/yocto-extra-slides.tex
@@ -0,0 +1,31 @@
+\section{Extra slides}
+
+\subsection{Quilt}
+
+\begin{frame}
+ \frametitle{Overview}
+ \begin{itemize}
+ \item Quilt is a utility to manage patches which can be used
+ without having a clean source tree.
+ \item It can be used to create patches for recipes already
+ available in the build system.
+ \item Be careful when using this workflow: the modifications won't
+ persist across builds!
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Using Quilt}
+ \begin{enumerate}
+ \item Find the recipe working directory in
+ \code{$BUILDDIR/tmp/work/}.
+ \item Create a new \code{Quilt} patch:
+ \code{$ quilt new topic.patch}
+ \item Add files to this patch: \code{$ quilt add file0.c file1.c}
+ \item Make the modifications by editing the files.
+ \item Test the modifications:
+ \code{$ bitbake -c compile -f recipe}
+ \item Generate the patch file: \code{$ quilt refresh}
+ \item Move the generated patch into the recipe's directory.
+ \end{enumerate}
+\end{frame}
diff --git a/slides/yocto-sdk/yocto-sdk.tex b/slides/yocto-sdk/yocto-sdk.tex
index 22a04afe..bf1636b4 100644
--- a/slides/yocto-sdk/yocto-sdk.tex
+++ b/slides/yocto-sdk/yocto-sdk.tex
@@ -1,22 +1,4 @@
-\section{Application development workflow}
-
-\begin{frame}
- \frametitle{Recommended workflows}
- \begin{itemize}
- \item Different development workflows are possible given the
- needs:
- \begin{itemize}
- \item Low-level application development (bootloader, kernel).
- \item Application development.
- \item Temporary modifications on an external project (bug
- fixes, security fixes).
- \end{itemize}
- \item Three workflows exists for theses needs: the \code{SDK},
- \code{devtool} and \code{quilt}.
- \end{itemize}
-\end{frame}
-
-\subsection{The Yocto Project SDK}
+\section{The Yocto Project SDK}
\begin{frame}
\frametitle{Overview}
@@ -259,107 +241,3 @@ $ make
\end{itemize}
\end{itemize}
\end{frame}
-
-\subsection{Devtool}
-
-\begin{frame}
- \frametitle{Overview}
- \begin{itemize}
- \item \code{Devtool} is a set of utilities to ease the integration
- and the development of OpenEmbedded recipes.
- \item It can be used to:
- \begin{itemize}
- \item Generate a recipe for a given upstream application.
- \item Modify an existing recipe and its associated sources.
- \item Upgrade an existing recipe to use a newer upstream
- application.
- \end{itemize}
- \item \code{Devtool} adds a new layer, automatically managed, in
- \code{$BUILDDIR/workspace/}.
- \item It then adds or appends recipes to this layer so that the
- recipes point to a local path for their sources. In
- \code{$BUILDDIR/workspace/sources/}.
- \begin{itemize}
- \item Local sources are managed by \code{git}.
- \item All modifications made locally should be commited.
- \end{itemize}
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{\code{devtool} usage 1/3}
- There are three ways of creating a new \code{devtool} project:
- \begin{itemize}
- \item To create a new recipe:
- \code{devtool add <recipe> <fetchuri>}
- \begin{itemize}
- \item Where \code{recipe} is the recipe's name.
- \item \code{fetchuri} can be a local path or a remote {\em
- uri}.
- \end{itemize}
- \item To modify the source for an existing recipe: \code{devtool modify <recipe>}
- \item To upgrade a given recipe:
- \code{devtool upgrade -V <version> <recipe>}
- \begin{itemize}
- \item Where \code{version} is the new version of the upstream
- application.
- \end{itemize}
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{\code{devtool} usage 2/3}
- Once a \code{devtool} project is started, commands can be issued:
- \begin{itemize}
- \item \code{devtool edit-recipe <recipe>}: edit \code{recipe} in a text
- editor (as defined by the \code{EDITOR} environment variable).
- \item \code{devtool build <recipe>}: build the given
- \code{recipe}.
- \item \code{devtool build-image <image>}: build \code{image} with
- the additional \code{devtool} recipes' packages.
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{\code{devtool} usage 3/3}
- \begin{itemize}
- \item \code{devtool deploy-target <recipe> <target>}: upload the
- \code{recipe}'s packages on \code{target}, which is a live
- running target with an SSH server running (\code{user at address}).
- \item \code{devtool update-recipe <recipe>}: generate patches from
- git commits made locally.
- \item \code{devtool reset <recipe>}: remove \code{recipe} from the
- control of \code{devtool}. Standard layers and remote sources
- are used again as usual.
- \end{itemize}
-\end{frame}
-
-\subsection{Quilt}
-
-\begin{frame}
- \frametitle{Overview}
- \begin{itemize}
- \item Quilt is a utility to manage patches which can be used
- without having a clean source tree.
- \item It can be used to create patches for recipes already
- available in the build system.
- \item Be careful when using this workflow: the modifications won't
- persist across builds!
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{Using Quilt}
- \begin{enumerate}
- \item Find the recipe working directory in
- \code{$BUILDDIR/tmp/work/}.
- \item Create a new \code{Quilt} patch:
- \code{$ quilt new topic.patch}
- \item Add files to this patch: \code{$ quilt add file0.c file1.c}
- \item Make the modifications by editing the files.
- \item Test the modifications:
- \code{$ bitbake -c compile -f recipe}
- \item Generate the patch file: \code{$ quilt refresh}
- \item Move the generated patch into the recipe's directory.
- \end{enumerate}
-\end{frame}
More information about the training-materials-updates
mailing list