On Monday, August 24, 2020 at 2:58:19 PM UTC+5:30 vijaikumar_...@mentor.com wrote:
The following series updates the wic to the latest one from
openembedded core. The git tree is available here.
https://github.com/vj-kumar/isar/tree/wic/staging0
Below are summary of key changes in the below series.
P3 & P6:
The latest version of WIC detects the presence of fakeroot using
pseudo_dir(${IMAGE_ROOTFS}/../pseudo). If this is non-existent it doesnot
use fakeroot. P3 handles that quirk. There is also a standalone invocation of
pseudo which P6 tries to handle via wic_fakeroot.
In case of ISAR, we need wic_fakeroot as fakeroot only for 2 purposes.
1. To workaround fsck return values for stretch
2. To handle standalone invocation of pseudo(P4 in series)
Number 2 is not needed if we dont use fakeroot.
The alternative approach to fakeroot is to carry patches on top of wic
directory instead of working around such quirks using fakeroot. The downside
being the need to rebase the local changes on future updates of wic.
P4 & P5:
These cherry-picked changes address the --exclude-path issues which Henning
has addressed in [2]. Should be dropped once that is merged.
P9:
P9 is needed for --include-path to work. I have observed that --include-path
does not yet work/broken in the latest OE-core/poky. Posted a query in [1]. In ISAR
it works with P9 fix. P9 fix could also be relevant upstream and can be sent there
for review.
P9 fix is sent to OE-core mailing list. Currently in master-next. Hopefully should get merged.
https://lists.openembedded.org/g/openembedded-core/message/142048
I will send a V2 with updated P9 commit.
I would cherry-pick and carry P9 version from OE-core once it is merged to master. We could drop that
the next time we update wic.
FWIW, --include-path is fixed in OE-core with the below patch. It is merged to master.
https://lists.openembedded.org/g/openembedded-core/message/141865
Thanks,
Vijai Kumar K
Apart from the normal qemu build test, Below are the list of features tested.
KS API:
--exclude-path
--include-path
--fsuuid
--overhead-factor
--fixed-size
--use-label
--use-uuid
Standalone invocations:
wic ls
wic cp
wic rm
Currently in the process of finding a way to test wic features automatically. Some wic features
like -fsuuid cannot be validated till we boot the target. Need to find a generalized way for
testing the available wic features. The approach in hand is to use a wic-test.wks file and
generate qemu image with that to validate the wic features.
[1] https://lists.yoctoproject.org/g/poky/message/12151
[2] https://groups.google.com/g/isar-users/c/xePCyEl2qhM/m/mwFdeou0AQAJ
Henning Schild (1):
lib/oe/path: try hardlinking instead of guessing when it might fail
Paul Barker (1):
oe.path: Add copyhardlink() helper function
Vijai Kumar K (8):
wic: Update to the latest wic from openembedded core
wic/plugins: Fix wic plugins to work with the latest wic
wic-img: Satisfy the quirks of latest wic
wic_fakeroot: Handle standalone pseudo invocations
meta-isar/conf: Add provision to debug WIC
debian-common: Add tar as a dependency for wic
scripts/lib/wic: Add /bin to the list of searchpaths
meta-isar/canned-wks: Remove /boot mountpoint
meta-isar/conf/local.conf.sample | 3 +
.../lib/wic/canned-wks/common-isar.wks.inc | 2 +-
.../scripts/lib/wic/canned-wks/hikey.wks | 2 +-
.../lib/wic/canned-wks/sdimage-efi.wks | 2 +-
meta/classes/wic-img.bbclass | 15 +-
meta/conf/distro/debian-common.conf | 3 +-
meta/lib/oe/path.py | 27 +-
.../wic/plugins/source/bootimg-efi-isar.py | 2 +-
.../wic/plugins/source/bootimg-pcbios-isar.py | 9 +-
.../lib/wic/plugins/source/rootfs-u-boot.py | 2 +-
scripts/lib/scriptpath.py | 32 ++
scripts/lib/wic/__init__.py | 14 +-
scripts/lib/wic/canned-wks/common.wks.inc | 2 +-
.../directdisk-bootloader-config.cfg | 8 +-
.../lib/wic/canned-wks/efi-bootdisk.wks.in | 3 +
scripts/lib/wic/canned-wks/mkhybridiso.wks | 2 +-
scripts/lib/wic/canned-wks/qemuriscv.wks | 3 +
.../lib/wic/canned-wks/qemux86-directdisk.wks | 2 +-
.../lib/wic/canned-wks/sdimage-bootpart.wks | 4 +-
.../lib/wic/canned-wks/systemd-bootdisk.wks | 4 +-
scripts/lib/wic/engine.py | 421 +++++++++++++++-
scripts/lib/wic/filemap.py | 170 ++++---
scripts/lib/wic/help.py | 401 ++++++++++++++--
scripts/lib/wic/ksparser.py | 115 +++--
scripts/lib/wic/{utils => }/misc.py | 100 ++--
scripts/lib/wic/partition.py | 234 ++++-----
scripts/lib/wic/pluginbase.py | 36 +-
scripts/lib/wic/plugins/imager/direct.py | 175 ++++---
.../wic/plugins/source/bootimg-biosplusefi.py | 213 +++++++++
scripts/lib/wic/plugins/source/bootimg-efi.py | 111 +++--
.../wic/plugins/source/bootimg-partition.py | 153 ++++--
.../lib/wic/plugins/source/bootimg-pcbios.py | 91 ++--
scripts/lib/wic/plugins/source/fsimage.py | 56 ---
.../wic/plugins/source/isoimage-isohybrid.py | 185 +++----
scripts/lib/wic/plugins/source/rawcopy.py | 44 +-
scripts/lib/wic/plugins/source/rootfs.py | 159 ++++--
scripts/lib/wic/utils/__init__.py | 0
scripts/lib/wic/utils/runner.py | 114 -----
scripts/wic | 452 +++++++++++++-----
scripts/wic_fakeroot | 5 +
40 files changed, 2340 insertions(+), 1036 deletions(-)
create mode 100644 scripts/lib/scriptpath.py
create mode 100644 scripts/lib/wic/canned-wks/efi-bootdisk.wks.in
create mode 100644 scripts/lib/wic/canned-wks/qemuriscv.wks
rename scripts/lib/wic/{utils => }/misc.py (70%)
create mode 100644 scripts/lib/wic/plugins/source/bootimg-biosplusefi.py
delete mode 100644 scripts/lib/wic/plugins/source/fsimage.py
delete mode 100644 scripts/lib/wic/utils/__init__.py
delete mode 100644 scripts/lib/wic/utils/runner.py
--
2.17.1