* [PATCH 0/4] Update default config and docs
@ 2017-09-15 10:51 Henning Schild
2017-09-15 10:51 ` [PATCH 1/4] meta-isar: add 'example-raw' to example config Henning Schild
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Henning Schild @ 2017-09-15 10:51 UTC (permalink / raw)
To: isar-users; +Cc: Alexander Smirnov, Henning Schild
After the introduction of dpkg-raw this series updates the documentation and
the default config, as requested during the reviews.
Henning Schild (4):
meta-isar: add 'example-raw' to example config
doc: add 'binfmt-support' to list of required build host packages
doc: update user-manual.md
doc: Update technical overview
doc/technical_overview.md | 44 ++++++++++++++++++++++-----------
doc/user_manual.md | 53 +++++++++++++++++++++++++++++++++-------
meta-isar/conf/local.conf.sample | 2 +-
3 files changed, 75 insertions(+), 24 deletions(-)
--
2.13.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] meta-isar: add 'example-raw' to example config
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
@ 2017-09-15 10:51 ` Henning Schild
2017-09-15 10:51 ` [PATCH 2/4] doc: add 'binfmt-support' to list of required build host packages Henning Schild
` (3 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Henning Schild @ 2017-09-15 10:51 UTC (permalink / raw)
To: isar-users; +Cc: Alexander Smirnov, Henning Schild
The example config is used by CI, where we want to cover all features.
Adding the example will cause CI to test dpkg-raw as well.
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
meta-isar/conf/local.conf.sample | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index f141c22..a456b1b 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -153,7 +153,7 @@ CONF_VERSION = "1"
#
# The default list of extra packages to be installed.
-IMAGE_INSTALL = "hello"
+IMAGE_INSTALL = "hello example-raw"
#
# Default parallel jobs for bitbake:
--
2.13.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] doc: add 'binfmt-support' to list of required build host packages
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
2017-09-15 10:51 ` [PATCH 1/4] meta-isar: add 'example-raw' to example config Henning Schild
@ 2017-09-15 10:51 ` Henning Schild
2017-09-15 10:51 ` [PATCH 3/4] doc: update user-manual.md Henning Schild
` (2 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Henning Schild @ 2017-09-15 10:51 UTC (permalink / raw)
To: isar-users; +Cc: Alexander Smirnov, Henning Schild
binfmt-support is used to automatically execute foreign architecture
binaries in qemu-user-static. The debian package qemu-user-static just
suggests installing it, but does not depend on it. Isar however depends
on it.
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
doc/user_manual.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/user_manual.md b/doc/user_manual.md
index 8cba9a7..4707a68 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -62,6 +62,7 @@ parted
python3 # wic
qemu
qemu-user-static
+binfmt-support
sudo
```
--
2.13.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/4] doc: update user-manual.md
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
2017-09-15 10:51 ` [PATCH 1/4] meta-isar: add 'example-raw' to example config Henning Schild
2017-09-15 10:51 ` [PATCH 2/4] doc: add 'binfmt-support' to list of required build host packages Henning Schild
@ 2017-09-15 10:51 ` Henning Schild
2017-09-18 8:33 ` Alexander Smirnov
2017-09-15 10:51 ` [PATCH 4/4] doc: Update technical overview Henning Schild
2017-09-19 15:14 ` [PATCH 0/4] Update default config and docs Alexander Smirnov
4 siblings, 1 reply; 14+ messages in thread
From: Henning Schild @ 2017-09-15 10:51 UTC (permalink / raw)
To: isar-users; +Cc: Alexander Smirnov, Henning Schild
The introduction of 'dpkg-raw.bbclass' changed the way people can
customize their images. Cover the new way in the manual. Along the way
also fix a few mistakes and slightly change structure.
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
doc/user_manual.md | 52 +++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 43 insertions(+), 9 deletions(-)
diff --git a/doc/user_manual.md b/doc/user_manual.md
index 4707a68..e2837c4 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -254,9 +254,9 @@ Isar workflow consists of stages described below.
This filesystem is used as a build environment to compile custom packages. It is generated using `apt` binaries repository, selected by the user in configuration file. Please refer to distro configuration chapter for more information.
-### Custom Package Compilation
+### Custom Package Generation
-During this stage Isar processes custom packages selected by the user and generates binary `*.deb` packages for the target. Please refer to custom packages compilation section for more information.
+During this stage Isar processes custom packages selected by the user and generates binary `*.deb` packages for the target. Please refer to custom packages generation section for more information.
### Generation of Basic Target Filesystem
@@ -336,14 +336,14 @@ DISTRO = "distro-name"
---
-## Custom Package Compilation
+## Custom Package Generation
-Isar provides possibility to compile and install custom packages. The current version supports only building `deb` packages using `dpkg-buildpackage`, so the sources should contain the `debian` directory with necessary meta information. To add new package to image, it needs the following:
+To add new package to an image, do the following:
- - Create package recipe and put it in your `isar` layer.
+ - Create a package recipe and put it in your `isar` layer.
- Append `IMAGE_INSTALL` variable by this recipe name. If this package should be included for all the machines, put `IMAGE_INSTALL` to `local.conf` file. If you want to include this package for specific machine, put it to your machine configuration file.
-Please refer to `add custom application` section for more information about writing recipes.
+Please refer to `Add a Custom Application` section for more information about writing recipes.
---
@@ -484,12 +484,18 @@ Isar contains two image type classes that can be used as reference:
## Add a Custom Application
-Before creating new recipe it's highly recommended to take a look into the BitBake user manual mentioned in Terms and Definitions section.
+Before creating a new recipe it's highly recommended to take a look into the BitBake user manual mentioned in Terms and Definitions section.
-Current Isar version supports building packages in Debian format only. The package must contain the `debian` directory with the necessary metadata.
+Isar currently supports two ways of creating custom packages.
-A typical Isar recipe looks like this:
+### Compilation of debianized-sources
+The `deb` packages are built using `dpkg-buildpackage`, so the sources should contain the `debian` directory with necessary meta information. This way is the default way of adding software that needs to be compiled from source. The bbclass for this approach is called `dpkg`.
+
+**NOTE:** If the sources do not contain a `debian` directory your recipe can fetch, create, or ship that.
+
+
+#### Example
```
DESCRIPTION = "Sample application for ISAR"
@@ -523,3 +529,31 @@ This approach prevents duplication of the license files in different packages.
- `SRC_REV` - Source code revision to fetch. Please check the BitBake user manual for supported download formats.
The last line in the example above adds recipe to the Isar work chain.
+
+### Packages without source
+
+If your customization is not about compiling from source there is a second way of creating `deb` packages. That way can be used for cases like:
+
+ - packaging binaries/files that where built outside of Isar
+ - customization of the rootfs with package-hooks
+ - pulling in dependancies (meta-packages)
+
+The bbclass for this approach is called `dpkg-raw`.
+
+#### Example
+```
+DESCRIPTION = "Sample application for ISAR"
+MAINTAINER = "Your name here <you@domain.com>"
+DEBIAN_DEPENDS = "apt"
+
+inherit dpkg-raw
+
+do_populate_package() {
+....
+}
+```
+For the variables please have a look at the previous example, the following new variables are used in this recipe:
+ - `MAINTAINER` - The maintainer of the `deb` package we create
+ - `DEBIAN_DEPENDS` - Debian packages that the package depends on
+
+Have a look at the `example-raw` recipe to get an idea how the `dpkg-raw` class can be used to customize your image.
--
2.13.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/4] doc: Update technical overview
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
` (2 preceding siblings ...)
2017-09-15 10:51 ` [PATCH 3/4] doc: update user-manual.md Henning Schild
@ 2017-09-15 10:51 ` Henning Schild
2017-09-18 8:39 ` Alexander Smirnov
2017-09-19 15:14 ` [PATCH 0/4] Update default config and docs Alexander Smirnov
4 siblings, 1 reply; 14+ messages in thread
From: Henning Schild @ 2017-09-15 10:51 UTC (permalink / raw)
To: isar-users; +Cc: Alexander Smirnov, Henning Schild
The introduction of 'dpkg-raw' opens new ways to create custom packages.
Cover that in the overview.
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
doc/technical_overview.md | 44 ++++++++++++++++++++++++++++++--------------
1 file changed, 30 insertions(+), 14 deletions(-)
diff --git a/doc/technical_overview.md b/doc/technical_overview.md
index e83cbd0..f8ed9ee 100644
--- a/doc/technical_overview.md
+++ b/doc/technical_overview.md
@@ -24,7 +24,7 @@ executing process. Recipes in Isar can be split in two categories:
infrastructure, manages Debian tools execution for package building and
installation, generation root file system images
- - User recipes: custom user applications, that should be builе from sources
+ - User recipes: custom user applications, that can be built from sources
There are two types of dependencies in Isar:
@@ -155,26 +155,42 @@ here: `meta-isar/recipes-core/images/files`, and it implements `do_build` task.
## 3.4 Building Custom Packages
-Isar provides possibility to build Debian packages from sources. This features
-works with Debian-like source packages, i.e. the source code tree should
-contain debian folder. The build process is implemented in
-`meta/classes/dpkg.bbclass` and consists from the following steps:
+Isar provides the possibility to build Debian packages from sources. This
+features works with Debian-like source packages, i.e. the source code tree
+should contain debian folder. This build process is implemented in
+`meta/classes/dpkg.bbclass`.
-1. Task `do_fetch`: fetch source code from external link
+Another way of creating Debian packages is implemented in
+`meta/classes/dpkg-raw.bbclass`. This class can be used for customizations that
+are not based on source code that should become a package.
-2. Task `do_unpack`: unpack source code to `${WORKDIR}`
+Both consist of the following steps:
-3. Task `do_build`: mount folder with source code to buildchroot, switch
- to buildchroot using chroot command and run `build.sh` script. The
- `build.sh` script performs the following:
+1. Task `do_fetch`: fetch files from external links
- 1. Go to `/home/build/${PN}`
+2. Task `do_unpack`: unpack those files to `${WORKDIR}`
- 2. Get list of dependencies from debian/control and install them using apt.
+3. Task `do_populate_package` _only_ for `dpkg-raw`: copy all you want in your
+ debian package to `${D}`, install hooks in `${D}/DEBIAN`
- 3. Run dpkg-buildpackage
+4. Task `do_build`: mount folder with unpacked files to buildchroot, execute
+ the actual build function `dpkg_runbuild`, and finally umount again
-4. Task `do_install`: install successfully built packages
+ 4.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs `build.sh` in the
+ buildchroot. That performs the following:
+
+ 1. Go to `/home/build/${PN}`
+
+ 2. Get list of dependencies from debian/control and install them.
+
+ 3. Run dpkg-buildpackage
+
+ 4.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` basically runs
+ `dpkg-deb` to construct a Debian package from a folder of files,
+ without compiling anything
+
+
+5. Task `do_install`: install successfully built packages
`${WORKDIR}/*.deb` to deploy directory `${DEPLOY_DIR_DEB}`
## 3.5 Populate Target Filesystem
--
2.13.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-15 10:51 ` [PATCH 3/4] doc: update user-manual.md Henning Schild
@ 2017-09-18 8:33 ` Alexander Smirnov
2017-09-18 10:49 ` Henning Schild
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Smirnov @ 2017-09-18 8:33 UTC (permalink / raw)
To: Henning Schild, isar-users
On 09/15/2017 01:51 PM, Henning Schild wrote:
> The introduction of 'dpkg-raw.bbclass' changed the way people can
> customize their images. Cover the new way in the manual. Along the way
> also fix a few mistakes and slightly change structure.
>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
> doc/user_manual.md | 52 +++++++++++++++++++++++++++++++++++++++++++---------
> 1 file changed, 43 insertions(+), 9 deletions(-)
>
> diff --git a/doc/user_manual.md b/doc/user_manual.md
> index 4707a68..e2837c4 100644
> --- a/doc/user_manual.md
> +++ b/doc/user_manual.md
> @@ -254,9 +254,9 @@ Isar workflow consists of stages described below.
>
> This filesystem is used as a build environment to compile custom packages. It is generated using `apt` binaries repository, selected by the user in configuration file. Please refer to distro configuration chapter for more information.
>
> -### Custom Package Compilation
> +### Custom Package Generation
>
> -During this stage Isar processes custom packages selected by the user and generates binary `*.deb` packages for the target. Please refer to custom packages compilation section for more information.
> +During this stage Isar processes custom packages selected by the user and generates binary `*.deb` packages for the target. Please refer to custom packages generation section for more information.
>
> ### Generation of Basic Target Filesystem
>
> @@ -336,14 +336,14 @@ DISTRO = "distro-name"
>
> ---
>
> -## Custom Package Compilation
> +## Custom Package Generation
>
> -Isar provides possibility to compile and install custom packages. The current version supports only building `deb` packages using `dpkg-buildpackage`, so the sources should contain the `debian` directory with necessary meta information. To add new package to image, it needs the following:
> +To add new package to an image, do the following:
>
> - - Create package recipe and put it in your `isar` layer.
> + - Create a package recipe and put it in your `isar` layer.
> - Append `IMAGE_INSTALL` variable by this recipe name. If this package should be included for all the machines, put `IMAGE_INSTALL` to `local.conf` file. If you want to include this package for specific machine, put it to your machine configuration file.
>
> -Please refer to `add custom application` section for more information about writing recipes.
> +Please refer to `Add a Custom Application` section for more information about writing recipes.
>
> ---
>
> @@ -484,12 +484,18 @@ Isar contains two image type classes that can be used as reference:
>
> ## Add a Custom Application
>
> -Before creating new recipe it's highly recommended to take a look into the BitBake user manual mentioned in Terms and Definitions section.
> +Before creating a new recipe it's highly recommended to take a look into the BitBake user manual mentioned in Terms and Definitions section.
>
> -Current Isar version supports building packages in Debian format only. The package must contain the `debian` directory with the necessary metadata.
> +Isar currently supports two ways of creating custom packages.
>
> -A typical Isar recipe looks like this:
> +### Compilation of debianized-sources
>
> +The `deb` packages are built using `dpkg-buildpackage`, so the sources should contain the `debian` directory with necessary meta information. This way is the default way of adding software that needs to be compiled from source. The bbclass for this approach is called `dpkg`.
> +
> +**NOTE:** If the sources do not contain a `debian` directory your recipe can fetch, create, or ship that.
> +
> +
> +#### Example
> ```
> DESCRIPTION = "Sample application for ISAR"
>
> @@ -523,3 +529,31 @@ This approach prevents duplication of the license files in different packages.
> - `SRC_REV` - Source code revision to fetch. Please check the BitBake user manual for supported download formats.
>
> The last line in the example above adds recipe to the Isar work chain.
> +
> +### Packages without source
> +
> +If your customization is not about compiling from source there is a second way of creating `deb` packages. That way can be used for cases like:
> +
> + - packaging binaries/files that where built outside of Isar
> + - customization of the rootfs with package-hooks
> + - pulling in dependancies (meta-packages)
> +
> +The bbclass for this approach is called `dpkg-raw`.
> +
> +#### Example
> +```
> +DESCRIPTION = "Sample application for ISAR"
> +MAINTAINER = "Your name here <you@domain.com>"
> +DEBIAN_DEPENDS = "apt"
> +
> +inherit dpkg-raw
> +
> +do_populate_package() {
> +....
Probably replace '....' by a comment. In the class there is already the
line:
bbnote "Put your files for this package in ${D}"
Otherwise this example is incomplete and have no sense, because anyway
you have to read dpkg-raw class.
> +}
> +```
> +For the variables please have a look at the previous example, the following new variables are used in this recipe:
> + - `MAINTAINER` - The maintainer of the `deb` package we create
From this context it's not clear, who is maintainer of the package:
author, committer? If I add my new package, what should be written in
this field?
Also I've noticed that MAINTAINER variable is introduced in this example
only, but previous example (### Compilation of debianized-sources) in
the text doesn't have this field. Is there any reason of doing so?
Alex
> + - `DEBIAN_DEPENDS` - Debian packages that the package depends on
> +
> +Have a look at the `example-raw` recipe to get an idea how the `dpkg-raw` class can be used to customize your image.
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] doc: Update technical overview
2017-09-15 10:51 ` [PATCH 4/4] doc: Update technical overview Henning Schild
@ 2017-09-18 8:39 ` Alexander Smirnov
2017-09-18 11:05 ` Henning Schild
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Smirnov @ 2017-09-18 8:39 UTC (permalink / raw)
To: Henning Schild, isar-users
On 09/15/2017 01:51 PM, Henning Schild wrote:
> The introduction of 'dpkg-raw' opens new ways to create custom packages.
> Cover that in the overview.
>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
> doc/technical_overview.md | 44 ++++++++++++++++++++++++++++++--------------
> 1 file changed, 30 insertions(+), 14 deletions(-)
>
> diff --git a/doc/technical_overview.md b/doc/technical_overview.md
> index e83cbd0..f8ed9ee 100644
> --- a/doc/technical_overview.md
> +++ b/doc/technical_overview.md
> @@ -24,7 +24,7 @@ executing process. Recipes in Isar can be split in two categories:
> infrastructure, manages Debian tools execution for package building and
> installation, generation root file system images
>
> - - User recipes: custom user applications, that should be builе from sources
> + - User recipes: custom user applications, that can be built from sources
>
> There are two types of dependencies in Isar:
>
> @@ -155,26 +155,42 @@ here: `meta-isar/recipes-core/images/files`, and it implements `do_build` task.
>
> ## 3.4 Building Custom Packages
>
> -Isar provides possibility to build Debian packages from sources. This features
> -works with Debian-like source packages, i.e. the source code tree should
> -contain debian folder. The build process is implemented in
> -`meta/classes/dpkg.bbclass` and consists from the following steps:
> +Isar provides the possibility to build Debian packages from sources. This
> +features works with Debian-like source packages, i.e. the source code tree
features -> feature
> +should contain debian folder. This build process is implemented in
> +`meta/classes/dpkg.bbclass`.
>
> -1. Task `do_fetch`: fetch source code from external link
> +Another way of creating Debian packages is implemented in
> +`meta/classes/dpkg-raw.bbclass`. This class can be used for customizations that
> +are not based on source code that should become a package.
>
> -2. Task `do_unpack`: unpack source code to `${WORKDIR}`
> +Both consist of the following steps:
>
> -3. Task `do_build`: mount folder with source code to buildchroot, switch
> - to buildchroot using chroot command and run `build.sh` script. The
> - `build.sh` script performs the following:
> +1. Task `do_fetch`: fetch files from external links
>
> - 1. Go to `/home/build/${PN}`
> +2. Task `do_unpack`: unpack those files to `${WORKDIR}`
>
> - 2. Get list of dependencies from debian/control and install them using apt.
> +3. Task `do_populate_package` _only_ for `dpkg-raw`: copy all you want in your
> + debian package to `${D}`, install hooks in `${D}/DEBIAN`
>
> - 3. Run dpkg-buildpackage
> +4. Task `do_build`: mount folder with unpacked files to buildchroot, execute
> + the actual build function `dpkg_runbuild`, and finally umount again
>
> -4. Task `do_install`: install successfully built packages
> + 4.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs `build.sh` in the
> + buildchroot. That performs the following:
> +
> + 1. Go to `/home/build/${PN}`
> +
> + 2. Get list of dependencies from debian/control and install them.
This line is terminated by full stop, while others aren't.
The rest is ok for me, can fix these issues during merge.
Alex
> +
> + 3. Run dpkg-buildpackage
> +
> + 4.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` basically runs
> + `dpkg-deb` to construct a Debian package from a folder of files,
> + without compiling anything
> +
> +
> +5. Task `do_install`: install successfully built packages
> `${WORKDIR}/*.deb` to deploy directory `${DEPLOY_DIR_DEB}`
>
> ## 3.5 Populate Target Filesystem
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-18 8:33 ` Alexander Smirnov
@ 2017-09-18 10:49 ` Henning Schild
2017-09-18 11:04 ` Alexander Smirnov
0 siblings, 1 reply; 14+ messages in thread
From: Henning Schild @ 2017-09-18 10:49 UTC (permalink / raw)
To: Alexander Smirnov; +Cc: isar-users
Am Mon, 18 Sep 2017 11:33:38 +0300
schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> On 09/15/2017 01:51 PM, Henning Schild wrote:
> > The introduction of 'dpkg-raw.bbclass' changed the way people can
> > customize their images. Cover the new way in the manual. Along the
> > way also fix a few mistakes and slightly change structure.
> >
> > Signed-off-by: Henning Schild <henning.schild@siemens.com>
> > ---
> > doc/user_manual.md | 52
> > +++++++++++++++++++++++++++++++++++++++++++--------- 1 file
> > changed, 43 insertions(+), 9 deletions(-)
> >
> > diff --git a/doc/user_manual.md b/doc/user_manual.md
> > index 4707a68..e2837c4 100644
> > --- a/doc/user_manual.md
> > +++ b/doc/user_manual.md
> > @@ -254,9 +254,9 @@ Isar workflow consists of stages described
> > below.
> > This filesystem is used as a build environment to compile custom
> > packages. It is generated using `apt` binaries repository, selected
> > by the user in configuration file. Please refer to distro
> > configuration chapter for more information. -### Custom Package
> > Compilation +### Custom Package Generation
> > -During this stage Isar processes custom packages selected by the
> > user and generates binary `*.deb` packages for the target. Please
> > refer to custom packages compilation section for more information.
> > +During this stage Isar processes custom packages selected by the
> > user and generates binary `*.deb` packages for the target. Please
> > refer to custom packages generation section for more information.
> > ### Generation of Basic Target Filesystem @@ -336,14 +336,14 @@
> > DISTRO = "distro-name" ---
> >
> > -## Custom Package Compilation
> > +## Custom Package Generation
> >
> > -Isar provides possibility to compile and install custom packages.
> > The current version supports only building `deb` packages using
> > `dpkg-buildpackage`, so the sources should contain the `debian`
> > directory with necessary meta information. To add new package to
> > image, it needs the following: +To add new package to an image, do
> > the following:
> > - - Create package recipe and put it in your `isar` layer.
> > + - Create a package recipe and put it in your `isar` layer.
> > - Append `IMAGE_INSTALL` variable by this recipe name. If this
> > package should be included for all the machines, put
> > `IMAGE_INSTALL` to `local.conf` file. If you want to include this
> > package for specific machine, put it to your machine configuration
> > file. -Please refer to `add custom application` section for more
> > information about writing recipes. +Please refer to `Add a Custom
> > Application` section for more information about writing recipes.
> > --- @@ -484,12 +484,18 @@ Isar contains two image type classes that
> > can be used as reference:
> > ## Add a Custom Application
> >
> > -Before creating new recipe it's highly recommended to take a look
> > into the BitBake user manual mentioned in Terms and Definitions
> > section. +Before creating a new recipe it's highly recommended to
> > take a look into the BitBake user manual mentioned in Terms and
> > Definitions section. -Current Isar version supports building
> > packages in Debian format only. The package must contain the
> > `debian` directory with the necessary metadata. +Isar currently
> > supports two ways of creating custom packages. -A typical Isar
> > recipe looks like this: +### Compilation of debianized-sources
> > +The `deb` packages are built using `dpkg-buildpackage`, so the
> > sources should contain the `debian` directory with necessary meta
> > information. This way is the default way of adding software that
> > needs to be compiled from source. The bbclass for this approach is
> > called `dpkg`. + +**NOTE:** If the sources do not contain a
> > `debian` directory your recipe can fetch, create, or ship that. + +
> > +#### Example ```
> > DESCRIPTION = "Sample application for ISAR"
> >
> > @@ -523,3 +529,31 @@ This approach prevents duplication of the
> > license files in different packages.
> > - `SRC_REV` - Source code revision to fetch. Please check the
> > BitBake user manual for supported download formats.
> > The last line in the example above adds recipe to the Isar work
> > chain. +
> > +### Packages without source
> > +
> > +If your customization is not about compiling from source there is
> > a second way of creating `deb` packages. That way can be used for
> > cases like: +
> > + - packaging binaries/files that where built outside of Isar
> > + - customization of the rootfs with package-hooks
> > + - pulling in dependancies (meta-packages)
> > +
> > +The bbclass for this approach is called `dpkg-raw`.
> > +
> > +#### Example
> > +```
> > +DESCRIPTION = "Sample application for ISAR"
> > +MAINTAINER = "Your name here <you@domain.com>"
> > +DEBIAN_DEPENDS = "apt"
> > +
> > +inherit dpkg-raw
> > +
> > +do_populate_package() {
> > +....
>
> Probably replace '....' by a comment. In the class there is already
> the line:
>
> bbnote "Put your files for this package in ${D}"
>
> Otherwise this example is incomplete and have no sense, because
> anyway you have to read dpkg-raw class.
Yes, will include that comment.
> > +}
> > +```
> > +For the variables please have a look at the previous example, the
> > following new variables are used in this recipe:
> > + - `MAINTAINER` - The maintainer of the `deb` package we create
>
> From this context it's not clear, who is maintainer of the package:
> author, committer? If I add my new package, what should be written in
> this field?
I guess that could be more verbose.
> Also I've noticed that MAINTAINER variable is introduced in this
> example only, but previous example (### Compilation of
> debianized-sources) in the text doesn't have this field. Is there any
> reason of doing so?
Well a dpkg-based example has the maintainer in some file in the
"debian" folder. Here i just talk about the two "new" variables that
the other class does not have.
Henning
> Alex
>
> > + - `DEBIAN_DEPENDS` - Debian packages that the package depends on
> > +
> > +Have a look at the `example-raw` recipe to get an idea how the
> > `dpkg-raw` class can be used to customize your image.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-18 10:49 ` Henning Schild
@ 2017-09-18 11:04 ` Alexander Smirnov
2017-09-18 11:07 ` Henning Schild
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Smirnov @ 2017-09-18 11:04 UTC (permalink / raw)
To: Henning Schild; +Cc: isar-users
Hi,
On 09/18/2017 01:49 PM, Henning Schild wrote:
> Am Mon, 18 Sep 2017 11:33:38 +0300
> schrieb Alexander Smirnov <asmirnov@ilbers.de>:
>
>> On 09/15/2017 01:51 PM, Henning Schild wrote:
>>> The introduction of 'dpkg-raw.bbclass' changed the way people can
>>> customize their images. Cover the new way in the manual. Along the
>>> way also fix a few mistakes and slightly change structure.
>>>
>>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
>>> ---
>>> doc/user_manual.md | 52
>>> +++++++++++++++++++++++++++++++++++++++++++--------- 1 file
>>> changed, 43 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/doc/user_manual.md b/doc/user_manual.md
>>> index 4707a68..e2837c4 100644
>>> --- a/doc/user_manual.md
>>> +++ b/doc/user_manual.md
>>> @@ -254,9 +254,9 @@ Isar workflow consists of stages described
>>> below.
>>> This filesystem is used as a build environment to compile custom
>>> packages. It is generated using `apt` binaries repository, selected
>>> by the user in configuration file. Please refer to distro
>>> configuration chapter for more information. -### Custom Package
>>> Compilation +### Custom Package Generation
>>> -During this stage Isar processes custom packages selected by the
>>> user and generates binary `*.deb` packages for the target. Please
>>> refer to custom packages compilation section for more information.
>>> +During this stage Isar processes custom packages selected by the
>>> user and generates binary `*.deb` packages for the target. Please
>>> refer to custom packages generation section for more information.
>>> ### Generation of Basic Target Filesystem @@ -336,14 +336,14 @@
>>> DISTRO = "distro-name" ---
>>>
>>> -## Custom Package Compilation
>>> +## Custom Package Generation
>>>
>>> -Isar provides possibility to compile and install custom packages.
>>> The current version supports only building `deb` packages using
>>> `dpkg-buildpackage`, so the sources should contain the `debian`
>>> directory with necessary meta information. To add new package to
>>> image, it needs the following: +To add new package to an image, do
>>> the following:
>>> - - Create package recipe and put it in your `isar` layer.
>>> + - Create a package recipe and put it in your `isar` layer.
>>> - Append `IMAGE_INSTALL` variable by this recipe name. If this
>>> package should be included for all the machines, put
>>> `IMAGE_INSTALL` to `local.conf` file. If you want to include this
>>> package for specific machine, put it to your machine configuration
>>> file. -Please refer to `add custom application` section for more
>>> information about writing recipes. +Please refer to `Add a Custom
>>> Application` section for more information about writing recipes.
>>> --- @@ -484,12 +484,18 @@ Isar contains two image type classes that
>>> can be used as reference:
>>> ## Add a Custom Application
>>>
>>> -Before creating new recipe it's highly recommended to take a look
>>> into the BitBake user manual mentioned in Terms and Definitions
>>> section. +Before creating a new recipe it's highly recommended to
>>> take a look into the BitBake user manual mentioned in Terms and
>>> Definitions section. -Current Isar version supports building
>>> packages in Debian format only. The package must contain the
>>> `debian` directory with the necessary metadata. +Isar currently
>>> supports two ways of creating custom packages. -A typical Isar
>>> recipe looks like this: +### Compilation of debianized-sources
>>> +The `deb` packages are built using `dpkg-buildpackage`, so the
>>> sources should contain the `debian` directory with necessary meta
>>> information. This way is the default way of adding software that
>>> needs to be compiled from source. The bbclass for this approach is
>>> called `dpkg`. + +**NOTE:** If the sources do not contain a
>>> `debian` directory your recipe can fetch, create, or ship that. + +
>>> +#### Example ```
>>> DESCRIPTION = "Sample application for ISAR"
>>>
>>> @@ -523,3 +529,31 @@ This approach prevents duplication of the
>>> license files in different packages.
>>> - `SRC_REV` - Source code revision to fetch. Please check the
>>> BitBake user manual for supported download formats.
>>> The last line in the example above adds recipe to the Isar work
>>> chain. +
>>> +### Packages without source
>>> +
>>> +If your customization is not about compiling from source there is
>>> a second way of creating `deb` packages. That way can be used for
>>> cases like: +
>>> + - packaging binaries/files that where built outside of Isar
>>> + - customization of the rootfs with package-hooks
>>> + - pulling in dependancies (meta-packages)
>>> +
>>> +The bbclass for this approach is called `dpkg-raw`.
>>> +
>>> +#### Example
>>> +```
>>> +DESCRIPTION = "Sample application for ISAR"
>>> +MAINTAINER = "Your name here <you@domain.com>"
>>> +DEBIAN_DEPENDS = "apt"
>>> +
>>> +inherit dpkg-raw
>>> +
>>> +do_populate_package() {
>>> +....
>>
>> Probably replace '....' by a comment. In the class there is already
>> the line:
>>
>> bbnote "Put your files for this package in ${D}"
>>
>> Otherwise this example is incomplete and have no sense, because
>> anyway you have to read dpkg-raw class.
>
> Yes, will include that comment.
>
>>> +}
>>> +```
>>> +For the variables please have a look at the previous example, the
>>> following new variables are used in this recipe:
>>> + - `MAINTAINER` - The maintainer of the `deb` package we create
>>
>> From this context it's not clear, who is maintainer of the package:
>> author, committer? If I add my new package, what should be written in
>> this field?
>
> I guess that could be more verbose.
I do not mean, that strict policy should be defined now.
I'd like to propose to define the default value for MAINTAINER, for
example - recipe's author. Otherwise we possibly will have lots of
recipes in future with template "Your name here <you@domain.com>", what
I guess is incorrect usage of this variable, and moreover this will not
conflict with this manual.
>
>> Also I've noticed that MAINTAINER variable is introduced in this
>> example only, but previous example (### Compilation of
>> debianized-sources) in the text doesn't have this field. Is there any
>> reason of doing so?
>
> Well a dpkg-based example has the maintainer in some file in the
> "debian" folder. Here i just talk about the two "new" variables that
> the other class does not have.
So, probably it makes sense to explicitly mention, that these variables
are used by "dpkg-raw" class only.
- For the variables please have a look at the previous example, the
following new variables are used in this recipe:
+ For the variables please have a look at the previous example, the
following new variables are required by `dpkg-raw` class:
Alex
>
> Henning
>
>> Alex
>>
>>> + - `DEBIAN_DEPENDS` - Debian packages that the package depends on
>>> +
>>> +Have a look at the `example-raw` recipe to get an idea how the
>>> `dpkg-raw` class can be used to customize your image.
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] doc: Update technical overview
2017-09-18 8:39 ` Alexander Smirnov
@ 2017-09-18 11:05 ` Henning Schild
0 siblings, 0 replies; 14+ messages in thread
From: Henning Schild @ 2017-09-18 11:05 UTC (permalink / raw)
To: Alexander Smirnov; +Cc: isar-users
Am Mon, 18 Sep 2017 11:39:58 +0300
schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> On 09/15/2017 01:51 PM, Henning Schild wrote:
> > The introduction of 'dpkg-raw' opens new ways to create custom
> > packages. Cover that in the overview.
> >
> > Signed-off-by: Henning Schild <henning.schild@siemens.com>
> > ---
> > doc/technical_overview.md | 44
> > ++++++++++++++++++++++++++++++-------------- 1 file changed, 30
> > insertions(+), 14 deletions(-)
> >
> > diff --git a/doc/technical_overview.md b/doc/technical_overview.md
> > index e83cbd0..f8ed9ee 100644
> > --- a/doc/technical_overview.md
> > +++ b/doc/technical_overview.md
> > @@ -24,7 +24,7 @@ executing process. Recipes in Isar can be split
> > in two categories: infrastructure, manages Debian tools execution
> > for package building and installation, generation root file system
> > images
> > - - User recipes: custom user applications, that should be builе
> > from sources
> > + - User recipes: custom user applications, that can be built from
> > sources
> > There are two types of dependencies in Isar:
> >
> > @@ -155,26 +155,42 @@ here: `meta-isar/recipes-core/images/files`,
> > and it implements `do_build` task.
> > ## 3.4 Building Custom Packages
> >
> > -Isar provides possibility to build Debian packages from sources.
> > This features -works with Debian-like source packages, i.e. the
> > source code tree should -contain debian folder. The build process
> > is implemented in -`meta/classes/dpkg.bbclass` and consists from
> > the following steps: +Isar provides the possibility to build Debian
> > packages from sources. This +features works with Debian-like source
> > packages, i.e. the source code tree
>
> features -> feature
>
> > +should contain debian folder. This build process is implemented in
> > +`meta/classes/dpkg.bbclass`.
> >
> > -1. Task `do_fetch`: fetch source code from external link
> > +Another way of creating Debian packages is implemented in
> > +`meta/classes/dpkg-raw.bbclass`. This class can be used for
> > customizations that +are not based on source code that should
> > become a package.
> > -2. Task `do_unpack`: unpack source code to `${WORKDIR}`
> > +Both consist of the following steps:
> >
> > -3. Task `do_build`: mount folder with source code to buildchroot,
> > switch
> > - to buildchroot using chroot command and run `build.sh` script.
> > The
> > - `build.sh` script performs the following:
> > +1. Task `do_fetch`: fetch files from external links
> >
> > - 1. Go to `/home/build/${PN}`
> > +2. Task `do_unpack`: unpack those files to `${WORKDIR}`
> >
> > - 2. Get list of dependencies from debian/control and install
> > them using apt. +3. Task `do_populate_package` _only_ for
> > `dpkg-raw`: copy all you want in your
> > + debian package to `${D}`, install hooks in `${D}/DEBIAN`
> >
> > - 3. Run dpkg-buildpackage
> > +4. Task `do_build`: mount folder with unpacked files to
> > buildchroot, execute
> > + the actual build function `dpkg_runbuild`, and finally umount
> > again
> > -4. Task `do_install`: install successfully built packages
> > + 4.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs
> > `build.sh` in the
> > + buildchroot. That performs the following:
> > +
> > + 1. Go to `/home/build/${PN}`
> > +
> > + 2. Get list of dependencies from debian/control and
> > install them.
>
> This line is terminated by full stop, while others aren't.
>
> The rest is ok for me, can fix these issues during merge.
Ok, in that case i will not send an update of this one.
Henning
> Alex
>
> > +
> > + 3. Run dpkg-buildpackage
> > +
> > + 4.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass`
> > basically runs
> > + `dpkg-deb` to construct a Debian package from a folder of
> > files,
> > + without compiling anything
> > +
> > +
> > +5. Task `do_install`: install successfully built packages
> > `${WORKDIR}/*.deb` to deploy directory `${DEPLOY_DIR_DEB}`
> >
> > ## 3.5 Populate Target Filesystem
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-18 11:04 ` Alexander Smirnov
@ 2017-09-18 11:07 ` Henning Schild
2017-09-18 11:20 ` Alexander Smirnov
0 siblings, 1 reply; 14+ messages in thread
From: Henning Schild @ 2017-09-18 11:07 UTC (permalink / raw)
To: Alexander Smirnov; +Cc: isar-users
Am Mon, 18 Sep 2017 14:04:54 +0300
schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> Hi,
>
> On 09/18/2017 01:49 PM, Henning Schild wrote:
> > Am Mon, 18 Sep 2017 11:33:38 +0300
> > schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> >
> >> On 09/15/2017 01:51 PM, Henning Schild wrote:
> >>> The introduction of 'dpkg-raw.bbclass' changed the way people can
> >>> customize their images. Cover the new way in the manual. Along the
> >>> way also fix a few mistakes and slightly change structure.
> >>>
> >>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> >>> ---
> >>> doc/user_manual.md | 52
> >>> +++++++++++++++++++++++++++++++++++++++++++--------- 1 file
> >>> changed, 43 insertions(+), 9 deletions(-)
> >>>
> >>> diff --git a/doc/user_manual.md b/doc/user_manual.md
> >>> index 4707a68..e2837c4 100644
> >>> --- a/doc/user_manual.md
> >>> +++ b/doc/user_manual.md
> >>> @@ -254,9 +254,9 @@ Isar workflow consists of stages described
> >>> below.
> >>> This filesystem is used as a build environment to compile
> >>> custom packages. It is generated using `apt` binaries repository,
> >>> selected by the user in configuration file. Please refer to distro
> >>> configuration chapter for more information. -### Custom Package
> >>> Compilation +### Custom Package Generation
> >>> -During this stage Isar processes custom packages selected by the
> >>> user and generates binary `*.deb` packages for the target. Please
> >>> refer to custom packages compilation section for more information.
> >>> +During this stage Isar processes custom packages selected by the
> >>> user and generates binary `*.deb` packages for the target. Please
> >>> refer to custom packages generation section for more information.
> >>> ### Generation of Basic Target Filesystem @@ -336,14 +336,14 @@
> >>> DISTRO = "distro-name" ---
> >>>
> >>> -## Custom Package Compilation
> >>> +## Custom Package Generation
> >>>
> >>> -Isar provides possibility to compile and install custom packages.
> >>> The current version supports only building `deb` packages using
> >>> `dpkg-buildpackage`, so the sources should contain the `debian`
> >>> directory with necessary meta information. To add new package to
> >>> image, it needs the following: +To add new package to an image, do
> >>> the following:
> >>> - - Create package recipe and put it in your `isar` layer.
> >>> + - Create a package recipe and put it in your `isar` layer.
> >>> - Append `IMAGE_INSTALL` variable by this recipe name. If this
> >>> package should be included for all the machines, put
> >>> `IMAGE_INSTALL` to `local.conf` file. If you want to include this
> >>> package for specific machine, put it to your machine configuration
> >>> file. -Please refer to `add custom application` section for more
> >>> information about writing recipes. +Please refer to `Add a Custom
> >>> Application` section for more information about writing recipes.
> >>> --- @@ -484,12 +484,18 @@ Isar contains two image type classes
> >>> that can be used as reference:
> >>> ## Add a Custom Application
> >>>
> >>> -Before creating new recipe it's highly recommended to take a look
> >>> into the BitBake user manual mentioned in Terms and Definitions
> >>> section. +Before creating a new recipe it's highly recommended to
> >>> take a look into the BitBake user manual mentioned in Terms and
> >>> Definitions section. -Current Isar version supports building
> >>> packages in Debian format only. The package must contain the
> >>> `debian` directory with the necessary metadata. +Isar currently
> >>> supports two ways of creating custom packages. -A typical Isar
> >>> recipe looks like this: +### Compilation of debianized-sources
> >>> +The `deb` packages are built using `dpkg-buildpackage`, so the
> >>> sources should contain the `debian` directory with necessary meta
> >>> information. This way is the default way of adding software that
> >>> needs to be compiled from source. The bbclass for this approach is
> >>> called `dpkg`. + +**NOTE:** If the sources do not contain a
> >>> `debian` directory your recipe can fetch, create, or ship that. +
> >>> + +#### Example ```
> >>> DESCRIPTION = "Sample application for ISAR"
> >>>
> >>> @@ -523,3 +529,31 @@ This approach prevents duplication of the
> >>> license files in different packages.
> >>> - `SRC_REV` - Source code revision to fetch. Please check the
> >>> BitBake user manual for supported download formats.
> >>> The last line in the example above adds recipe to the Isar work
> >>> chain. +
> >>> +### Packages without source
> >>> +
> >>> +If your customization is not about compiling from source there is
> >>> a second way of creating `deb` packages. That way can be used for
> >>> cases like: +
> >>> + - packaging binaries/files that where built outside of Isar
> >>> + - customization of the rootfs with package-hooks
> >>> + - pulling in dependancies (meta-packages)
> >>> +
> >>> +The bbclass for this approach is called `dpkg-raw`.
> >>> +
> >>> +#### Example
> >>> +```
> >>> +DESCRIPTION = "Sample application for ISAR"
> >>> +MAINTAINER = "Your name here <you@domain.com>"
> >>> +DEBIAN_DEPENDS = "apt"
> >>> +
> >>> +inherit dpkg-raw
> >>> +
> >>> +do_populate_package() {
> >>> +....
> >>
> >> Probably replace '....' by a comment. In the class there is already
> >> the line:
> >>
> >> bbnote "Put your files for this package in ${D}"
> >>
> >> Otherwise this example is incomplete and have no sense, because
> >> anyway you have to read dpkg-raw class.
> >
> > Yes, will include that comment.
> >
> >>> +}
> >>> +```
> >>> +For the variables please have a look at the previous example, the
> >>> following new variables are used in this recipe:
> >>> + - `MAINTAINER` - The maintainer of the `deb` package we create
> >>
> >> From this context it's not clear, who is maintainer of the
> >> package: author, committer? If I add my new package, what should
> >> be written in this field?
> >
> > I guess that could be more verbose.
>
> I do not mean, that strict policy should be defined now.
> I'd like to propose to define the default value for MAINTAINER, for
> example - recipe's author. Otherwise we possibly will have lots of
> recipes in future with template "Your name here <you@domain.com>",
> what I guess is incorrect usage of this variable, and moreover this
> will not conflict with this manual.
>
> >
> >> Also I've noticed that MAINTAINER variable is introduced in this
> >> example only, but previous example (### Compilation of
> >> debianized-sources) in the text doesn't have this field. Is there
> >> any reason of doing so?
> >
> > Well a dpkg-based example has the maintainer in some file in the
> > "debian" folder. Here i just talk about the two "new" variables that
> > the other class does not have.
>
> So, probably it makes sense to explicitly mention, that these
> variables are used by "dpkg-raw" class only.
>
> - For the variables please have a look at the previous example, the
> following new variables are used in this recipe:
>
> + For the variables please have a look at the previous example, the
> following new variables are required by `dpkg-raw` class:
Sure, will you fix that during merge or should i send a v2?
Henning
> Alex
>
> >
> > Henning
> >
> >> Alex
> >>
> >>> + - `DEBIAN_DEPENDS` - Debian packages that the package depends on
> >>> +
> >>> +Have a look at the `example-raw` recipe to get an idea how the
> >>> `dpkg-raw` class can be used to customize your image.
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-18 11:07 ` Henning Schild
@ 2017-09-18 11:20 ` Alexander Smirnov
2017-09-18 13:05 ` Henning Schild
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Smirnov @ 2017-09-18 11:20 UTC (permalink / raw)
To: Henning Schild; +Cc: isar-users
On 09/18/2017 02:07 PM, Henning Schild wrote:
> Am Mon, 18 Sep 2017 14:04:54 +0300
> schrieb Alexander Smirnov <asmirnov@ilbers.de>:
>
>> Hi,
>>
>> On 09/18/2017 01:49 PM, Henning Schild wrote:
>>> Am Mon, 18 Sep 2017 11:33:38 +0300
>>> schrieb Alexander Smirnov <asmirnov@ilbers.de>:
>>>
>>>> On 09/15/2017 01:51 PM, Henning Schild wrote:
>>>>> The introduction of 'dpkg-raw.bbclass' changed the way people can
>>>>> customize their images. Cover the new way in the manual. Along the
>>>>> way also fix a few mistakes and slightly change structure.
>>>>>
>>>>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
>>>>> ---
>>>>> doc/user_manual.md | 52
>>>>> +++++++++++++++++++++++++++++++++++++++++++--------- 1 file
>>>>> changed, 43 insertions(+), 9 deletions(-)
>>>>>
>>>>> diff --git a/doc/user_manual.md b/doc/user_manual.md
>>>>> index 4707a68..e2837c4 100644
>>>>> --- a/doc/user_manual.md
>>>>> +++ b/doc/user_manual.md
>>>>> @@ -254,9 +254,9 @@ Isar workflow consists of stages described
>>>>> below.
>>>>> This filesystem is used as a build environment to compile
>>>>> custom packages. It is generated using `apt` binaries repository,
>>>>> selected by the user in configuration file. Please refer to distro
>>>>> configuration chapter for more information. -### Custom Package
>>>>> Compilation +### Custom Package Generation
>>>>> -During this stage Isar processes custom packages selected by the
>>>>> user and generates binary `*.deb` packages for the target. Please
>>>>> refer to custom packages compilation section for more information.
>>>>> +During this stage Isar processes custom packages selected by the
>>>>> user and generates binary `*.deb` packages for the target. Please
>>>>> refer to custom packages generation section for more information.
>>>>> ### Generation of Basic Target Filesystem @@ -336,14 +336,14 @@
>>>>> DISTRO = "distro-name" ---
>>>>>
>>>>> -## Custom Package Compilation
>>>>> +## Custom Package Generation
>>>>>
>>>>> -Isar provides possibility to compile and install custom packages.
>>>>> The current version supports only building `deb` packages using
>>>>> `dpkg-buildpackage`, so the sources should contain the `debian`
>>>>> directory with necessary meta information. To add new package to
>>>>> image, it needs the following: +To add new package to an image, do
>>>>> the following:
>>>>> - - Create package recipe and put it in your `isar` layer.
>>>>> + - Create a package recipe and put it in your `isar` layer.
>>>>> - Append `IMAGE_INSTALL` variable by this recipe name. If this
>>>>> package should be included for all the machines, put
>>>>> `IMAGE_INSTALL` to `local.conf` file. If you want to include this
>>>>> package for specific machine, put it to your machine configuration
>>>>> file. -Please refer to `add custom application` section for more
>>>>> information about writing recipes. +Please refer to `Add a Custom
>>>>> Application` section for more information about writing recipes.
>>>>> --- @@ -484,12 +484,18 @@ Isar contains two image type classes
>>>>> that can be used as reference:
>>>>> ## Add a Custom Application
>>>>>
>>>>> -Before creating new recipe it's highly recommended to take a look
>>>>> into the BitBake user manual mentioned in Terms and Definitions
>>>>> section. +Before creating a new recipe it's highly recommended to
>>>>> take a look into the BitBake user manual mentioned in Terms and
>>>>> Definitions section. -Current Isar version supports building
>>>>> packages in Debian format only. The package must contain the
>>>>> `debian` directory with the necessary metadata. +Isar currently
>>>>> supports two ways of creating custom packages. -A typical Isar
>>>>> recipe looks like this: +### Compilation of debianized-sources
>>>>> +The `deb` packages are built using `dpkg-buildpackage`, so the
>>>>> sources should contain the `debian` directory with necessary meta
>>>>> information. This way is the default way of adding software that
>>>>> needs to be compiled from source. The bbclass for this approach is
>>>>> called `dpkg`. + +**NOTE:** If the sources do not contain a
>>>>> `debian` directory your recipe can fetch, create, or ship that. +
>>>>> + +#### Example ```
>>>>> DESCRIPTION = "Sample application for ISAR"
>>>>>
>>>>> @@ -523,3 +529,31 @@ This approach prevents duplication of the
>>>>> license files in different packages.
>>>>> - `SRC_REV` - Source code revision to fetch. Please check the
>>>>> BitBake user manual for supported download formats.
>>>>> The last line in the example above adds recipe to the Isar work
>>>>> chain. +
>>>>> +### Packages without source
>>>>> +
>>>>> +If your customization is not about compiling from source there is
>>>>> a second way of creating `deb` packages. That way can be used for
>>>>> cases like: +
>>>>> + - packaging binaries/files that where built outside of Isar
>>>>> + - customization of the rootfs with package-hooks
>>>>> + - pulling in dependancies (meta-packages)
>>>>> +
>>>>> +The bbclass for this approach is called `dpkg-raw`.
>>>>> +
>>>>> +#### Example
>>>>> +```
>>>>> +DESCRIPTION = "Sample application for ISAR"
>>>>> +MAINTAINER = "Your name here <you@domain.com>"
>>>>> +DEBIAN_DEPENDS = "apt"
>>>>> +
>>>>> +inherit dpkg-raw
>>>>> +
>>>>> +do_populate_package() {
>>>>> +....
>>>>
>>>> Probably replace '....' by a comment. In the class there is already
>>>> the line:
>>>>
>>>> bbnote "Put your files for this package in ${D}"
>>>>
>>>> Otherwise this example is incomplete and have no sense, because
>>>> anyway you have to read dpkg-raw class.
>>>
>>> Yes, will include that comment.
>>>
>>>>> +}
>>>>> +```
>>>>> +For the variables please have a look at the previous example, the
>>>>> following new variables are used in this recipe:
>>>>> + - `MAINTAINER` - The maintainer of the `deb` package we create
>>>>
>>>> From this context it's not clear, who is maintainer of the
>>>> package: author, committer? If I add my new package, what should
>>>> be written in this field?
>>>
>>> I guess that could be more verbose.
>>
>> I do not mean, that strict policy should be defined now.
>> I'd like to propose to define the default value for MAINTAINER, for
>> example - recipe's author. Otherwise we possibly will have lots of
>> recipes in future with template "Your name here <you@domain.com>",
>> what I guess is incorrect usage of this variable, and moreover this
>> will not conflict with this manual.
>>
- `MAINTAINER` - The maintainer of the `deb` package we create
+ `MAINTAINER` - The maintainer of the `deb` package we create. If the
maintainer is undefined, the recipe author should be mentioned here
Is it ok?
>>>
>>>> Also I've noticed that MAINTAINER variable is introduced in this
>>>> example only, but previous example (### Compilation of
>>>> debianized-sources) in the text doesn't have this field. Is there
>>>> any reason of doing so?
>>>
>>> Well a dpkg-based example has the maintainer in some file in the
>>> "debian" folder. Here i just talk about the two "new" variables that
>>> the other class does not have.
>>
>> So, probably it makes sense to explicitly mention, that these
>> variables are used by "dpkg-raw" class only.
>>
>> - For the variables please have a look at the previous example, the
>> following new variables are used in this recipe:
>>
>> + For the variables please have a look at the previous example, the
>> following new variables are required by `dpkg-raw` class:
>
> Sure, will you fix that during merge or should i send a v2?
No problems, will do.
Alex
>
> Henning
>
>> Alex
>>
>>>
>>> Henning
>>>
>>>> Alex
>>>>
>>>>> + - `DEBIAN_DEPENDS` - Debian packages that the package depends on
>>>>> +
>>>>> +Have a look at the `example-raw` recipe to get an idea how the
>>>>> `dpkg-raw` class can be used to customize your image.
>>>
>
--
With best regards,
Alexander Smirnov
ilbers GmbH
Baierbrunner Str. 28c
D-81379 Munich
+49 (89) 122 67 24-0
http://ilbers.de/
Commercial register Munich, HRB 214197
General manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] doc: update user-manual.md
2017-09-18 11:20 ` Alexander Smirnov
@ 2017-09-18 13:05 ` Henning Schild
0 siblings, 0 replies; 14+ messages in thread
From: Henning Schild @ 2017-09-18 13:05 UTC (permalink / raw)
To: Alexander Smirnov; +Cc: isar-users
Am Mon, 18 Sep 2017 14:20:12 +0300
schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> On 09/18/2017 02:07 PM, Henning Schild wrote:
> > Am Mon, 18 Sep 2017 14:04:54 +0300
> > schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> >
> >> Hi,
> >>
> >> On 09/18/2017 01:49 PM, Henning Schild wrote:
> >>> Am Mon, 18 Sep 2017 11:33:38 +0300
> >>> schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> >>>
> >>>> On 09/15/2017 01:51 PM, Henning Schild wrote:
> >>>>> The introduction of 'dpkg-raw.bbclass' changed the way people
> >>>>> can customize their images. Cover the new way in the manual.
> >>>>> Along the way also fix a few mistakes and slightly change
> >>>>> structure.
> >>>>>
> >>>>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> >>>>> ---
> >>>>> doc/user_manual.md | 52
> >>>>> +++++++++++++++++++++++++++++++++++++++++++--------- 1 file
> >>>>> changed, 43 insertions(+), 9 deletions(-)
> >>>>>
> >>>>> diff --git a/doc/user_manual.md b/doc/user_manual.md
> >>>>> index 4707a68..e2837c4 100644
> >>>>> --- a/doc/user_manual.md
> >>>>> +++ b/doc/user_manual.md
> >>>>> @@ -254,9 +254,9 @@ Isar workflow consists of stages described
> >>>>> below.
> >>>>> This filesystem is used as a build environment to compile
> >>>>> custom packages. It is generated using `apt` binaries
> >>>>> repository, selected by the user in configuration file. Please
> >>>>> refer to distro configuration chapter for more information.
> >>>>> -### Custom Package Compilation +### Custom Package Generation
> >>>>> -During this stage Isar processes custom packages selected by
> >>>>> the user and generates binary `*.deb` packages for the target.
> >>>>> Please refer to custom packages compilation section for more
> >>>>> information. +During this stage Isar processes custom packages
> >>>>> selected by the user and generates binary `*.deb` packages for
> >>>>> the target. Please refer to custom packages generation section
> >>>>> for more information. ### Generation of Basic Target Filesystem
> >>>>> @@ -336,14 +336,14 @@ DISTRO = "distro-name" ---
> >>>>>
> >>>>> -## Custom Package Compilation
> >>>>> +## Custom Package Generation
> >>>>>
> >>>>> -Isar provides possibility to compile and install custom
> >>>>> packages. The current version supports only building `deb`
> >>>>> packages using `dpkg-buildpackage`, so the sources should
> >>>>> contain the `debian` directory with necessary meta information.
> >>>>> To add new package to image, it needs the following: +To add
> >>>>> new package to an image, do the following:
> >>>>> - - Create package recipe and put it in your `isar` layer.
> >>>>> + - Create a package recipe and put it in your `isar` layer.
> >>>>> - Append `IMAGE_INSTALL` variable by this recipe name. If
> >>>>> this package should be included for all the machines, put
> >>>>> `IMAGE_INSTALL` to `local.conf` file. If you want to include
> >>>>> this package for specific machine, put it to your machine
> >>>>> configuration file. -Please refer to `add custom application`
> >>>>> section for more information about writing recipes. +Please
> >>>>> refer to `Add a Custom Application` section for more
> >>>>> information about writing recipes. --- @@ -484,12 +484,18 @@
> >>>>> Isar contains two image type classes that can be used as
> >>>>> reference: ## Add a Custom Application
> >>>>>
> >>>>> -Before creating new recipe it's highly recommended to take a
> >>>>> look into the BitBake user manual mentioned in Terms and
> >>>>> Definitions section. +Before creating a new recipe it's highly
> >>>>> recommended to take a look into the BitBake user manual
> >>>>> mentioned in Terms and Definitions section. -Current Isar
> >>>>> version supports building packages in Debian format only. The
> >>>>> package must contain the `debian` directory with the necessary
> >>>>> metadata. +Isar currently supports two ways of creating custom
> >>>>> packages. -A typical Isar recipe looks like this: +###
> >>>>> Compilation of debianized-sources +The `deb` packages are built
> >>>>> using `dpkg-buildpackage`, so the sources should contain the
> >>>>> `debian` directory with necessary meta information. This way is
> >>>>> the default way of adding software that needs to be compiled
> >>>>> from source. The bbclass for this approach is called `dpkg`. +
> >>>>> +**NOTE:** If the sources do not contain a `debian` directory
> >>>>> your recipe can fetch, create, or ship that. +
> >>>>> + +#### Example ```
> >>>>> DESCRIPTION = "Sample application for ISAR"
> >>>>>
> >>>>> @@ -523,3 +529,31 @@ This approach prevents duplication of the
> >>>>> license files in different packages.
> >>>>> - `SRC_REV` - Source code revision to fetch. Please check
> >>>>> the BitBake user manual for supported download formats.
> >>>>> The last line in the example above adds recipe to the Isar
> >>>>> work chain. +
> >>>>> +### Packages without source
> >>>>> +
> >>>>> +If your customization is not about compiling from source there
> >>>>> is a second way of creating `deb` packages. That way can be
> >>>>> used for cases like: +
> >>>>> + - packaging binaries/files that where built outside of Isar
> >>>>> + - customization of the rootfs with package-hooks
> >>>>> + - pulling in dependancies (meta-packages)
> >>>>> +
> >>>>> +The bbclass for this approach is called `dpkg-raw`.
> >>>>> +
> >>>>> +#### Example
> >>>>> +```
> >>>>> +DESCRIPTION = "Sample application for ISAR"
> >>>>> +MAINTAINER = "Your name here <you@domain.com>"
> >>>>> +DEBIAN_DEPENDS = "apt"
> >>>>> +
> >>>>> +inherit dpkg-raw
> >>>>> +
> >>>>> +do_populate_package() {
> >>>>> +....
> >>>>
> >>>> Probably replace '....' by a comment. In the class there is
> >>>> already the line:
> >>>>
> >>>> bbnote "Put your files for this package in ${D}"
> >>>>
> >>>> Otherwise this example is incomplete and have no sense, because
> >>>> anyway you have to read dpkg-raw class.
> >>>
> >>> Yes, will include that comment.
> >>>
> >>>>> +}
> >>>>> +```
> >>>>> +For the variables please have a look at the previous example,
> >>>>> the following new variables are used in this recipe:
> >>>>> + - `MAINTAINER` - The maintainer of the `deb` package we
> >>>>> create
> >>>>
> >>>> From this context it's not clear, who is maintainer of the
> >>>> package: author, committer? If I add my new package, what should
> >>>> be written in this field?
> >>>
> >>> I guess that could be more verbose.
> >>
> >> I do not mean, that strict policy should be defined now.
> >> I'd like to propose to define the default value for MAINTAINER, for
> >> example - recipe's author. Otherwise we possibly will have lots of
> >> recipes in future with template "Your name here <you@domain.com>",
> >> what I guess is incorrect usage of this variable, and moreover this
> >> will not conflict with this manual.
> >>
> - `MAINTAINER` - The maintainer of the `deb` package we create
>
> + `MAINTAINER` - The maintainer of the `deb` package we create. If
> the maintainer is undefined, the recipe author should be mentioned
> here
>
> Is it ok?
Yes.
Henning
> >>>
> >>>> Also I've noticed that MAINTAINER variable is introduced in this
> >>>> example only, but previous example (### Compilation of
> >>>> debianized-sources) in the text doesn't have this field. Is there
> >>>> any reason of doing so?
> >>>
> >>> Well a dpkg-based example has the maintainer in some file in the
> >>> "debian" folder. Here i just talk about the two "new" variables
> >>> that the other class does not have.
> >>
> >> So, probably it makes sense to explicitly mention, that these
> >> variables are used by "dpkg-raw" class only.
> >>
> >> - For the variables please have a look at the previous example, the
> >> following new variables are used in this recipe:
> >>
> >> + For the variables please have a look at the previous example, the
> >> following new variables are required by `dpkg-raw` class:
> >
> > Sure, will you fix that during merge or should i send a v2?
>
> No problems, will do.
>
> Alex
>
> >
> > Henning
> >
> >> Alex
> >>
> >>>
> >>> Henning
> >>>
> >>>> Alex
> >>>>
> >>>>> + - `DEBIAN_DEPENDS` - Debian packages that the package depends
> >>>>> on +
> >>>>> +Have a look at the `example-raw` recipe to get an idea how the
> >>>>> `dpkg-raw` class can be used to customize your image.
> >>>
> >
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/4] Update default config and docs
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
` (3 preceding siblings ...)
2017-09-15 10:51 ` [PATCH 4/4] doc: Update technical overview Henning Schild
@ 2017-09-19 15:14 ` Alexander Smirnov
4 siblings, 0 replies; 14+ messages in thread
From: Alexander Smirnov @ 2017-09-19 15:14 UTC (permalink / raw)
To: Henning Schild, isar-users
Applied, thanks.
On 09/15/2017 01:51 PM, Henning Schild wrote:
> After the introduction of dpkg-raw this series updates the documentation and
> the default config, as requested during the reviews.
>
> Henning Schild (4):
> meta-isar: add 'example-raw' to example config
> doc: add 'binfmt-support' to list of required build host packages
> doc: update user-manual.md
> doc: Update technical overview
>
> doc/technical_overview.md | 44 ++++++++++++++++++++++-----------
> doc/user_manual.md | 53 +++++++++++++++++++++++++++++++++-------
> meta-isar/conf/local.conf.sample | 2 +-
> 3 files changed, 75 insertions(+), 24 deletions(-)
>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2017-09-19 15:14 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-15 10:51 [PATCH 0/4] Update default config and docs Henning Schild
2017-09-15 10:51 ` [PATCH 1/4] meta-isar: add 'example-raw' to example config Henning Schild
2017-09-15 10:51 ` [PATCH 2/4] doc: add 'binfmt-support' to list of required build host packages Henning Schild
2017-09-15 10:51 ` [PATCH 3/4] doc: update user-manual.md Henning Schild
2017-09-18 8:33 ` Alexander Smirnov
2017-09-18 10:49 ` Henning Schild
2017-09-18 11:04 ` Alexander Smirnov
2017-09-18 11:07 ` Henning Schild
2017-09-18 11:20 ` Alexander Smirnov
2017-09-18 13:05 ` Henning Schild
2017-09-15 10:51 ` [PATCH 4/4] doc: Update technical overview Henning Schild
2017-09-18 8:39 ` Alexander Smirnov
2017-09-18 11:05 ` Henning Schild
2017-09-19 15:14 ` [PATCH 0/4] Update default config and docs Alexander Smirnov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox