From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6675593737290121216 X-Received: by 2002:a2e:96ce:: with SMTP id d14mr1466788ljj.10.1554720288737; Mon, 08 Apr 2019 03:44:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:8013:: with SMTP id j19ls1728216ljg.0.gmail; Mon, 08 Apr 2019 03:44:48 -0700 (PDT) X-Google-Smtp-Source: APXvYqyobBX11jIBODWgU0KomLFj6i4HVq7g3ewVVhynSS5wukK0olbR1CsIrQdaW4pVc4/1xIVt X-Received: by 2002:a2e:3015:: with SMTP id w21mr1448656ljw.20.1554720288214; Mon, 08 Apr 2019 03:44:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554720288; cv=none; d=google.com; s=arc-20160816; b=p0NnQHr0jF0aPbN+sK+rzmi3vvSudxmWqSzahg/dImTZ0kTrjWa+Yp4udkmUSNL3Pj POtyW1/bnY9xsRjWL9YPrmwmsd5xmR3eRI4qcEi4N39TpbyDhh8MKV9qrofb2+Pgof5o a/pugQHE5FKa2aHQFyiRjIUVikdqxaO0t3fqUa8qLzlxXBk9FSagNn/+l86przpvu/FO vFEuDqNVOeSiIcuM4Yc7YTP9JWP4FNnEC/iQclO+TvitNmcPTo48qUieowuuF0xX3tGZ gaHbj+oi8wAetbOyTL7uXKbmPV2v7qimh2+aKheMP1ZD6CfpWUN8rpWVWYUcw9UYNqPR q8jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:content-description :mime-version:references:message-id:subject:cc:to:from:date; bh=lOmhPVU37327HnlBv+NMDXhrkILd9lnwuxaFfP0KpvU=; b=ktx+L2E5XlGhv1UofnYzuCqSZCWX89iJlibd2lcVKCB3MquAMuLXk0Q46JrcuaGrSj pXiE1mUpZKDL6XZS6po3uf1rZSqShJ/+HEtxezaSisEBgtyRFEldxM5TgMUyDanC6G5r 5sDn4m8BWNep6ujG9Y5cDwW/IrZMqJPMsLTW897nv02QNq5OhRTzX4WWFKcjPybPYvT+ yfXG2la300DZ3THbD/uqnanl+GWTLVuZHx7Mbc+EvFGpsUm+3pRfKmAZ/Gu/XEhi0daQ LcD9E2tBjEJlvE1nUYgdUm9ktNN4BzCDEYnzTCa9QEtyODlLX6OQnqYdr94MoLFAvNny Dagg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of andreas.reichel.ext@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=andreas.reichel.ext@siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id v21si273202lfg.2.2019.04.08.03.44.48 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Apr 2019 03:44:48 -0700 (PDT) Received-SPF: pass (google.com: domain of andreas.reichel.ext@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of andreas.reichel.ext@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=andreas.reichel.ext@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id x38AilmF025112 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 8 Apr 2019 12:44:47 +0200 Received: from iiotirae (golem.ppmd.siemens.net [139.25.69.122]) by mail2.sbs.de (8.15.2/8.15.2) with SMTP id x38AilIR027430; Mon, 8 Apr 2019 12:44:47 +0200 Date: Mon, 8 Apr 2019 12:44:46 +0200 From: Andreas Reichel To: "[ext] Silvano Cirujano Cuesta" Cc: isar-users@googlegroups.com Subject: Re: [RFC PATCH v3 1/1] docs: ading dependencies documentation Message-ID: <20190408104445.GA23287@iiotirae> References: <20190403091304.8087-1-silvano.cirujano-cuesta@siemens.com> <20190403091304.8087-2-silvano.cirujano-cuesta@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Description: message Content-Disposition: inline In-Reply-To: <20190403091304.8087-2-silvano.cirujano-cuesta@siemens.com> User-Agent: Mutt/1.11.4 (2019-03-13) X-TUID: VqfxPp2IG5vW On Wed, Apr 03, 2019 at 11:13:04AM +0200, [ext] Silvano Cirujano Cuesta wrote: > Signed-off-by: Silvano Cirujano Cuesta > --- > doc/dependencies.md | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 255 insertions(+) > create mode 100644 doc/dependencies.md > > diff --git a/doc/dependencies.md b/doc/dependencies.md > new file mode 100644 > index 0000000..390e677 > --- /dev/null > +++ b/doc/dependencies.md > @@ -0,0 +1,255 @@ > +# Dependency management in ISAR > + > +## Introduction > + > +The typical goal of an ISAR build is to obtain: > + > +1. a disk image containing one or more partition images (all optional), > +1. containing one or more Debian root filesystems with > +1. certain Debian packages installed. > (Should be 1., 2. and 3., so that one can easier read it as normal text as well) > +Reaching this goal relies on the availability of the above listed elements on *runtime*, the specification of the **[runtime environments](#runtime-environment-specification)** helps the different build tools ensuring the availability of the mentioned elements on runtime. > + > +Usually some of the runtime dependencies have to be built, and it happens in special environments. These **[buildtime environments](#buildtime-environment-specification)** help the different build tools preparing the environment for building the runtime dependencies. > + > +The differentiation between buildtime and runtime environments is very important. > +The fact that ISAR uses Debian both for buildtime and runtime environments might mislead some people. > +In general the names of the variables being used to specify those dependencies aren't supporting this differentiation, but difficulting it. There is no 'difficulting'. => but making it difficult. / but encumbering it. (Is it a good idea to document, that ISAR makes it harder to people instead of easier? :D) > + > +Not only the build environments have to be specified, but also the **[build process](#build-process-specification)** that takes care of building and integrating both the runtime dependencies and the buildtime dependencies. > + > +## Runtime environment specification > + > +As mentioned above, ISAR can build [partitioned disk images](#disk-image) or only [root filesystems](#root-filesystem). > + > +Let's first analyze how the content of the different runtime containers can be specified from bigger to smaller container. ... from bigger to smaller containerS > + > + > +### Disk image > + > +A disk image depends on: > + > +1. a bootloader (optional) and > +1. one or more partitions, containing one of them a [root filesystem](#root-filesystem). > + , one of them containing a [root filesystem] > + > +See following sections for more information about how to specify inter-tasks dependencies: intertask dependencies > + > + > +## Dependencies specification variables ## Variables for dependency specification > + > +### Bitbake `DEPENDS` variable > + > +This is a **Bitbake** variable that specifies **Bitbake inter-task dependencies**. > + intertask dependencies > +Since it specifies the recipes that another recipe depend upon, this variable can be specified in **package recipes** and **image recipes**. > + > +### ISAR `IMAGE_INSTALL` variable > + > +This is originally a **Bitbake** variable that has conceptually the same goal in ISAR as in Yocto. that conceptually has > +In the case of ISAR it specifies at the same time **Bitbake inter-task dependencies** and **image custom Debian package dependencies**. > + In the case of ISAR it specifies **Bitbake intertask dependencies** and **image custom Debian package dependencies** at the same time. > +It basically specifies that a **[root filesystem](#root-filesystem)** (the prefix 'IMAGE' can be misleading here) requires a custom Debian package. > +But since custom Debian packages are being built from package recipes, this variable also specifies that an image recipe depends on package recipes. > + > +For this "magic" to work both the Debian package and the package recipe have to have the same name. , > +Something else than this 1:1 behaviour (e.g. a recipe creating multiple Debian binary packages out of a single Debian source package) requires some hacking out of the scope of this document. > + hacking, which is out of the scope of this document. > +This variable can be found in **configuration files** and **image recipes**. > + > +### ISAR `IMAGE_PREINSTALL` variable > + > +This is an **ISAR-only** variable that specifies **image upstream Debian package dependencies**. > + > +It specifies that a **[root filesystem](#root-filesystem)** requires certain *upstream Debian packages*, being "upstream Debian packages" ready built packages that can be downloaded from a Debian package repository. > + being "upstream Debian packages" ready built packages.... .???????? I don't understand that :) > +This is a variable that is rarely needed and only for a very specific use case! > +That is when a package is needed in the **[root filesystem](#root-filesystem)** during the **root filesystem build stage**, but not in the final **[root filesystem](#root-filesystem)**. > +Meaning that the installation is only transient, therefore its name. As the name says, the installation is only transient. > + > +This variable can be found in **configuration files** and **image recipes**. > + > +### Debian `Depends` control-file value > + > +This is an **Debian** variable that specifies **Debian inter-package dependencies**. > + This is a > +### Debian `Build-Depends` control-file value > + > +This is an **Debian** variable that specifies **Debian inter-package dependencies**. This is a > + > +`Build-Depends` specifies the Debian packages that are required in the [buildtime environment](#buildtime-environment-specification) to build the package declaring the dependencies. > + > +It relies on standard Debian mechanisms, therefore the corresponding [official Debian documentation][pkg-rels] provides the best reference. > + > +### ISAR `IMAGER_BUILD_DEPS` variable > + > +This is an **ISAR-only** variable that specifies **Bitbake inter-task dependencies**. > + intertask > +It has exactly the same effect as `DEPENDS`. > +It simply provides syntactic sugar to separate dependencies on recipes for building the runtime environment from dependencies on recipes for building the **[imager](#imager)**. It simply provides syntactic sugar to separate dependencies on recipes for building the runtime environment from those for building the **[imager](#imager)**. > + > +This variable can be found in **configuration files**. > + > +### ISAR `IMAGER_INSTALL` variable > + > +This is an **ISAR-only** variable that specifies **imager Debian package dependencies**. > + > +It specifies that certain *Debian packages* have to be installed on the **[imager](#imager)**. installed FOR the > + > +This variable can be found typically in **configuration files**, although it could also be part of **image recipes**. > + can typically be found can also be used in **image recipes**. > +### ISAR `WIC_IMAGER_INSTALL` variable > + > +This is an **ISAR-only** variable that specifies **imager Debian package dependencies**. > + > +It specifies that an **[imager](#imager)** requires certain *Debian packages* so that WIC can build the disk images (e.g. `parted`). > + > +This variable can be found typically in **configuration files**, although it could also be part of **image recipes**. > + can typically be found in can also be used in **image recipes**. > +[wks]: https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#ref-kickstart "OpenEmbedded Kickstart (.wks) Reference" > +[pkg-rels]: https://www.debian.org/doc/debian-policy/ch-relationships.html "Debian policy: Declaring relationships between packages" > -- > 2.11.0 KR Andreas > > -- > You received this message because you are subscribed to the Google Groups "isar-users" group. > To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. > To post to this group, send email to isar-users@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/20190403091304.8087-2-silvano.cirujano-cuesta%40siemens.com. > For more options, visit https://groups.google.com/d/optout. -- Andreas Reichel Dipl.-Phys. (Univ.) Software Consultant Andreas.Reichel@tngtech.com, +49-174-3180074 TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterfoehring Geschaeftsfuehrer: Henrik Klagges, Dr. Robert Dahlke, Gerhard Mueller Sitz: Unterfoehring * Amtsgericht Muenchen * HRB 135082