All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts
@ 2019-08-16 17:16 Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 1/6] image-artifact-names: introduce new bbclass and move some variables into it Martin Jansa
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:16 UTC (permalink / raw)
  To: openembedded-core

Let me explain a bit what these changes do for us in LGE.

We have jenkins jobs for CI as well for official releases.

All built artifacts are moved from jenkins builder to fileserver after
the build.

Each jobs have some identifier which is then included in the filenames
of all relevant build artifacts, e.g. CI jobs will add e.g. lgsvl-verf-12
to show where it was created and what build created it (12 is
BUILD_NUMBER from jenkins, verf is type of build, lgsvl is location).

To do this you can already use IMAGE_VERSION_SUFFIX variable and add
this as a suffix to current artifact names. But that has some bad
limitations.

A) If you keep IMAGE_VERSION_SUFFIX in do_deploy signatures, then
the artifacts will be rebuilt even when the deploy sstate archive in
cache is identical except tha filename. We had this for a while, but
all CI jobs were slow, because of rebuilding kernel every single time.

B) If you vardepexclude IMAGE_VERSION_SUFFIX from the tasks which use
it, you get faster CI builds, but with inconsistent artifact names when
kernel deploy sstate is reused, e.g. image will have lgsvl-verf-12
but all kernel artifacts will end with lgsvl-verf-11, when the kernel
do_deploy was reused from previously built sstate-cache

It gets even worse with B) when you have some other tooling (like
runtime testing farm) which is tasked to flash image and kernel from
lgsvl-verf-12 and it fails to find kernel image to flash, because it's
named differently.

C) Using version-less artifacts and just storing them in different
directories might work better, but then it would make sense to include
IMAGE_VERSION_SUFFIX in DEPLOY_DIR_IMAGE and remove it from the actual
files inside (with version-less symlinks pointing to them). But this is
a bit problematic when the individual images are usually downloaded by
BFUs over http (and they end with various identically named files for
which they don't remember from where they came).

So this was the motivation why we have this in webOS.

The difference for you (most people shouldn't even notice):

1) hard links instead of symlinks in DEPLOY_DIR_IMAGE, because now the
   version is in the *_LINK_* variables and you don't want symlink with
   version release-1 pointing to file created with release-2 build.

2) do_deploy, do_rootfs can still be reused from sstate, it will restore
   the version-less artifact and then just quicky add another hardlink with
   new filename (do_deploy_links task).

3) we're using this for couple years (badly hacked into OE, because we didn't
   want to overlay all relevant .bbclasses, but still needed to inject do_deploy_links
   task dependency in multiple places) and the only issue I've noticed was with
   one our proprietary IMAGE_FSTYPE format which was appending to image file in
   DEPLOY_DIR_IMAGE if it existed before, instead of overwritting it from scratch -
   to fix that I've just changed fstype function to remove the file before creating
   it again.

4) Examples:
   All show "ls -laih DEPLOY_DIR_IMAGE | sort" to show the symlinks and hardlinks

   TMPDIR is removed between each example, except the e) and f), but sstate-cache
   is kept in all cases and reused where possible

   MODULE_TARBALL_DEPLOY = "1" is added to local.conf to have more than just 1
   kernel image as artifact from kernel (e.g. rpi MACHINEs have a lot of them with
   all the dtds).

a) Current master with default values:

$ ls -laih qemux86-64-master-default/  | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
50735788 -rw-r--r--  1 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
50735796 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 14:23 .
50741892 -rwxr-xr-x  1 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
52067796 -rw-r--r--  1 bitbake bitbake 7.6M Aug 16 14:22 bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.17-qemux86-64-20190816141126.bin
52067797 lrwxrwxrwx  1 bitbake bitbake   78 Aug 16 14:22 bzImage-qemux86-64.bin -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.17-qemux86-64-20190816141126.bin
52067798 lrwxrwxrwx  1 bitbake bitbake   78 Aug 16 14:22 bzImage -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.17-qemux86-64-20190816141126.bin
52067799 -rw-r--r--  1 bitbake bitbake 7.0M Aug 16 14:22 modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.17-qemux86-64-20190816141126.tgz
52068116 lrwxrwxrwx  1 bitbake bitbake   78 Aug 16 14:22 modules-qemux86-64.tgz -> modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.17-qemux86-64-20190816141126.tgz
52068127 -rw-r--r--  1 bitbake bitbake 1.3K Aug 16 14:23 core-image-minimal-qemux86-64-20190816141126.qemuboot.conf
52068128 lrwxrwxrwx  1 bitbake bitbake   58 Aug 16 14:23 core-image-minimal-qemux86-64.qemuboot.conf -> core-image-minimal-qemux86-64-20190816141126.qemuboot.conf
52068136 -rw-r--r--  1 bitbake bitbake 162K Aug 16 14:23 core-image-minimal-qemux86-64-20190816141126.testdata.json
52068137 lrwxrwxrwx  1 bitbake bitbake   58 Aug 16 14:23 core-image-minimal-qemux86-64.testdata.json -> core-image-minimal-qemux86-64-20190816141126.testdata.json
52068153 -rw-r--r--  1 bitbake bitbake 2.2K Aug 16 14:23 core-image-minimal-qemux86-64-20190816141126.rootfs.manifest
52068154 lrwxrwxrwx  1 bitbake bitbake   60 Aug 16 14:23 core-image-minimal-qemux86-64.manifest -> core-image-minimal-qemux86-64-20190816141126.rootfs.manifest
52068264 -rw-r--r--  1 bitbake bitbake 1.1K Aug 16 14:23 core-image-minimal.env
52068265 -rw-r--r--  1 bitbake bitbake  61M Aug 16 14:23 core-image-minimal-qemux86-64-20190816141126.rootfs.ext4
52068271 lrwxrwxrwx  1 bitbake bitbake   56 Aug 16 14:23 core-image-minimal-qemux86-64.ext4 -> core-image-minimal-qemux86-64-20190816141126.rootfs.ext4
52068272 -rw-r--r--  1 bitbake bitbake  49M Aug 16 14:23 core-image-minimal-qemux86-64-20190816141126.rootfs.wic.vmdk
52068273 lrwxrwxrwx  1 bitbake bitbake   60 Aug 16 14:23 core-image-minimal-qemux86-64.wic.vmdk -> core-image-minimal-qemux86-64-20190816141126.rootfs.wic.vmdk

b) Current master with IMAGE_VERSION_SUFFIX_forcevariable = "-release-1":

