public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Adriaan Schmidt <adriaan.schmidt@siemens.com>
To: isar-users@googlegroups.com
Cc: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Subject: [PATCH v3 00/10] Add sstate-cache
Date: Tue, 19 Oct 2021 10:29:03 +0200	[thread overview]
Message-ID: <20211019082913.199818-1-adriaan.schmidt@siemens.com> (raw)

This series adds the sstate-cache feature from OE to Isar. The cache holds
the results of bootstrapping, rootfs generation (buildchroot, image rootfs),
and deb package generation.

To use the cache, the only configuration neccessary is setting SSTATE_DIR.
The contents of that directory need to be preserved across bitbake invocations.

One known weakness is that the package lists of cached rootfs's can run
out of sync with upstream ("apt-get update" only happens at bootstrap time).
But this also happens with an "old" local build dir, and is something that
may be addressed elsewhere. For now, the recommendation is to frequently
clear the cache (in one of our projects we run a nightly "clear&populate
cache" CI job).

Patches 1..5 fix (unrelated) issues that would otherwise block sstate caching,
patch 6 copies files from OE, and patches 7..10 add caching to Isar.

---
Changes since v2:
- rebase on next
- add the explicit isar-apt dependency to all images (not only wic as previously).
- don't move existing code in isar-bootstrap.inc
- add `do_deploy_deb[deptask] = "do_deploy_deb"` to dpkg-base. This is so that
  packages depend recursively on their dependencies, even when build results
  are taken from cache.
- generally improve commit messages

Changes since v1:
- fix copy/paste typo in rootfs.bbclass
- add mounting trick to tar rootfs (because --one-file-system
  does not stop at bind mounts)
- have install_imager_deps also depend explicitly on isar-apt


Adriaan Schmidt (10):
  oe imports in central location
  images: create deploy dir
  rootfs: recursively depend on packages
  base: remove unneeded "before do_build" task dependencies
  dpkg: add explicit dependency to isar-apt
  meta: add sstate feature from oe
  sstate: configure
  sstate: add caching to isar-bootstrap
  sstate: add caching to rootfs
  sstate: add caching to debian packages

 meta/classes/base.bbclass                     |   32 +-
 meta/classes/container-img.bbclass            |    1 +
 meta/classes/cpiogz-img.bbclass               |    1 +
 meta/classes/dpkg-base.bbclass                |   34 +-
 meta/classes/dpkg.bbclass                     |    1 +
 meta/classes/ext4-img.bbclass                 |    1 +
 meta/classes/fit-img.bbclass                  |    1 +
 meta/classes/image-tools-extension.bbclass    |    2 +-
 meta/classes/patch.bbclass                    |    5 -
 meta/classes/rootfs.bbclass                   |   29 +-
 meta/classes/sstate.bbclass                   | 1311 +++++++++++++++++
 meta/classes/targz-img.bbclass                |    1 +
 meta/classes/ubi-img.bbclass                  |    1 +
 meta/classes/ubifs-img.bbclass                |    1 +
 meta/classes/wic-img.bbclass                  |    1 +
 meta/conf/bitbake.conf                        |   10 +-
 meta/lib/oe/gpg_sign.py                       |  130 ++
 meta/lib/oe/sstatesig.py                      |  603 ++++++++
 .../isar-bootstrap/isar-bootstrap.inc         |   24 +
 19 files changed, 2172 insertions(+), 17 deletions(-)
 create mode 100644 meta/classes/sstate.bbclass
 create mode 100644 meta/lib/oe/gpg_sign.py
 create mode 100644 meta/lib/oe/sstatesig.py

-- 
2.30.2


             reply	other threads:[~2021-10-19  8:29 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-19  8:29 Adriaan Schmidt [this message]
2021-10-19  8:29 ` [PATCH v3 01/10] oe imports in central location Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 02/10] images: create deploy dir Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 03/10] rootfs: recursively depend on packages Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 04/10] base: remove unneeded "before do_build" task dependencies Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 05/10] dpkg: add explicit dependency to isar-apt Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 06/10] meta: add sstate feature from oe Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 07/10] sstate: configure Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 08/10] sstate: add caching to isar-bootstrap Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 09/10] sstate: add caching to rootfs Adriaan Schmidt
2021-10-19  8:29 ` [PATCH v3 10/10] sstate: add caching to debian packages Adriaan Schmidt

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=20211019082913.199818-1-adriaan.schmidt@siemens.com \
    --to=adriaan.schmidt@siemens.com \
    --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