[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