[FE training-materials-updates] slides/buildroot-rootfs: update with Buildroot 2017.08
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Fri Oct 13 16:06:11 CEST 2017
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=81bd9825efffdd5fd1fda859ca3b7fa4a23afceb
>---------------------------------------------------------------
commit 81bd9825efffdd5fd1fda859ca3b7fa4a23afceb
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date: Fri Oct 13 15:58:16 2017 +0200
slides/buildroot-rootfs: update with Buildroot 2017.08
- Update details about the skeleton, since the skeleton package has
been split into several sub-packages.
- Add a new slide with a diagram explaining the different skeleton
related packages.
- Mention the "post fakeroot" script, but don't spend too much time
on this since it's a very advanced feature.
- Use support/scripts/genimage.sh instead of open code the call to
genimage in a post image script.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>---------------------------------------------------------------
81bd9825efffdd5fd1fda859ca3b7fa4a23afceb
slides/buildroot-rootfs/buildroot-rootfs.tex | 100 ++-
slides/buildroot-rootfs/skeleton.dia | 1081 ++++++++++++++++++++++++++
2 files changed, 1148 insertions(+), 33 deletions(-)
diff --git a/slides/buildroot-rootfs/buildroot-rootfs.tex b/slides/buildroot-rootfs/buildroot-rootfs.tex
index 8fd4723..4a1b41d 100644
--- a/slides/buildroot-rootfs/buildroot-rootfs.tex
+++ b/slides/buildroot-rootfs/buildroot-rootfs.tex
@@ -13,23 +13,51 @@
\item The base of a Linux root filesystem: Unix directory hierarchy,
a few configuration files and scripts in \code{/etc}. No programs
or libraries.
- \item First thing to get copied to \code{$(TARGET_DIR)} at the
- beginning of the build.
- \item By default (\code{BR2_ROOTFS_SKELETON_DEFAULT=y}), the one in
- \code{system/skeleton} is used.
+ \item All target packages depend on the
+ \code{skeleton} package, so it is essentially the first thing copied
+ to \code{$(TARGET_DIR)} at the beginning of the build.
+ \item \code{skeleton} is a virtual package that will depend on:
+ \begin{itemize}
+ \item \code{skeleton-init-{sysv,systemd,none}} depending on the
+ init system being selected
+ \item \code{skeleton-custom} when a custom skeleton is selected
+ \end{itemize}
+ \item All of \code{skeleton-init-{sysv,systemd,none}} depend on
+ \code{skeleton-init-common}
+ \begin{itemize}
+ \item Copies \code{system/skeleton/*} to \code{$(TARGET_DIR)}
+ \end{itemize}
+ \item \code{skeleton-init-{sysv,systemd}} install additional files
+ specific to those {\em init systems}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Custom root filesystem skeleton}
+ \begin{itemize}
\item A custom {\em skeleton} can be used, through the
\code{BR2_ROOTFS_SKELETON_CUSTOM} and
\code{BR2_ROOTFS_SKELETON_CUSTOM_PATH} options.
+ \item In this case: \code{skeleton} depends on
+ \code{skeleton-custom}
+ \item Completely replaces \code{skeleton-init-*}, so the custom
+ skeleton must provide everything.
+ \item Not recommended though:
\begin{itemize}
- \item Not recommended though: the {\em skeleton} is only copied
- once at the beginning of the build, and the base is usually good
- for most projects.
- \item Use {\em rootfs overlays} or {\em post-build scripts} for
- customization.
+ \item the base is usually good for most projects.
+ \item skeleton only copied at the beginning of the build, so a
+ skeleton change needs a full rebuild
\end{itemize}
+ \item Use {\em rootfs overlays} or {\em post-build scripts} for
+ root filesystem customization (covered later)
\end{itemize}
\end{frame}
+\begin{frame}{Skeleton packages dependencies}
+ \begin{center}
+ \includegraphics[width=\textwidth]{slides/buildroot-rootfs/skeleton.pdf}
+ \end{center}
+\end{frame}
+
\begin{frame}{Installation of packages}
\begin{itemize}
\item All the selected target packages will be built (can be
@@ -168,6 +196,8 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/myproject/post-build.sh"
\begin{itemize}
\item Allows to fake being root so that permissions and ownership
can be modified, device files can be created, etc.
+ \item Advanced: possibility of running a custom script inside {\em
+ fakeroot}, see \code{BR2_ROOTFS_POST_FAKEROOT_SCRIPT}.
\end{itemize}
\end{itemize}
\end{frame}
@@ -328,6 +358,8 @@ test 8000 wheel -1 = - /bin/sh - Test u
setups, use an {\em overlay})
\item {\bf root password}
\item {\bf timezone} installation and selection
+ \item {\bf locale} files installation and filtering (to install
+ translations only for a subset of languages, or none at all)
\end{itemize}
\end{itemize}
\end{frame}
@@ -367,40 +399,45 @@ test 8000 wheel -1 = - /bin/sh - Test u
the root filesystem.
\item Also allows to place the bootloader at a fixed offset in the
image if required.
- \item Can be called in a {\em post-image} script.
+ \item The helper script \code{support/scripts/genimage.sh} can be
+ used as a {\em post-image} script to call {\em genimage}
\item More and more widely used in Buildroot default configurations
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Deploying the images: genimage example}
-\begin{columns}
- \column{0.5\textwidth}
\begin{block}{genimage-raspberrypi.cfg}
+\begin{columns}
+ \column{0.4\textwidth}
{\tiny
\begin{verbatim}
image boot.vfat {
vfat {
files = {
"bcm2708-rpi-b.dtb",
- "bcm2708-rpi-b-plus.dtb",
- "bcm2708-rpi-cm.dtb",
"rpi-firmware/bootcode.bin",
"rpi-firmware/cmdline.txt",
- [...]
"kernel-marked/zImage"
+ [...]
}
}
size = 32M
}
-
+\end{verbatim}
+}
+\column{0.4\textwidth}
+{\tiny
+\begin{verbatim}
image sdcard.img {
hdimage {
}
+
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
+
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
@@ -408,29 +445,26 @@ image sdcard.img {
}
\end{verbatim}
}
+\end{columns}
\end{block}
- \column{0.5\textwidth}
-\begin{block}{post-image script}
+
+\begin{block}{defconfig}
{\tiny
\begin{verbatim}
-#!/bin/sh
-
-BOARD_DIR="$(dirname $0)"
-GENIMAGE_CFG="${BOARD_DIR}/genimage-raspberrypi.cfg"
-GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
-
-rm -rf "${GENIMAGE_TMP}"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/raspberrypi/genimage-raspberrypi.cfg"
+\end{verbatim}
+}
+\end{block}
-genimage \
- --rootpath "${TARGET_DIR}" \
- --tmppath "${GENIMAGE_TMP}" \
- --inputpath "${BINARIES_DIR}" \
- --outputpath "${BINARIES_DIR}" \
- --config "${GENIMAGE_CFG}"
- \end{verbatim}
+\begin{block}{flash}
+{\tiny
+ \begin{verbatim}
+dd if=output/images/sdcard.img of=/dev/sdb
+\end{verbatim}
}
\end{block}
-\end{columns}
+
\end{frame}
\begin{frame}{Deploying the image: NFS booting}
diff --git a/slides/buildroot-rootfs/skeleton.dia b/slides/buildroot-rootfs/skeleton.dia
new file mode 100644
index 0000000..e6c614b
--- /dev/null
+++ b/slides/buildroot-rootfs/skeleton.dia
@@ -0,0 +1,1081 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+ <dia:diagramdata>
+ <dia:attribute name="background">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="pagebreak">
+ <dia:color val="#000099"/>
+ </dia:attribute>
+ <dia:attribute name="paper">
+ <dia:composite type="paper">
+ <dia:attribute name="name">
+ <dia:string>#Letter#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="tmargin">
+ <dia:real val="2.5399999618530273"/>
+ </dia:attribute>
+ <dia:attribute name="bmargin">
+ <dia:real val="2.5399999618530273"/>
+ </dia:attribute>
+ <dia:attribute name="lmargin">
+ <dia:real val="2.5399999618530273"/>
+ </dia:attribute>
+ <dia:attribute name="rmargin">
+ <dia:real val="2.5399999618530273"/>
+ </dia:attribute>
+ <dia:attribute name="is_portrait">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="scaling">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="fitto">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="grid">
+ <dia:composite type="grid">
+ <dia:attribute name="width_x">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="width_y">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_x">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_y">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:composite type="color"/>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#d8e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="guides">
+ <dia:composite type="guides">
+ <dia:attribute name="hguides"/>
+ <dia:attribute name="vguides"/>
+ </dia:composite>
+ </dia:attribute>
+ </dia:diagramdata>
+ <dia:layer name="Background" visible="true" active="true">
+ <dia:object type="Standard - Box" version="0" id="O0">
+ <dia:attribute name="obj_pos">
+ <dia:point val="75.5,33"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="75.5,33;88.5,46"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="75.5,33"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="13"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="13"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="1.1754943508222875e-38"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#e5e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#e5e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O1">
+ <dia:attribute name="obj_pos">
+ <dia:point val="38.5,33"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="38.5,33;75,46"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="38.5,33"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="36.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="13"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="1.1754943508222875e-38"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#e5e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#e5e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O2">
+ <dia:attribute name="obj_pos">
+ <dia:point val="59,23"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="58.95,22.95;70.05,26.05"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="59,23"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#d9cb2f"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#fff8a8"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O3">
+ <dia:attribute name="obj_pos">
+ <dia:point val="59,28"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="58.95,27.95;70.05,31.05"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="59,28"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#5cacff"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#add8e6"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O4">
+ <dia:attribute name="obj_pos">
+ <dia:point val="39,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="38.95,35.45;50.05,38.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="39,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#6a8954"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#c5e387"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O5">
+ <dia:attribute name="obj_pos">
+ <dia:point val="51,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="50.95,35.45;62.05,38.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="51,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#6a8954"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#c5e387"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O6">
+ <dia:attribute name="obj_pos">
+ <dia:point val="63,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="62.95,35.45;74.05,38.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="63,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#6a8954"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#c5e387"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O7">
+ <dia:attribute name="obj_pos">
+ <dia:point val="76.5,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="76.45,35.45;87.55,38.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="76.5,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#6a8954"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#c5e387"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O8">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,24.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="60.1425,23.975;68.8575,25.025"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#All target packages#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="64.5,24.8125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O2" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O9">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,29.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="61.01,28.4106;67.99,30.5894"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton
+virtual package#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="64.5,29.2481"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O3" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Line" version="0" id="O10">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,26"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="64.1382,25.95;64.8618,28.1118"/>
+ </dia:attribute>
+ <dia:attribute name="conn_endpoints">
+ <dia:point val="64.5,26"/>
+ <dia:point val="64.5,28"/>
+ </dia:attribute>
+ <dia:attribute name="numcp">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O2" connection="6"/>
+ <dia:connection handle="1" to="O3" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O11">
+ <dia:attribute name="obj_pos">
+ <dia:point val="44.5,37"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="40.5562,36.475;48.4438,37.525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton-init-sysv#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="44.5,37.3125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O4" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O12">
+ <dia:attribute name="obj_pos">
+ <dia:point val="56.5,37"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="51.6425,36.475;61.3575,37.525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton-init-systemd#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="56.5,37.3125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O5" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O13">
+ <dia:attribute name="obj_pos">
+ <dia:point val="68.5,37"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="64.435,36.475;72.565,37.525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton-init-none#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="68.5,37.3125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O6" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O14">
+ <dia:attribute name="obj_pos">
+ <dia:point val="82,37"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="78.275,36.475;85.725,37.525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton-custom#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="82,37.3125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O7" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Box" version="0" id="O15">
+ <dia:attribute name="obj_pos">
+ <dia:point val="51,42.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="50.95,42.45;62.05,45.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="51,42.5"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="11"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3"/>
+ </dia:attribute>
+ <dia:attribute name="border_width">
+ <dia:real val="0.10000000149011612"/>
+ </dia:attribute>
+ <dia:attribute name="border_color">
+ <dia:color val="#6a8954"/>
+ </dia:attribute>
+ <dia:attribute name="inner_color">
+ <dia:color val="#c5e387"/>
+ </dia:attribute>
+ <dia:attribute name="show_background">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O16">
+ <dia:attribute name="obj_pos">
+ <dia:point val="56.5,44"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="51.8987,43.475;61.1013,44.525"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#skeleton-init-custom#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="1.1288888454437256"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="56.5,44.3125"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O15" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Line" version="0" id="O17">
+ <dia:attribute name="obj_pos">
+ <dia:point val="56.5,38.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="56.1382,38.45;56.8618,42.6118"/>
+ </dia:attribute>
+ <dia:attribute name="conn_endpoints">
+ <dia:point val="56.5,38.5"/>
+ <dia:point val="56.5,42.5"/>
+ </dia:attribute>
+ <dia:attribute name="numcp">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O5" connection="6"/>
+ <dia:connection handle="1" to="O15" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O18">
+ <dia:attribute name="obj_pos">
+ <dia:point val="44.5,38.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="44.45,38.45;51.1118,44.3618"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="44.5,38.5"/>
+ <dia:point val="44.5,44"/>
+ <dia:point val="51,44"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O4" connection="6"/>
+ <dia:connection handle="1" to="O15" connection="3"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O19">
+ <dia:attribute name="obj_pos">
+ <dia:point val="68.5,38.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="61.8882,38.45;68.55,44.3618"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="68.5,38.5"/>
+ <dia:point val="68.5,44"/>
+ <dia:point val="62,44"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O6" connection="6"/>
+ <dia:connection handle="1" to="O15" connection="4"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O20">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,31.0502"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="44.1382,31.0002;64.55,35.6118"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="64.5,31.0502"/>
+ <dia:point val="64.5,32.5"/>
+ <dia:point val="44.5,32.5"/>
+ <dia:point val="44.5,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O3" connection="8"/>
+ <dia:connection handle="1" to="O4" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O21">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,31"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="64.45,30.95;68.8618,35.5622"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="64.5,31"/>
+ <dia:point val="64.5,32.5"/>
+ <dia:point val="68.5,32.5"/>
+ <dia:point val="68.5,35.4504"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O3" connection="6"/>
+ <dia:connection handle="1" to="O6" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O22">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,31"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="56.1382,30.95;64.55,35.6118"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="64.5,31"/>
+ <dia:point val="64.5,32.5"/>
+ <dia:point val="56.5,32.5"/>
+ <dia:point val="56.5,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O3" connection="6"/>
+ <dia:connection handle="1" to="O5" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - ZigZagLine" version="1" id="O23">
+ <dia:attribute name="obj_pos">
+ <dia:point val="64.5,31"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="64.45,30.95;82.3618,35.6118"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="64.5,31"/>
+ <dia:point val="64.5,32.5"/>
+ <dia:point val="82,32.5"/>
+ <dia:point val="82,35.5"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="autorouting">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow">
+ <dia:enum val="22"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_length">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="end_arrow_width">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O3" connection="6"/>
+ <dia:connection handle="1" to="O7" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O24">
+ <dia:attribute name="obj_pos">
+ <dia:point val="56.75,39.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="56.75,38.905;56.75,39.65"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="56.75,39.5"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O1" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O25">
+ <dia:attribute name="obj_pos">
+ <dia:point val="38.5,47"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="38.5,46.405;49.665,47.15"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#BR2_ROOTFS_SKELETON_DEFAULT=y#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="38.5,47"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O26">
+ <dia:attribute name="obj_pos">
+ <dia:point val="75.5,47"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="75.5,46.405;86.28,47.15"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#BR2_ROOTFS_SKELETON_CUSTOM=y#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="75.5,47"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O27">
+ <dia:attribute name="obj_pos">
+ <dia:point val="45,34"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="45,33.405;51.93,34.95"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#BR2_INIT_SYSV=y
+BR2_INIT_BUSYBOX=y#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="45,34"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O28">
+ <dia:attribute name="obj_pos">
+ <dia:point val="57,34.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="57,33.905;63.93,34.65"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#BR2_INIT_SYSTEMD=y#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="57,34.5"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O29">
+ <dia:attribute name="obj_pos">
+ <dia:point val="69,34.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="69,33.905;74.775,34.65"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>#BR2_INIT_NONE=y#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="69,34.5"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Standard - Text" version="1" id="O30">
+ <dia:attribute name="obj_pos">
+ <dia:point val="56.5,44"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="56.5,43.405;56.5,44.15"/>
+ </dia:attribute>
+ <dia:attribute name="text">
+ <dia:composite type="text">
+ <dia:attribute name="string">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="pos">
+ <dia:point val="56.5,44"/>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="alignment">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="valign">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O15" connection="8"/>
+ </dia:connections>
+ </dia:object>
+ </dia:layer>
+</dia:diagram>
More information about the training-materials-updates
mailing list