$ ls -laih qemux86-64-master-release-1/ | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
50735791 -rw-r--r--  2 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
50735798 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 16:12 .
50741895 -rwxr-xr-x  2 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
52068085 -rw-r--r--  2 bitbake bitbake 7.6M Aug 16 16:11 bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.19-qemux86-64-release-1.bin
52068086 lrwxrwxrwx  2 bitbake bitbake   73 Aug 16 16:11 bzImage-qemux86-64.bin -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.19-qemux86-64-release-1.bin
52068087 lrwxrwxrwx  2 bitbake bitbake   73 Aug 16 16:11 bzImage -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.19-qemux86-64-release-1.bin
52068088 -rw-r--r--  2 bitbake bitbake 7.0M Aug 16 16:11 modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.19-qemux86-64-release-1.tgz
52068443 lrwxrwxrwx  2 bitbake bitbake   73 Aug 16 16:11 modules-qemux86-64.tgz -> modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.19-qemux86-64-release-1.tgz
52068450 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 16:11 core-image-minimal-qemux86-64-release-1.qemuboot.conf
52068451 lrwxrwxrwx  2 bitbake bitbake   53 Aug 16 16:11 core-image-minimal-qemux86-64.qemuboot.conf -> core-image-minimal-qemux86-64-release-1.qemuboot.conf
52068471 -rw-r--r--  2 bitbake bitbake 161K Aug 16 16:11 core-image-minimal-qemux86-64-release-1.testdata.json
52068472 lrwxrwxrwx  2 bitbake bitbake   53 Aug 16 16:11 core-image-minimal-qemux86-64.testdata.json -> core-image-minimal-qemux86-64-release-1.testdata.json
52068507 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 16:11 core-image-minimal-qemux86-64-release-1.rootfs.manifest
52068508 lrwxrwxrwx  2 bitbake bitbake   55 Aug 16 16:11 core-image-minimal-qemux86-64.manifest -> core-image-minimal-qemux86-64-release-1.rootfs.manifest
52068583 -rw-r--r--  2 bitbake bitbake 1.1K Aug 16 16:11 core-image-minimal.env
52068584 -rw-r--r--  2 bitbake bitbake  61M Aug 16 16:11 core-image-minimal-qemux86-64-release-1.rootfs.ext4
52068585 lrwxrwxrwx  2 bitbake bitbake   51 Aug 16 16:11 core-image-minimal-qemux86-64.ext4 -> core-image-minimal-qemux86-64-release-1.rootfs.ext4
52068586 -rw-r--r--  2 bitbake bitbake  49M Aug 16 16:12 core-image-minimal-qemux86-64-release-1.rootfs.wic.vmdk
52068596 lrwxrwxrwx  2 bitbake bitbake   55 Aug 16 16:12 core-image-minimal-qemux86-64.wic.vmdk -> core-image-minimal-qemux86-64-release-1.rootfs.wic.vmdk

c) Current master with IMAGE_VERSION_SUFFIX_forcevariable = "-release-2"
   and IMAGE_INSTALL_append = " zlib" added to force image to be recreated
   while kernel is still reused from sstate

$ ls -laih qemux86-64-master-release-2/ | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
50735847 -rw-r--r--  1 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
50735855 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 13:25 .
50742058 -rwxr-xr-x  1 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
50886339 -rw-r--r--  1 bitbake bitbake 7.6M Aug 16 13:23 bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.15-qemux86-64-release-2.bin
50886340 lrwxrwxrwx  1 bitbake bitbake   73 Aug 16 13:23 bzImage-qemux86-64.bin -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.15-qemux86-64-release-2.bin
50886341 lrwxrwxrwx  1 bitbake bitbake   73 Aug 16 13:23 bzImage -> bzImage--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.15-qemux86-64-release-2.bin
50886342 -rw-r--r--  1 bitbake bitbake 7.0M Aug 16 13:23 modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.15-qemux86-64-release-2.tgz
50886345 lrwxrwxrwx  1 bitbake bitbake   73 Aug 16 13:23 modules-qemux86-64.tgz -> modules--5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.15-qemux86-64-release-2.tgz
51125060 -rw-r--r--  1 bitbake bitbake 161K Aug 16 13:25 core-image-minimal-qemux86-64-release-2.testdata.json
51125068 lrwxrwxrwx  1 bitbake bitbake   53 Aug 16 13:25 core-image-minimal-qemux86-64.testdata.json -> core-image-minimal-qemux86-64-release-2.testdata.json
51125069 -rw-r--r--  1 bitbake bitbake 2.2K Aug 16 13:25 core-image-minimal-qemux86-64-release-2.rootfs.manifest
51125070 lrwxrwxrwx  1 bitbake bitbake   55 Aug 16 13:25 core-image-minimal-qemux86-64.manifest -> core-image-minimal-qemux86-64-release-2.rootfs.manifest
51125072 -rw-r--r--  1 bitbake bitbake 1.3K Aug 16 13:25 core-image-minimal-qemux86-64-release-2.qemuboot.conf
51125073 lrwxrwxrwx  1 bitbake bitbake   53 Aug 16 13:25 core-image-minimal-qemux86-64.qemuboot.conf -> core-image-minimal-qemux86-64-release-2.qemuboot.conf
51125075 -rw-r--r--  1 bitbake bitbake 1.1K Aug 16 13:25 core-image-minimal.env
51125076 -rw-r--r--  1 bitbake bitbake  61M Aug 16 13:25 core-image-minimal-qemux86-64-release-2.rootfs.ext4
51125077 lrwxrwxrwx  1 bitbake bitbake   51 Aug 16 13:25 core-image-minimal-qemux86-64.ext4 -> core-image-minimal-qemux86-64-release-2.rootfs.ext4
51125078 -rw-r--r--  1 bitbake bitbake  49M Aug 16 13:25 core-image-minimal-qemux86-64-release-2.rootfs.wic.vmdk
51125079 lrwxrwxrwx  1 bitbake bitbake   55 Aug 16 13:25 core-image-minimal-qemux86-64.wic.vmdk -> core-image-minimal-qemux86-64-release-2.rootfs.wic.vmdk

d) With this PR and default values:

$ ls -laih qemux86-64-YOCTO-12937-default/ | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
50735787 -rw-r--r--  1 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
50735794 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 12:45 .
50741889 -rwxr-xr-x  1 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
50878232 -rw-r--r--  2 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64-5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.10-20190816124241.tgz
50878232 -rw-r--r--  2 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64.tgz
50878233 -rw-r--r--  2 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64-5.0.19+git2+c2e34d9ab2_00638cdd8f-r0.10-20190816124241.bin
50878233 -rw-r--r--  2 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64.bin
50878239 lrwxrwxrwx  1 bitbake bitbake   22 Aug 15 18:44 bzImage -> bzImage-qemux86-64.bin
51663342 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 12:45 core-image-minimal-qemux86-64-1.0-r0-20190816124241.qemuboot.conf
51663342 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 12:45 core-image-minimal-qemux86-64.qemuboot.conf
51663368 -rw-r--r--  2 bitbake bitbake 161K Aug 16 12:45 core-image-minimal-qemux86-64-1.0-r0-20190816124241.testdata.json
51663368 -rw-r--r--  2 bitbake bitbake 161K Aug 16 12:45 core-image-minimal-qemux86-64.testdata.json
51663370 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 12:45 core-image-minimal-qemux86-64-1.0-r0-20190816124241.manifest
51663370 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 12:45 core-image-minimal-qemux86-64.rootfs.manifest
51663546 -rw-r--r--  1 bitbake bitbake 1.1K Aug 16 12:45 core-image-minimal.env
51663555 -rw-r--r--  2 bitbake bitbake  61M Aug 16 12:45 core-image-minimal-qemux86-64-1.0-r0-20190816124241.ext4
51663555 -rw-r--r--  2 bitbake bitbake  61M Aug 16 12:45 core-image-minimal-qemux86-64.rootfs.ext4
51663557 -rw-r--r--  2 bitbake bitbake  49M Aug 16 12:45 core-image-minimal-qemux86-64-1.0-r0-20190816124241.wic.vmdk
51663557 -rw-r--r--  2 bitbake bitbake  49M Aug 16 12:45 core-image-minimal-qemux86-64.rootfs.wic.vmdk

e) With this PR and IMAGE_VERSION_SUFFIX_forcevariable = "-release-1":

$ ls -laih qemux86-64-YOCTO-12937-release-1/ | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
50735846 -rw-r--r--  1 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
50735852 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 12:59 .
50742055 -rwxr-xr-x  1 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
50878352 -rw-r--r--  2 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64-release-1.tgz
50878352 -rw-r--r--  2 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64.tgz
50878353 -rw-r--r--  2 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64.bin
50878353 -rw-r--r--  2 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64-release-1.bin
50878359 lrwxrwxrwx  1 bitbake bitbake   22 Aug 15 18:44 bzImage -> bzImage-qemux86-64.bin
51665406 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 12:58 core-image-minimal-qemux86-64.qemuboot.conf
51665406 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 12:58 core-image-minimal-qemux86-64-release-1.qemuboot.conf
51665432 -rw-r--r--  2 bitbake bitbake 161K Aug 16 12:58 core-image-minimal-qemux86-64-release-1.testdata.json
51665432 -rw-r--r--  2 bitbake bitbake 161K Aug 16 12:58 core-image-minimal-qemux86-64.testdata.json
51665434 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 12:58 core-image-minimal-qemux86-64-release-1.manifest
51665434 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 12:58 core-image-minimal-qemux86-64.rootfs.manifest
51665606 -rw-r--r--  1 bitbake bitbake 1.1K Aug 16 12:58 core-image-minimal.env
51665615 -rw-r--r--  2 bitbake bitbake  61M Aug 16 12:59 core-image-minimal-qemux86-64-release-1.ext4
51665615 -rw-r--r--  2 bitbake bitbake  61M Aug 16 12:59 core-image-minimal-qemux86-64.rootfs.ext4
51665617 -rw-r--r--  2 bitbake bitbake  49M Aug 16 12:59 core-image-minimal-qemux86-64-release-1.wic.vmdk
51665617 -rw-r--r--  2 bitbake bitbake  49M Aug 16 12:59 core-image-minimal-qemux86-64.rootfs.wic.vmdk

f) With this PR and IMAGE_VERSION_SUFFIX_forcevariable = "-release-2"
   and IMAGE_INSTALL_append = " zlib" added to force image to be recreated
   while kernel is still reused from sstate
   In this case I haven't removed TMPDIR between e) and f) to show
   that kernel artifacts are identical from previous build release-1 and just
   added another hardlink to the same inode.

$ ls -laih qemux86-64-YOCTO-12937-release-2/ | sort
47054849 drwxr-xr-x 13 bitbake bitbake 4.0K Aug 16 16:37 ..
51665409 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 13:07 core-image-minimal-qemux86-64.qemuboot.conf
51665409 -rw-r--r--  2 bitbake bitbake 1.3K Aug 16 13:07 core-image-minimal-qemux86-64-release-2.qemuboot.conf
51665420 -rw-r--r--  2 bitbake bitbake 161K Aug 16 13:07 core-image-minimal-qemux86-64-release-2.testdata.json
51665420 -rw-r--r--  2 bitbake bitbake 161K Aug 16 13:07 core-image-minimal-qemux86-64.testdata.json
51665422 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 13:07 core-image-minimal-qemux86-64-release-2.manifest
51665422 -rw-r--r--  2 bitbake bitbake 2.2K Aug 16 13:07 core-image-minimal-qemux86-64.rootfs.manifest
51665583 -rw-r--r--  1 bitbake bitbake 1.1K Aug 16 13:07 core-image-minimal.env
51665584 -rw-r--r--  2 bitbake bitbake  61M Aug 16 13:07 core-image-minimal-qemux86-64-release-2.ext4
51665584 -rw-r--r--  2 bitbake bitbake  61M Aug 16 13:07 core-image-minimal-qemux86-64.rootfs.ext4
51665585 -rw-r--r--  2 bitbake bitbake  49M Aug 16 13:07 core-image-minimal-qemux86-64-release-2.wic.vmdk
51665585 -rw-r--r--  2 bitbake bitbake  49M Aug 16 13:07 core-image-minimal-qemux86-64.rootfs.wic.vmdk
51666546 drwxr-xr-x  2 bitbake bitbake 4.0K Aug 16 13:07 .
51666553 -rw-r--r--  1 bitbake bitbake 612K Aug 15 17:16 grub-efi-bootx64.efi
51666554 -rwxr-xr-x  1 bitbake bitbake  95K Aug 15 17:16 systemd-bootx64.efi
51666555 -rw-r--r--  3 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64-release-1.tgz
51666555 -rw-r--r--  3 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64-release-2.tgz
51666555 -rw-r--r--  3 bitbake bitbake 7.0M Aug 15 18:44 modules-qemux86-64.tgz
51666556 -rw-r--r--  3 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64.bin
51666556 -rw-r--r--  3 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64-release-1.bin
51666556 -rw-r--r--  3 bitbake bitbake 7.6M Aug 15 18:44 bzImage-qemux86-64-release-2.bin
51666557 lrwxrwxrwx  1 bitbake bitbake   22 Aug 15 18:44 bzImage -> bzImage-qemux86-64.bin

The following changes since commit 6b36db836547a23f43c5f97bf3706d7b210c209c:

  libevent: update to 2.1.11 (2019-08-14 17:32:19 +0100)

are available in the Git repository at:

  git://git.openembedded.org/openembedded-core-contrib jansa/artifacts
  http://cgit.openembedded.org/openembedded-core-contrib/log/?h=jansa/artifacts

Martin Jansa (6):
  image-artifact-names: introduce new bbclass and move some variables
    into it
  bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in
    the _LINK_NAME variables and change it to hard link
  kernel-artifact-names.bbclass: use PR instead of PKGR in
    KERNEL_ARTIFACT_NAME
  kernel.bbclass: imageType without {}
  kernel.bbclass: drop unnecessary package_get_auto_pr for do_install
  *-artifact-names: include version only in the artifact links

 meta/classes/buildhistory.bbclass          |  2 +
 meta/classes/cve-check.bbclass             |  4 +-
 meta/classes/image-artifact-names.bbclass  | 15 +++++++
 meta/classes/image-live.bbclass            |  2 +-
 meta/classes/image.bbclass                 | 10 ++---
 meta/classes/image_types.bbclass           |  9 +---
 meta/classes/kernel-artifact-names.bbclass | 12 +++++-
 meta/classes/kernel-devicetree.bbclass     | 21 ++++++++--
 meta/classes/kernel.bbclass                | 49 +++++++++++++++-------
 meta/classes/qemuboot.bbclass              |  4 +-
 meta/classes/rootfs-postcommands.bbclass   |  6 ++-
 meta/classes/testimage.bbclass             |  2 +
 meta/conf/bitbake.conf                     |  5 ---
 13 files changed, 97 insertions(+), 44 deletions(-)
 create mode 100644 meta/classes/image-artifact-names.bbclass

-- 
2.17.1



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [RFC][PATCH 1/6] image-artifact-names: introduce new bbclass and move some variables into it
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
@ 2019-08-16 17:16 ` Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 2/6] bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link Martin Jansa
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:16 UTC (permalink / raw)
  To: openembedded-core

* similar to kernel-artifact-names for other recipes/bbclasses which
  need to use some deployed artifacts

* bitbake.conf: move IMAGE_BASENAME, IMAGE_VERSION_SUFFIX, IMAGE_NAME,
  IMAGE_LINK_NAME variables

* image_types.bbclass: move IMAGE_NAME_SUFFIX variable

* currently IMAGE_NAME_SUFFIX is used only by image.bbclass,
  image_types.bbclass and meta/recipes-core/images/build-appliance-image_15.0.0.bb
  but if it's needed by some recipe which isn't itself an image, then
  it's useful in bitbake.conf, e.g. we have a recipe for creating
  VirtualBox appliances which combines .wic.vmdk with .ovf file to
  create .zip with appliance, but for that we need the filename of
  .wic.vmdk which now contains IMAGE_NAME_SUFFIX
  https://github.com/webOS-ports/meta-webos-ports/blob/4980ce52a43ac6897657602810313af359f0b839/meta-luneos/recipes-core/images/luneos-emulator-appliance.inc#L24

* we were hardcoding .rootfs suffix where needed, but for quite long
  time it's configurable with IMAGE_NAME_SUFFIX since:

  commit 380ee36811939d947024bf78de907e3c071b834f
  Author: Patrick Ohly <patrick.ohly@intel.com>
  Date:   Mon Mar 7 18:07:52 2016 +0100

    image creation: allow overriding .rootfs suffix

  and might not match with hardcoded .rootfs, so make it easier to
  use IMAGE_NAME_SUFFIX where needed even without inheritting whole
  image_types.bbclass

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/buildhistory.bbclass          |  2 ++
 meta/classes/image-artifact-names.bbclass  | 15 +++++++++++++++
 meta/classes/image-live.bbclass            |  2 +-
 meta/classes/image_types.bbclass           |  9 ++-------
 meta/classes/kernel-artifact-names.bbclass |  8 ++++++++
 meta/classes/qemuboot.bbclass              |  2 ++
 meta/classes/rootfs-postcommands.bbclass   |  2 ++
 meta/classes/testimage.bbclass             |  2 ++
 meta/conf/bitbake.conf                     |  5 -----
 9 files changed, 34 insertions(+), 13 deletions(-)
 create mode 100644 meta/classes/image-artifact-names.bbclass

diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index f986f7c794..fb244bc04e 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -7,6 +7,8 @@
 # Copyright (C) 2007-2011 Koen Kooi <koen@openembedded.org>
 #
 
+inherit image-artifact-names
+
 BUILDHISTORY_FEATURES ?= "image package sdk"
 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
 BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass
new file mode 100644
index 0000000000..5ab8f1b7aa
--- /dev/null
+++ b/meta/classes/image-artifact-names.bbclass
@@ -0,0 +1,15 @@
+##################################################################
+# Specific image creation and rootfs population info.
+##################################################################
+
+IMAGE_BASENAME = "${PN}"
+IMAGE_VERSION_SUFFIX = "-${DATETIME}"
+IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
+IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
+
+# IMAGE_NAME is the base name for everything produced when building images.
+# The actual image that contains the rootfs has an additional suffix (.rootfs
+# by default) followed by additional suffices which describe the format (.ext4,
+# .ext4.xz, etc.).
+IMAGE_NAME_SUFFIX ??= ".rootfs"
diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass
index af71be5093..d44573efe8 100644
--- a/meta/classes/image-live.bbclass
+++ b/meta/classes/image-live.bbclass
@@ -22,7 +22,7 @@
 # ${HDDIMG_ID} - FAT image volume-id
 # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
 
-inherit live-vm-common
+inherit live-vm-common image-artifact-names
 
 do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
                         mtools-native:do_populate_sysroot \
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 2eeffbb366..a6d42c03e4 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -1,9 +1,3 @@
-# IMAGE_NAME is the base name for everything produced when building images.
-# The actual image that contains the rootfs has an additional suffix (.rootfs
-# by default) followed by additional suffices which describe the format (.ext4,
-# .ext4.xz, etc.).
-IMAGE_NAME_SUFFIX ??= ".rootfs"
-
 # The default aligment of the size of the rootfs is set to 1KiB. In case
 # you're using the SD card emulation of a QEMU system simulator you may
 # set this value to 2048 (2MiB alignment).
@@ -229,7 +223,8 @@ IMAGE_CMD_f2fs () {
 
 EXTRA_IMAGECMD = ""
 
-inherit siteinfo kernel-arch
+inherit siteinfo kernel-arch image-artifact-names
+
 JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}"
 JFFS2_ERASEBLOCK ?= "0x40000"
 EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers"
diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass
index bbeecba7bd..a65cdddb3e 100644
--- a/meta/classes/kernel-artifact-names.bbclass
+++ b/meta/classes/kernel-artifact-names.bbclass
@@ -1,3 +1,11 @@
+##################################################################
+# Specific kernel creation info
+# for recipes/bbclasses which need to reuse some of the kernel
+# artifacts, but aren't kernel recipes themselves
+##################################################################
+
+inherit image-artifact-names
+
 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
 
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 15a9e63f2b..694798ad2b 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -67,6 +67,8 @@ QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
 # This should be kept align with ROOT_VM
 QB_DRIVE_TYPE ?= "/dev/sd"
 
+inherit image-artifact-names
+
 # Create qemuboot.conf
 addtask do_write_qemuboot_conf after do_rootfs before do_image
 IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 6cec23ef1a..91c824a535 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -39,6 +39,8 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd"
 
 ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
 
+inherit image-artifact-names
+
 # Sort the user and group entries in /etc by ID in order to make the content
 # deterministic. Package installs are not deterministic, causing the ordering
 # of entries to change between builds. In case that this isn't desired,
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass
index 525c5a6173..f6a9c3fac2 100644
--- a/meta/classes/testimage.bbclass
+++ b/meta/classes/testimage.bbclass
@@ -3,6 +3,8 @@
 # Released under the MIT license (see COPYING.MIT)
 
 inherit metadata_scm
+inherit image-artifact-names
+
 # testimage.bbclass enables testing of qemu images using python unittests.
 # Most of the tests are commands run on target image over ssh.
 # To use it add testimage to global inherit and call your target image with -c testimage
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index ddcac09c5c..c2012abd41 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -455,11 +455,6 @@ STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifac
 ##################################################################
 
 IMAGE_ROOTFS = "${WORKDIR}/rootfs"
-IMAGE_BASENAME = "${PN}"
-IMAGE_VERSION_SUFFIX = "-${DATETIME}"
-IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
-IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
-IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
 
 # This option allows for a percentage overage of the actual image size rather than a
 # fixed extra space, this is space needed for initial startup and basic operations.
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC][PATCH 2/6] bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 1/6] image-artifact-names: introduce new bbclass and move some variables into it Martin Jansa
@ 2019-08-16 17:16 ` Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 3/6] kernel-artifact-names.bbclass: use PR instead of PKGR in KERNEL_ARTIFACT_NAME Martin Jansa
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:16 UTC (permalink / raw)
  To: openembedded-core

