From: Henning Schild <henning.schild@siemens.com>
To: isar-users@googlegroups.com
Cc: Alexander Smirnov <asmirnov@ilbers.de>,
Henning Schild <henning.schild@siemens.com>
Subject: [PATCH 4/4] doc: Update technical overview
Date: Fri, 15 Sep 2017 12:51:51 +0200 [thread overview]
Message-ID: <f44b1bd971f375dd051d3360f9c7b19a8fcc270b.1505472545.git.henning.schild@siemens.com> (raw)
In-Reply-To: <cover.1505472545.git.henning.schild@siemens.com>
In-Reply-To: <cover.1505472545.git.henning.schild@siemens.com>
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
next prev parent reply other threads:[~2017-09-15 10:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Henning Schild [this message]
2017-09-18 8:39 ` [PATCH 4/4] doc: Update technical overview Alexander Smirnov
2017-09-18 11:05 ` Henning Schild
2017-09-19 15:14 ` [PATCH 0/4] Update default config and docs Alexander Smirnov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f44b1bd971f375dd051d3360f9c7b19a8fcc270b.1505472545.git.henning.schild@siemens.com \
--to=henning.schild@siemens.com \
--cc=asmirnov@ilbers.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox