From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6465956022541352960 X-Received: by 10.28.143.13 with SMTP id r13mr1043205wmd.30.1505739944822; Mon, 18 Sep 2017 06:05:44 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.5.73 with SMTP id 70ls1567645wmf.22.gmail; Mon, 18 Sep 2017 06:05:44 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAxbVi6tgXBieMnoFMa4hN72G59B6bYWc1E2fZd4mQAkcGL8eCgm4DMaweQt+hPzOJd5Qhj X-Received: by 10.28.128.131 with SMTP id b125mr919508wmd.18.1505739944424; Mon, 18 Sep 2017 06:05:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505739944; cv=none; d=google.com; s=arc-20160816; b=cWp08LUqh25ep19X9Y6wAqGxlvZz73Am22/ulA3c6tJ31Zmqp2w9A+egsBj9rirKtv Wwe4AUiOm4+jvC/XB/DUVLAe24lbB44g7fTKyyDVpMB7pYSYbit3AjEAzw9aqhmJJsVR POe4byBaZtVILcCFiAfyD2gK3LjifVidTmURedxD7yFnIuMrYWPQt0YvlmJtjs1EAqxb Ql04fbng+Bepwds25ZYdEhJKIf3JDif/xEcAitkS6YjGkPFS1HupCQS0R6WSrB3PmYcS XME+Cmecq+gg1bnDYWf43jnqkpxwOWXGjoSGx08drAcvowTA8w1+EEVNHQaT314786/7 cJkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:arc-authentication-results; bh=c0scqXxbM9cCsshE+lj2X5RN+816HlxujSpNSgM74HM=; b=rPEF2E4qhDE3pIkaY+PPTRObMT3ztti/kovAB6q45ar5xVJn1zLgVAKYkUrgM1MGHD 3yp2+SHB9TSKNX9xBeA3F4/nkvA3I83dlijzTzMcpVP+Q9dSoVUyBcY+/6zcu83MRrZ8 NOBPzkW7u0Bv22Ev0aVLcNQFLUu96w5YsBrZ5x1Rilv/0OYHRDEEV5uj4XFMD1YKxxYk 3YyoKxJG2isEMAT2HOUHLJTfRAeXa0qF/2UsLCp6s0rsXBtgucLxNxL30R1pLVqtD6WE 3QoByPNUAKOKUyFk96Hthw9ZbXyVZL+714a8EWus48Pj213944rFF+0sR0t/7z8Xccow yxIA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id p200si544165wmg.4.2017.09.18.06.05.44 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Sep 2017 06:05:44 -0700 (PDT) Received-SPF: neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) smtp.mailfrom=henning.schild@siemens.com Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id v8ID5i9p000893 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 18 Sep 2017 15:05:44 +0200 Received: from md1em3qc ([139.25.68.40]) by mail3.siemens.de (8.15.2/8.15.2) with ESMTP id v8ID5ht0022310; Mon, 18 Sep 2017 15:05:43 +0200 Date: Mon, 18 Sep 2017 15:05:57 +0200 From: Henning Schild To: Alexander Smirnov Cc: Subject: Re: [PATCH 3/4] doc: update user-manual.md Message-ID: <20170918150557.424576b3@md1em3qc> In-Reply-To: <6b2eb14f-d0a3-f557-1724-a2cd5f6dcd1e@ilbers.de> References: <6458a21d-133e-e57e-0e88-7da19d8a9328@ilbers.de> <20170918124942.5bc276c0@md1em3qc> <57a4d325-a5fe-a7e8-502f-a0d0fe031f5e@ilbers.de> <20170918130725.337ba68f@md1em3qc> <6b2eb14f-d0a3-f557-1724-a2cd5f6dcd1e@ilbers.de> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: WUP46mNywgPg Am Mon, 18 Sep 2017 14:20:12 +0300 schrieb Alexander Smirnov : > On 09/18/2017 02:07 PM, Henning Schild wrote: > > Am Mon, 18 Sep 2017 14:04:54 +0300 > > schrieb Alexander Smirnov : > > > >> Hi, > >> > >> On 09/18/2017 01:49 PM, Henning Schild wrote: > >>> Am Mon, 18 Sep 2017 11:33:38 +0300 > >>> schrieb Alexander Smirnov : > >>> > >>>> 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 > >>>>> --- > >>>>> 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 " > >>>>> +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 ", > >> 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. > >>> > > >