* just RFC, the part for images isn't finished yet and there is
  still some issue with DATETIME when kernel artifacts are used
  from sstate, this is just to validate the idea behind
  [YOCTO #12937] before finishing the implementation (it's already
  finished and used by various LGE builds, but having simpler
  way of doing it directly in oe-core mighe be useful for others).

* move IMAGE_VERSION_SUFFIX from _NAME variables to _LINK_NAME
  that way e.g. kernel.do_deploy can be reused from sstate to
  provide "version-less" artifacts and then very fast
  do_deploy_links task just adds links with consistent suffixes
  (by default the version from the recipe but could be easily set
  to e.g. some release name when building some products).
* create hard links instead of symlinks, so that whatever version
  the filename says is really there
* some IMAGE_FSTYPES might need the "version-less" IMAGE_NAME file
  to be removed first or they might either append or update the
  content of the image instead of creating new image file from
  scratch - I have seen this only with one proprietary format we
  generate with our own tool, so hopefully this isn't very common
* this is basically the mechanism are using in webOS with
  WEBOS_IMAGE_NAME_SUFFIX which is for official builds set from
  jenkins job and then all artifacts (images as well as corresponding
  kernel files) have the same version string)

* without this, you can still easily set the variables to contain
  the version from jenkins job (excluded from sstate signature like
  DATETIME currently is to prevent rebuilding it everytime even when
  the content didn't change) but then when kernel is reused from sstate
  you can have version 1.0 used on kernel artifacts and 2.0 on image
  artifacts.

* if you don't exclude the version string with vardepsexclude, then
  you get the right version in the filenames but for cost of
  re-executing do_deploy every single time, which with rm_work will
  cause all kernel tasks to be re-executed (together with everything
  which depends on it like external modules etc).

* the implementation "from outside" is a bit tricky as shown in webOS
  OSE, because first you need to reverse the meaning of IMAGE_NAME
  and IMAGE_LINK_NAME like here, but also replace all symlinks with
  hardlinks and then adjust all recipes/bbclasses to depend on our
  do_deploy_fixup task instead of the original do_deploy
  see the variable modifications:
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/conf/distro/include/webos.inc#L65
  and then various bbclasses to hook do_webos_deploy_fixup task creating
  the hardlinks for possible artifacts:
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/webos_deploy.bbclass
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/kernel.bbclass
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/image.bbclass
  so hopefully with all these changes in oe-core other project can
  achieve the same just by setting one variable IMAGE_VERSION_SUFFIX

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/cve-check.bbclass             |  4 +-
 meta/classes/image-artifact-names.bbclass  |  4 +-
 meta/classes/image.bbclass                 | 10 ++---
 meta/classes/kernel-artifact-names.bbclass |  4 +-
 meta/classes/kernel-devicetree.bbclass     | 21 +++++++++--
 meta/classes/kernel.bbclass                | 43 ++++++++++++++++------
 meta/classes/qemuboot.bbclass              |  2 +-
 meta/classes/rootfs-postcommands.bbclass   |  4 +-
 8 files changed, 63 insertions(+), 29 deletions(-)

diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index c00d2910be..19ef51eb05 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -100,10 +100,10 @@ python cve_check_write_rootfs_manifest () {
 
         if manifest_name and os.path.exists(manifest_name):
             manifest_link = os.path.join(deploy_dir, "%s.cve" % link_name)
-            # If we already have another manifest, update symlinks
+            # If we already have another manifest, update hardlinks
             if os.path.exists(os.path.realpath(manifest_link)):
                 os.remove(manifest_link)
-            os.symlink(os.path.basename(manifest_name), manifest_link)
+            os.link(manifest_name, manifest_link)
             bb.plain("Image CVE report stored in: %s" % manifest_name)
 }
 
diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass
index 5ab8f1b7aa..d5ba035f5a 100644
--- a/meta/classes/image-artifact-names.bbclass
+++ b/meta/classes/image-artifact-names.bbclass
@@ -5,8 +5,8 @@
 IMAGE_BASENAME = "${PN}"
 IMAGE_VERSION_SUFFIX = "-${DATETIME}"
 IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
-IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
-IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
+IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}"
+IMAGE_LINK_NAME = "${IMAGE_NAME}${IMAGE_VERSION_SUFFIX}"
 
 # IMAGE_NAME is the base name for everything produced when building images.
 # The actual image that contains the rootfs has an additional suffix (.rootfs
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 7fa4ff20bd..41a987798b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -589,14 +589,14 @@ python create_symlinks() {
         return
     for type in subimages:
         dst = os.path.join(deploy_dir, link_name + "." + type)
-        src = img_name + imgsuffix + type
-        if os.path.exists(os.path.join(deploy_dir, src)):
-            bb.note("Creating symlink: %s -> %s" % (dst, src))
+        src = os.path.join(deploy_dir, img_name + imgsuffix + type)
+        if os.path.exists(src):
+            bb.note("Creating hardlink: %s -> %s" % (dst, src))
             if os.path.islink(dst):
                 os.remove(dst)
-            os.symlink(src, dst)
+            os.link(src, dst)
         else:
-            bb.note("Skipping symlink, source does not exist: %s -> %s" % (dst, src))
+            bb.note("Skipping hardlink, source does not exist: %s -> %s" % (dst, src))
 }
 
 MULTILIBRE_ALLOW_REP =. "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|${sysconfdir}|${nonarch_base_libdir}/udev|/lib/modules/[^/]*/modules.*|"
diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass
index a65cdddb3e..529e0c565e 100644
--- a/meta/classes/kernel-artifact-names.bbclass
+++ b/meta/classes/kernel-artifact-names.bbclass
@@ -6,8 +6,8 @@
 
 inherit image-artifact-names
 
-KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
-KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
+KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}"
+KERNEL_ARTIFACT_LINK_NAME ?= "${KERNEL_ARTIFACT_NAME}${IMAGE_VERSION_SUFFIX}"
 
 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
diff --git a/meta/classes/kernel-devicetree.bbclass b/meta/classes/kernel-devicetree.bbclass
index 867b776aa7..2b3ab6ccb1 100644
--- a/meta/classes/kernel-devicetree.bbclass
+++ b/meta/classes/kernel-devicetree.bbclass
@@ -74,19 +74,32 @@ do_deploy_append() {
 		install -d ${DEPLOYDIR}
 		install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
 		ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext
-		ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
 		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
 			if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
 				cat ${D}/${KERNEL_IMAGEDEST}/$type \
 					${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
 					> ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
-				ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
-					${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
 				if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
 					cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
 						${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
 						>  ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
-					ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
+				fi
+			fi
+		done
+	done
+}
+do_deploy_links_append() {
+	for dtbf in ${KERNEL_DEVICETREE}; do
+		dtb=`normalize_dtb "$dtbf"`
+		dtb_ext=${dtb##*.}
+		dtb_base_name=`basename $dtb .$dtb_ext`
+		ln -vf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
+			if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
+				ln -vf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
+					${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+				if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
+					ln -vf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
 						${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
 				fi
 			fi
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index bf3674238f..0c82946fcc 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -681,17 +681,13 @@ kernel_do_deploy() {
 	fi
 
 	for imageType in ${KERNEL_IMAGETYPES} ; do
-		base_name=${imageType}-${KERNEL_IMAGE_NAME}
-		install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} $deployDir/${base_name}.bin
-		symlink_name=${imageType}-${KERNEL_IMAGE_LINK_NAME}
-		ln -sf ${base_name}.bin $deployDir/${symlink_name}.bin
-		ln -sf ${base_name}.bin $deployDir/${imageType}
+		install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} $deployDir/${imageType}-${KERNEL_IMAGE_NAME}.bin
+		ln -sf ${imageType}-${KERNEL_IMAGE_NAME}.bin $deployDir/${imageType}
 	done
 
 	if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
 		mkdir -p ${D}${root_prefix}/lib
 		tar -cvzf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz -C ${D}${root_prefix} lib
-		ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
 	fi
 
 	if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
@@ -699,10 +695,7 @@ kernel_do_deploy() {
 			if [ "$imageType" = "fitImage" ] ; then
 				continue
 			fi
-			initramfs_base_name=${imageType}-${INITRAMFS_NAME}
-			initramfs_symlink_name=${imageType}-${INITRAMFS_LINK_NAME}
-			install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs $deployDir/${initramfs_base_name}.bin
-			ln -sf ${initramfs_base_name}.bin $deployDir/${initramfs_symlink_name}.bin
+			install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs $deployDir/${imageType}-${INITRAMFS_NAME}.bin
 		done
 	fi
 }
@@ -712,7 +705,35 @@ do_deploy[prefuncs] += "package_get_auto_pr"
 
 addtask deploy after do_populate_sysroot do_packagedata
 
-EXPORT_FUNCTIONS do_deploy
+kernel_do_deploy_links() {
+	deployDir="${DEPLOY_DIR_IMAGE}"
+	if [ -n "${KERNEL_DEPLOYSUBDIR}" ]; then
+		deployDir="${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOYSUBDIR}"
+		mkdir "$deployDir"
+	fi
+
+	for imageType in ${KERNEL_IMAGETYPES} ; do
+		ln -vf $deployDir/${imageType}-${KERNEL_IMAGE_NAME}.bin $deployDir/${imageType}-${KERNEL_IMAGE_LINK_NAME}.bin
+	done
+
+	if [ ${MODULE_TARBALL_DEPLOY} = "1" -a -f $deployDir/modules-${MODULE_TARBALL_NAME}.tgz ] ; then
+		ln -vf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
+	fi
+
+	if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
+		for imageType in ${KERNEL_IMAGETYPES} ; do
+			if [ "$imageType" = "fitImage" ] ; then
+				continue
+			fi
+			ln -vf ${imageType}-${INITRAMFS_NAME}.bin ${imageType}-${INITRAMFS_LINK_NAME}.bin
+		done
+	fi
+}
+do_deploy_links[prefuncs] += "package_get_auto_pr"
+
+addtask deploy_links after do_deploy before do_build
+
+EXPORT_FUNCTIONS do_deploy do_deploy_links
 
 # Add using Device Tree support
 inherit kernel-devicetree
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 694798ad2b..fbcd1f8098 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -122,5 +122,5 @@ python do_write_qemuboot_conf() {
     if qemuboot_link != qemuboot:
         if os.path.lexists(qemuboot_link):
            os.remove(qemuboot_link)
-        os.symlink(os.path.basename(qemuboot), qemuboot_link)
+        os.link(qemuboot, qemuboot_link)
 }
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 91c824a535..90cb2a4d6c 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -266,7 +266,7 @@ python write_image_manifest () {
         manifest_link = deploy_dir + "/" + link_name + ".manifest"
         if os.path.lexists(manifest_link):
             os.remove(manifest_link)
-        os.symlink(os.path.basename(manifest_name), manifest_link)
+        os.link(manifest_name, manifest_link)
 }
 
 # Can be used to create /etc/timestamp during image construction to give a reasonably
@@ -334,7 +334,7 @@ python write_image_test_data() {
         testdata_link = os.path.join(deploy_dir, "%s.testdata.json" % link_name)
         if os.path.lexists(testdata_link):
             os.remove(testdata_link)
-        os.symlink(os.path.basename(testdata_name), testdata_link)
+        os.link(testdata_name, testdata_link)
 }
 write_image_test_data[vardepsexclude] += "TOPDIR"
 
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC][PATCH 3/6] kernel-artifact-names.bbclass: use PR instead of PKGR in KERNEL_ARTIFACT_NAME
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 1/6] image-artifact-names: introduce new bbclass and move some variables into it Martin Jansa
  2019-08-16 17:16 ` [RFC][PATCH 2/6] bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link Martin Jansa
@ 2019-08-16 17:16 ` Martin Jansa
  2019-08-16 17:17 ` [RFC][PATCH 4/6] kernel.bbclass: imageType without {} Martin Jansa
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:16 UTC (permalink / raw)
  To: openembedded-core

* otherwise PKGR seen in do_install, do_deploy and do_deploy_links will
  have different value in each of them (PRSERV will return different
  value of EXTENDPRAUTO because TASKHASH is different for each of these
  tasks and also cause unnecessary multiple EXTENDPRAUTO increments for
  each build).

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/kernel-artifact-names.bbclass | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass
index 529e0c565e..41ef6e884d 100644
--- a/meta/classes/kernel-artifact-names.bbclass
+++ b/meta/classes/kernel-artifact-names.bbclass
@@ -6,7 +6,12 @@
 
 inherit image-artifact-names
 
-KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}"
+# Intentionally use PR instead of PKGR, because EXTENDPRAUTO included
+# in PKGR will have different value for do_install/do_deploy/do_deploy_links
+# tasks with different TASKHASH, causing multiple EXTENDPRAUTO increments for
+# each kernel build and more importantly preventing do_deploy_links to
+# reference artifacts created do_deploy task
+KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PR}-${MACHINE}"
 KERNEL_ARTIFACT_LINK_NAME ?= "${KERNEL_ARTIFACT_NAME}${IMAGE_VERSION_SUFFIX}"
 
 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC][PATCH 4/6] kernel.bbclass: imageType without {}
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
                   ` (2 preceding siblings ...)
  2019-08-16 17:16 ` [RFC][PATCH 3/6] kernel-artifact-names.bbclass: use PR instead of PKGR in KERNEL_ARTIFACT_NAME Martin Jansa
@ 2019-08-16 17:17 ` Martin Jansa
  2019-08-16 17:17 ` [RFC][PATCH 5/6] kernel.bbclass: drop unnecessary package_get_auto_pr for do_install Martin Jansa
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:17 UTC (permalink / raw)
  To: openembedded-core

* just to make sure it looks like bash variable not bitbake variable in
  run.do_* scripts

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/kernel.bbclass | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 0c82946fcc..bda3af2950 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -371,9 +371,9 @@ kernel_do_install() {
 	install -d ${D}/${KERNEL_IMAGEDEST}
 	install -d ${D}/boot
 	for imageType in ${KERNEL_IMAGETYPES} ; do
-		install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION}
+		install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType ${D}/${KERNEL_IMAGEDEST}/$imageType-${KERNEL_VERSION}
 		if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then
-			ln -sf ${imageType}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${imageType}
+			ln -sf $imageType-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/$imageType
 		fi
 	done
 	install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
@@ -681,8 +681,8 @@ kernel_do_deploy() {
 	fi
 
 	for imageType in ${KERNEL_IMAGETYPES} ; do
-		install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} $deployDir/${imageType}-${KERNEL_IMAGE_NAME}.bin
-		ln -sf ${imageType}-${KERNEL_IMAGE_NAME}.bin $deployDir/${imageType}
+		install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$imageType-${KERNEL_IMAGE_NAME}.bin
+		ln -sf $imageType-${KERNEL_IMAGE_NAME}.bin $deployDir/$imageType
 	done
 
 	if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
@@ -695,7 +695,7 @@ kernel_do_deploy() {
 			if [ "$imageType" = "fitImage" ] ; then
 				continue
 			fi
-			install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs $deployDir/${imageType}-${INITRAMFS_NAME}.bin
+			install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.initramfs $deployDir/$imageType-${INITRAMFS_NAME}.bin
 		done
 	fi
 }
@@ -713,7 +713,7 @@ kernel_do_deploy_links() {
 	fi
 
 	for imageType in ${KERNEL_IMAGETYPES} ; do
-		ln -vf $deployDir/${imageType}-${KERNEL_IMAGE_NAME}.bin $deployDir/${imageType}-${KERNEL_IMAGE_LINK_NAME}.bin
+		ln -vf $deployDir/$imageType-${KERNEL_IMAGE_NAME}.bin $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}.bin
 	done
 
 	if [ ${MODULE_TARBALL_DEPLOY} = "1" -a -f $deployDir/modules-${MODULE_TARBALL_NAME}.tgz ] ; then
@@ -725,7 +725,7 @@ kernel_do_deploy_links() {
 			if [ "$imageType" = "fitImage" ] ; then
 				continue
 			fi
-			ln -vf ${imageType}-${INITRAMFS_NAME}.bin ${imageType}-${INITRAMFS_LINK_NAME}.bin
+			ln -vf $imageType-${INITRAMFS_NAME}.bin $imageType-${INITRAMFS_LINK_NAME}.bin
 		done
 	fi
 }
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC][PATCH 5/6] kernel.bbclass: drop unnecessary package_get_auto_pr for do_install
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
                   ` (3 preceding siblings ...)
  2019-08-16 17:17 ` [RFC][PATCH 4/6] kernel.bbclass: imageType without {} Martin Jansa
@ 2019-08-16 17:17 ` Martin Jansa
  2019-08-16 17:17 ` [RFC][PATCH 6/6] *-artifact-names: include version only in the artifact links Martin Jansa
  2019-08-16 17:32 ` ✗ patchtest: failure for YOCTO #12937 - Consistent naming scheme for deployed artifacts Patchwork
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:17 UTC (permalink / raw)
  To: openembedded-core

* do_install doesn't use whole "version" as do_deploy does, e.g.
  ${PKGE}-${PKGV}-${PKGR}-${MACHINE}
  it installs only the files with only ${KERNEL_VERSION} in filename or
  path, so it doesn't need expanded AUTOINC value in PKGV nor
  EXPANDPRAUTO in PKGR like do_deploy does

* it was introduced in
  http://git.openembedded.org/openembedded-core/commit/?id=1392f959cb8cd50b5a4492899e54f3ed68ef56d7
  but it's not clear why it was needed back then, but doesn't seem to be
  useful at all currently, only causes multiple EXTENDPRAUTO bumps every
  time different linux-yocto is being built.

* There are currently 4 EXTENDPRAUTO bumps during each build as shown in
  prserv:

  $ sqlite3 cache/prserv.sqlite3
    SQLite version 3.27.2 2019-02-25 16:06:06
    Enter ".help" for usage hints.
    sqlite> select * from PRMAIN_nohist where version like 'linux-yocto-dev%';
    linux-yocto-dev-4.19+gitAUTOINC+57b791cb9f_122d468967-r0|qemux86|20601304a6e4fa0b7ac13fa1262040c976c862d177077799dc15492215fa51df|0
    linux-yocto-dev-4.19+gitAUTOINC+57b791cb9f_122d468967-r0|qemux86|2820d331b7eba5165943bc016a1c274d42e7605e24244873b15cc1c9c6f657e2|1
    linux-yocto-dev-4.19+gitAUTOINC+57b791cb9f_122d468967-r0|qemux86|4f29da98c268aa5bf1c4767bb2bb157fc6077b1d76dfd434028b18bf3252e0c0|2
    linux-yocto-dev-4.19+gitAUTOINC+57b791cb9f_122d468967-r0|qemux86|23d8d17b23bc6db1dd7f0f30086f0ec6ade2b2180e787a78d89b6e43b8c4fad6|3
    linux-yocto-dev-5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0|qemux86|2a23d8783f794b3e79b438889ec60661ca635f9ec09d0519176a31d832377f1c|0
    linux-yocto-dev-5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0|qemux86|dafc2a636e7e18357b7efbf99981af45234105c3f46b056edfd2142d5a5d4993|1
    linux-yocto-dev-5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0|qemux86|09798369f303700fb8d42550d959e310a05fb4573b71646df51acc00d3a6fe89|2
    linux-yocto-dev-5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0|qemux86|dab07eb869034df28be59ae13914989ab88bdca5a9a9362ca96b4eb38180afd7|3

  the TASKHASHes correspond to do_install, do_package, do_deploy, do_deploy_links tasks:
  $ ls tmp-glibc/stamps/qemux86-webos-linux/linux-yocto-dev/5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0.do_*sigdata*{2a23d8783f794b3e79b438889ec60661ca635f9ec09d0519176a31d832377f1c,dafc2a636e7e18357b7efbf99981af45234105c3f46b056edfd2142d5a5d4993,09798369f303700fb8d42550d959e310a05fb4573b71646df51acc00d3a6fe89,dab07eb869034df28be59ae13914989ab88bdca5a9a9362ca96b4eb38180afd7}*
    tmp-glibc/stamps/qemux86-webos-linux/linux-yocto-dev/5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0.do_install.sigdata.2a23d8783f794b3e79b438889ec60661ca635f9ec09d0519176a31d832377f1c
    tmp-glibc/stamps/qemux86-webos-linux/linux-yocto-dev/5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0.do_package.sigdata.dafc2a636e7e18357b7efbf99981af45234105c3f46b056edfd2142d5a5d4993
    tmp-glibc/stamps/qemux86-webos-linux/linux-yocto-dev/5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0.do_deploy.sigdata.09798369f303700fb8d42550d959e310a05fb4573b71646df51acc00d3a6fe89
    tmp-glibc/stamps/qemux86-webos-linux/linux-yocto-dev/5.0~rc6+gitAUTOINC+e721b5d6ab_8b7d7ef74a-r0.do_deploy_links.sigdata.dab07eb869034df28be59ae13914989ab88bdca5a9a9362ca96b4eb38180afd7

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/kernel.bbclass | 1 -
 1 file changed, 1 deletion(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index bda3af2950..e41adcbebe 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -383,7 +383,6 @@ kernel_do_install() {
 	install -d ${D}${sysconfdir}/modules-load.d
 	install -d ${D}${sysconfdir}/modprobe.d
 }
-do_install[prefuncs] += "package_get_auto_pr"
 
 # Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile
 do_kernel_version_sanity_check() {
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC][PATCH 6/6] *-artifact-names: include version only in the artifact links
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
                   ` (4 preceding siblings ...)
  2019-08-16 17:17 ` [RFC][PATCH 5/6] kernel.bbclass: drop unnecessary package_get_auto_pr for do_install Martin Jansa
@ 2019-08-16 17:17 ` Martin Jansa
  2019-08-16 17:32 ` ✗ patchtest: failure for YOCTO #12937 - Consistent naming scheme for deployed artifacts Patchwork
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2019-08-16 17:17 UTC (permalink / raw)
  To: openembedded-core

* drop ${PKGE}-${PKGV}-${PR} from kernel artifacts names (this is the
  latest build) and add it only in hardlinks created in do_deploy_links
  so that we can use PKGR there again (because these links are generally
  used only by human operators and they don't have their own TASKHASH or
  the IMAGE_VERSION_SUFFIX might be set to some release name which they
  do understand

* this allows to drop package_get_auto_pr from kernel do_deploy as well,
  leaving only 2 EXTENDPRAUTO bumps for each kernel build (do_package
  and do_deploy_links, unfortunatelly these will still have different
  value, so if you're looking for the exact kernel image in deploy
  directory based on kernel image package version seen on the device the
  EXTENDPRAUTO part of PR will be different).

[YOCTO #12937]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/image-artifact-names.bbclass  | 2 +-
 meta/classes/kernel-artifact-names.bbclass | 7 +------
 meta/classes/kernel.bbclass                | 1 -
 3 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass
index d5ba035f5a..b23cef22ca 100644
--- a/meta/classes/image-artifact-names.bbclass
+++ b/meta/classes/image-artifact-names.bbclass
@@ -3,7 +3,7 @@
 ##################################################################
 
 IMAGE_BASENAME = "${PN}"
-IMAGE_VERSION_SUFFIX = "-${DATETIME}"
+IMAGE_VERSION_SUFFIX = "${PKGE}-${PKGV}-${PKGR}-${DATETIME}"
 IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
 IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}"
 IMAGE_LINK_NAME = "${IMAGE_NAME}${IMAGE_VERSION_SUFFIX}"
diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass
index 41ef6e884d..92e08297cc 100644
--- a/meta/classes/kernel-artifact-names.bbclass
+++ b/meta/classes/kernel-artifact-names.bbclass
@@ -6,12 +6,7 @@
 
 inherit image-artifact-names
 
-# Intentionally use PR instead of PKGR, because EXTENDPRAUTO included
-# in PKGR will have different value for do_install/do_deploy/do_deploy_links
-# tasks with different TASKHASH, causing multiple EXTENDPRAUTO increments for
-# each kernel build and more importantly preventing do_deploy_links to
-# reference artifacts created do_deploy task
-KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PR}-${MACHINE}"
+KERNEL_ARTIFACT_NAME ?= "${MACHINE}"
 KERNEL_ARTIFACT_LINK_NAME ?= "${KERNEL_ARTIFACT_NAME}${IMAGE_VERSION_SUFFIX}"
 
 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index e41adcbebe..3b8bfd2991 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -700,7 +700,6 @@ kernel_do_deploy() {
 }
 do_deploy[cleandirs] = "${DEPLOYDIR}"
 do_deploy[dirs] = "${DEPLOYDIR} ${B}"
-do_deploy[prefuncs] += "package_get_auto_pr"
 
 addtask deploy after do_populate_sysroot do_packagedata
 
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* ✗ patchtest: failure for YOCTO #12937 - Consistent naming scheme for deployed artifacts
  2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
                   ` (5 preceding siblings ...)
  2019-08-16 17:17 ` [RFC][PATCH 6/6] *-artifact-names: include version only in the artifact links Martin Jansa
@ 2019-08-16 17:32 ` Patchwork
  6 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-08-16 17:32 UTC (permalink / raw)
  To: Martin Jansa; +Cc: openembedded-core

== Series Details ==

Series: YOCTO #12937 - Consistent naming scheme for deployed artifacts
Revision: 1
URL   : https://patchwork.openembedded.org/series/19321/
State : failure

== Summary ==


Thank you for submitting this patch series to OpenEmbedded Core. This is
an automated response. Several tests have been executed on the proposed
series by patchtest resulting in the following failures:



* Patch            [RFC, 2/6] bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link
 Issue             Commit shortlog is too long [test_shortlog_length] 
  Suggested fix    Edit shortlog so that it is 90 characters or less (currently 119 characters)



If you believe any of these test results are incorrect, please reply to the
mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
Otherwise we would appreciate you correcting the issues and submitting a new
version of the patchset if applicable. Please ensure you add/increment the
version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
[PATCH v3] -> ...).

---
Guidelines:     https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-08-16 17:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-16 17:16 [RFC][PATCH 0/6] YOCTO #12937 - Consistent naming scheme for deployed artifacts Martin Jansa
2019-08-16 17:16 ` [RFC][PATCH 1/6] image-artifact-names: introduce new bbclass and move some variables into it Martin Jansa
2019-08-16 17:16 ` [RFC][PATCH 2/6] bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link Martin Jansa
2019-08-16 17:16 ` [RFC][PATCH 3/6] kernel-artifact-names.bbclass: use PR instead of PKGR in KERNEL_ARTIFACT_NAME Martin Jansa
2019-08-16 17:17 ` [RFC][PATCH 4/6] kernel.bbclass: imageType without {} Martin Jansa
2019-08-16 17:17 ` [RFC][PATCH 5/6] kernel.bbclass: drop unnecessary package_get_auto_pr for do_install Martin Jansa
2019-08-16 17:17 ` [RFC][PATCH 6/6] *-artifact-names: include version only in the artifact links Martin Jansa
2019-08-16 17:32 ` ✗ patchtest: failure for YOCTO #12937 - Consistent naming scheme for deployed artifacts Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.