Commit Graph

6930 Commits

Author SHA1 Message Date
Robert Yang
b608cf6120 image.bbclass: deltask do_packagedata
This can fix a do_package error when compile with meta-secure-core layer:
http://layers.openembedded.org/layerindex/branch/master/layer/meta-secure-core/

$ bitbake kernel-initramfs
[snip]
WARNING:kernel-initramfs-1.0-r0 do_package: Manifest
build/tmp-glibc/sstate-control/manifest-x86_64_x86_64-nativesdk-secure-core-image-initramfs.packagedata
not found in intel_x86_64 corei7-64 core2-64 x86_64 allarch x86_64_x86_64-nativesdk (variant '')?
[snip]

This is because kernel-initramfs wants to pack an initramfs image into
kernel-initramfs.rpm which adds a dependency in kernel-initramfs.bb to do this:

d.appendVarFlag('do_install', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')

This causes kernel-initramfs' do_package depends on
${INITRAMFS_IMAGE}:do_image_complete's do_packagedata, then we will get the
error. Delete do_packagedata as other do_package relelated tasks for the image
recipe will fix the error.

RP: There is a side effect from this change which means that image
tasks will no longer run their fetch/unpack/configure/compile/install
tasks as these become detached from the dependency chain. The standard
tasks are noexec or deleted anyway already so this shouldn't be a
significant change.

(From OE-Core rev: 0eb95212a7e6b6bdc1243094072dea432cb48f0f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-15 14:49:09 +00:00
Charlie Davies
5ec16c88fc multilib_global: handle REQUIRED_VERSION
Add logic to multilib_global.bbclass to handle new REQUIRED_VERSION
variable.

Fixes [YOCTO #10096]

(From OE-Core rev: 05ba2df8e565589cf7b0b7cedcb96c7fdf97298b)

Signed-off-by: Charlie Davies <charles.davies@whitetree.xyz>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-15 14:49:09 +00:00
Khem Raj
603e14dc68 go-dep: Remove
go-dep was an effort for dependency management before go modules, which
since 2020 has been deprecated in favor of go modules. Since its not
developed any longer and go mdules is officially supported, this should
be retired from OE-core as well.

(From OE-Core rev: 1e7ed44d87034446f1d07692c9378c3b0a8a9dd3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Otavio Salvador <otavio.salvador@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-15 14:37:40 +00:00
Chen Qi
f00dfafbaf populate_sdk_ext: record METADATA_REVISION
As we delete the .git/ directory, it's impossible to get METADATA_REVISION
inside eSDK. Because of this, we meet the following warning when installing eSDK.

  WARNING: The base-files:do_install sig is computed to be 16b9d96148d45de183cc94667aae016ec7d102d48255456381e718cd4bbd0aa0, \
  but the sig is locked to 6eb0dcaed504282becee94662481d79264db920dee1f7deda18230133fff8f36 in SIGGEN_LOCKEDSIGS_t-qemux86-64

So we record METADATA_REVISION in eSDK generation time to fix this problem.

(From OE-Core rev: ff2ad51b801fd62e2abbc573ba2c9ee8fdc7e012)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-14 16:33:59 +00:00
Peter Kjellerstedt
28648ee17f license.bbclass: Improve parsing time when INCOMPATIBLE_LICENSES is big
The commit 08cbf1748 (licenses: Update INCOMPATIBLE_LICENSE for
'or-later' handling) increased the parsing time considerably if there
are many licenses in INCOMPATIBLE_LICENSE. Reorganize the code to get
almost all the time back.

(From OE-Core rev: dd2532279fb239e7f61396898a8aa44ee5104d1d)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-14 16:33:59 +00:00
Khem Raj
9d3f6fe2d2 cmake.bbclass: Create cmake arch mapping for ppc64le
(From OE-Core rev: 698ece14e22d0efd9074493ef443b2cce5625d51)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-14 16:33:59 +00:00
Peter Kjellerstedt
cfd897e213 metadata_scm.bbclass: Use immediate expansion for the METADATA_* variables
Define METADATA_BRANCH and METADATA_REVISION using immediate expansion.
This avoids running `git rev-parse HEAD` multiple times during recipe
parsing.

(From OE-Core rev: 34e1841ec14c545c73fbe03a9f946d43d65ab326)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-14 16:33:59 +00:00
Kai Kang
80b522be12 toolchain-scripts.bbclass: customize prompt string for SDKs
Introduce a new variable SDK_PS1 to customize prompt string for SDKs
when source script environment-setup-script. If variable SDK_PS1 is not
set or empty, nothing changed. Otherwise new PS1 with the value of
SDK_PS1 is used after source the sdk environment file.

(From OE-Core rev: 81ed52f245c18c50e8df51fce1f62906cd4ddd05)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-11 15:24:13 +00:00
Alejandro Hernandez Samaniego
cab7cdc16e sanity.bbclass: Add az fetcher to accepted URI protocols for mirrors sanity
(From OE-Core rev: 1d19b16846a70b1180647e85f124e314002a4b83)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-11 14:05:58 +00:00
Jon Mason
16d1669ff9 runqemu: correct forcing of ttyS0
Some platforms do not use ttyS* for their serial consoles (e.g., qemuarm
and qemuarm64).  The hardcoding of this can cause issues.  Modify
runqemu to use the serial consoles defined in SERIAL_CONSOLES instead of
hardcoding.

(From OE-Core rev: 9dea4cd2f9f46ab3a75562639a22d8f56b4d26af)

Signed-off-by: Jon Mason <jon.mason@arm.com>
Change-Id: I746d56de5669c955c5e29d3ded70c0a4d3171f17
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-11 14:00:36 +00:00
Jon Mason
bd0ada8994 runqemu: add QB_GRAPHICS
Add a new runqemu field for VGA devices.  Currently, these are being set
in QB_OPT_APPEND, which can make them difficult to override if importing
the config file into another one.

(From OE-Core rev: 695c98b6522be4373806c154a2999eaeef205556)

Signed-off-by: Jon Mason <jon.mason@arm.com>
Change-Id: I8cb9527954c5b06c083c42fe2466cb3338584b7d
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-11 14:00:36 +00:00
Sakib Sajal
1d7da7a6fa buildstats.bbclass: improve timeout handling
The subprocess that runs the commands periodically
times out prematurely even when there is sufficient
time available within the given interval for the
commands to run.

This change improves timeout handling and give all the
commands equal time to run.

(From OE-Core rev: 74e5c438025ed42cfacb993261dc664c3b7959a8)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-11 14:00:36 +00:00
Ross Burton
81adf49416 insane: don't check for a warning string that is never output
insane has checks that the compiler isn't printing "CROSS COMPILE
Badness" during configure/compile/install, but this message hasn't been
output by GCC since 2010 (23f522e7).

The current warning is "include location [...] is unsafe for cross-
compilation" and as that is a proper GCC warning, we can make it fatal
in follow-up patches.

(From OE-Core rev: a67e9ebfd5b8002fd4a7d8d27ff0d997817f76e1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-10 10:30:39 +00:00
Alexander Kanavin
d8b2c8cee9 rootfs-postcommands: correctly set systemd target for weston images
Otherwise, weston wouldn't actually start when systemd is in use.

(From OE-Core rev: 6b6287b7e5190d1af2e3aefddb2f72a8d0d79968)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-06 22:39:04 +00:00
Alexander Kanavin
eab334ade5 core-image.bbclass: add a weston IMAGE_FEATURE, similar to x11-base
(From OE-Core rev: 5dd4bf88f59d3dddb5368163baba02f053eec502)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-06 22:39:04 +00:00
Alexander Kanavin
02f2ecabc3 meson: update 0.56.2 -> 0.57.1
Replace hacky 0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch
with entries in meson.cross.

Rest of the patches are refreshed.

(From OE-Core rev: 85b4aea551ac4a0f47f916957dd9707c81813a2b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02 14:15:33 +00:00
Richard Purdie
83b7f9f959 bitbake.conf/image: Move image specific PSEUDO_IGNORE_PATHS to image class
This path is image specific so we can move to the image class
definition of PSEUDO_IGNORE_PATHS.

(From OE-Core rev: 66a8ca0f206434e0b301a8fdc90f062750d6d118)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27 22:40:41 +00:00
Richard Purdie
9ba9f879e1 populate_sdk: Add directories to PSEUDO_IGNORE_PATHS
Some paths used in sdk construction shouldn't be tracked under pseudo
so list these.

(From OE-Core rev: 21621e09162ff9e8014a1cfba78d0f2c3746202a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27 22:40:41 +00:00
Richard Purdie
6066d67c21 image: Add directories to PSEUDO_IGNORE_PATHS
Some paths used in image construction shouldn't be tracked under pseudo
so list these.

(From OE-Core rev: 9463be2292b942a1072eea88881b9644e55aadb9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27 22:40:41 +00:00
Mike Crowe
0098ef07d9 externalsrc: Pass through npmsw URIs in SRC_URI
NPM shrinkwrap files need to stay in SRC_URI even when using
externalsrc so that npm_do_fetch can run to fetch the required
dependencies.

(From OE-Core rev: e889cbecf9a1731b199e57d79a14e574398586bb)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26 15:21:21 +00:00
Richard Purdie
61d9c0b77b package/package_rpm: Disable font_provides configuration for reproducibilty
The host may or may not have fc-cache which is used for find provides
information by rpmdeps. This lead to non-deterministic build output.
Disable the font provides code so we have deterministic builds,
we have nothing using/relying on it at this point.

Need to disable this in both the rpmdeps code and in package_rpm
itself although the latter shouldn't be being used.

(From OE-Core rev: 1c0cd8012a96fd4d9caf33c6de5fd39cea6db55d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26 15:21:20 +00:00
Khem Raj
b1eea8178a go: Enable CGO and pie buildmode on rv64
go1.16 has added CGO support for riscv64 arch

(From OE-Core rev: 8e078238312948e8c7b09c66ba7a186512e995d3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26 15:21:20 +00:00
Khem Raj
510406ddf5 goarch: Use softfloat instead of 387 for 386 goarch
387 has been removed from go 1.16 see [1]

[1] https://github.com/golang/go/issues/40255

(From OE-Core rev: fd549c139f534f28974c86a4e4c7acf6f5c40a79)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26 15:21:20 +00:00
Richard Purdie
c4baddc0d0 reproducible: Improve SOURCE_DATE_EPOCH_FALLBACK handling
Ensure the fallback value if used is written to the SDE file
and hence stored in sstate, reducing any confusion within the
code over '0' values.

Bump the HASHEQUIV_VERSION since we've had a ton of trouble
with ensuring this rolls out correctly on the autobuilder so
others may too, take a clean slate for it.

(From OE-Core rev: 53ffffa32b76330835287dfc05d4e4796841af08)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-24 00:19:38 +00:00
Jan-Simon Möller
7e9c2f33d4 reproducible_builds: SOURCE_DATE_EPOCH should not be 0
A SOURCE_DATE_EPOCH of 0 might be misinterpreted by namely rpm as no SDE.

 e.g.:
 char *srcdate = getenv(SOURCE_DATE_EPOCH);
 if (srcdate && rpmExpandNumeric(%{?clamp_mtime_to_source_date_epoch}))

Solve this by:
- providing a SOURCE_DATE_EPOCH_FALLBACK variable != 0
- changing defaults to use it
- using SOURCE_DATE_EPOCH_FALLBACK also when reading 0 out of sstate-cache

(From OE-Core rev: 9a1dde74e794362399193dc3f81c9685a83d0776)

Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-24 00:19:38 +00:00
Milan Shah
8b299a62c5 report-error.bbclass: Add layer and bitbake version info to error report
Instead of just providing local.conf info, add layer names and their
revisions with bitbake version information into error report
makes it easier to understand and reproduce failed build.

[YOCTO #9700]

(From OE-Core rev: a5afd7b1857c0012ab6e3d8bbafa67a96ff9e9e0)

Signed-off-by: Milan Shah <mshah@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23 22:35:01 +00:00
Klaus Heinrich Kiwi
cfc0e21b10 kernel-fitimage: Don't use unit addresses on FIT
Das U-Boot 2021.4-rc1 has the following commit:

    commit 3f04db891a353f4b127ed57279279f851c6b4917
    Author: Simon Glass <sjg@chromium.org>
    Date:   Mon Feb 15 17:08:12 2021 -0700

        image: Check for unit addresses in FITs

        Using unit addresses in a FIT is a security risk. Add a check for
        this and disallow it.

        CVE-2021-27138

Adjust the kernel-fitimage.bbclass accordingly to not use unit
addresses. This changte is required before we can bump U-Boot to 2021.4.

(From OE-Core rev: 6047be9f8f0f5d616fda11d83b682c1b8aeaa0ae)

Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23 22:35:01 +00:00
Khem Raj
47a2fffca4 goarch.bbclass: Fix ppc64le detection
ppc64le should go above ppc64 in checks otherwise it gets subsumed
wrongly with ppc64 check

(From OE-Core rev: 126ecfe0d2ce65b2d2cf5598612e60bad7b3302e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23 22:35:01 +00:00
Khem Raj
1963444d58 linuxloader: Deal with little-endian ppc64 ldso name
On ppc64le 'le' should be appended to ldso name

(From OE-Core rev: dd221cdc8630a5adba1f87ff7a237021e9a95548)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23 22:35:00 +00:00
Richard Purdie
3266d1ee1c license_image: Don't canonicalise INCOMPATIBLE_LICENSE
The code internally correctly handles canonicalisation of these license
fields, we shouldn't call it manually. The issue is that the fields can
contain wildcards and GPLv3* means something quite different to GPLv3-only*.

(From OE-Core rev: 957f48ce78ad1865653e8b8f25909a65ba8fc535)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-21 22:01:28 +00:00
Richard Purdie
55a3da9c0d licenses: Update INCOMPATIBLE_LICENSE for 'or-later' handling
Where a user adds "GPLv3" to INCOMPATIBLE_LICENSE they almost certainly
mean both GPLv3-only and GPLv3-or-later. Update the code to handle this
correctly.

(From OE-Core rev: 08cbf17485b6443a6118acfac8200eb6c61445a3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-21 22:01:28 +00:00
Richard Purdie
6638a7289e licenses: Fix canonical license for 'or-later' handling
GPLv2 and GPLv2+ are two difference licenses with different meanings
and we can't just pretend they're the same thing. Change the code
to treat them separately.

(From OE-Core rev: d1baf74ac92fe0c8c32dff101fd77d77f70fd583)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-21 22:01:28 +00:00
Richard Purdie
87ed5dab07 recipes: Update common-licenses references to match new names
The licenses were renamed to match their SPDX names, fix the
references in LIC_FILES_CHKSUM in OE-Core.

(From OE-Core rev: 9af48917cfe583d2db9e1e088c7e396fcf638949)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-21 22:01:28 +00:00
Jan-Simon Möller
0ccf53d8e1 package_rpm: Enable use_source_date_epoch_as_buildtime in package_rpm class
Adding --define 'use_source_date_epoch_as_buildtime 1' to rpmbuild
ensure that the rpm header does have a consistent BUILDTIME tag.

This allows the rpms to be built reproducibly.

(From OE-Core rev: f16721df6b3d0d3e681d9a1b3393417bd62b6275)

Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-19 11:17:11 +00:00
Konrad Weihmann
c640057eda cmake: set CMAKE_EXPORT_NO_PACKAGE_REGISTRY
if a cmake file uses export(PACKAGE) command it creates a
folder ~/.cmake/package/<name> in the current user's
home-dir.
fix this host contermination by setting CMAKE_EXPORT_NO_PACKAGE_REGISTRY
to ON by default, which makes the export() command do nothing

(From OE-Core rev: fc7bd81cfe52c35fe26d146c1def8a7493bd2e25)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-19 11:17:11 +00:00
Anthony Bagwell
7cf4daf53e kernel-fitimage: fix dtbo support for fit images
8a2f4e143 added support for u-boot boot script but missed adding the
extra parameter to fitimage_emit_section_config on the dtbo branch

(From OE-Core rev: 22bac8aea0d5d28cc5a3bf20edf638225cce2f88)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-19 11:17:11 +00:00
Alejandro Hernandez Samaniego
cc0e18a7f7 sstate.bbclass: Split sstate summary into locally and network found artifacts
Modify sstate class to add extra output, differentiating
between artifacts found locally and those found over the network.

(From OE-Core rev: f017a2f677fa289c36b0e56ce480f69d7674ca11)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-19 11:17:11 +00:00
Ross Burton
27e9c6871a rootfs_deb: handle aarch64 SDK_ARCH
This class maps from OE architectures to dpkg architectures, but wasn't
handling aarch64 correctly.

(From OE-Core rev: 315fe8ab3b5bb8a709be98cd8998d4525fbe8725)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-18 23:40:01 +00:00
Richard Purdie
2c0511b2a1 distutils3-base: Fix after native packaging changes
Now that native recipes have PACKAGES, this DEPENDS construct doesn't
work. It applies to target and nativesdk recipes so adjust accordingly.

(From OE-Core rev: 5d459ba1c13c89b246a0f8d743027e1de93da910)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-17 11:01:17 +00:00
Richard Purdie
522607e704 classes: Drop now unneeded umask flags
Now that 022 is the default in BB_DEFAULT_UMASK in bitbake.conf, we
don't need any of these task flags, clean up.

(From OE-Core rev: 816fca781943a7dbf40391d9db34c7bf12711962)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-16 11:28:17 +00:00
Yoann Congal
f13c22358a npm.bbclass: avoid building target nodejs for native npm recipes
The current recipe unconditionally RDEPENDS on nodejs (the target one).
When building on the "-native recipe" of "BBCLASSEXTEND native" recipe,
the target nodejs is unnecessarily built.

This patch fixes this by only RDEPENDS on nodejs when building for the target.

(From OE-Core rev: 92a9a86df9e3bcffb13d2f8b5dcbe7822170f734)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-12 23:32:16 +00:00
akuster
73befa8f41 cve-check: add include/exclude layers
There are times when exluding or including a layer
may be desired. This provide the framwork for that via
two variables. The default is all layers in bblayers.

CVE_CHECK_LAYER_INCLUDELIST
CVE_CHECK_LAYER_EXCLUDELIST

(From OE-Core rev: 5fdde65ef58b4c1048839e4f9462b34bab36fc22)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-09 08:56:10 +00:00
akuster
29e280f7ee cve-check.bbclass: add layer to cve log
Lets include whcih layer a package belongs to and
add it to the cve logs

(From OE-Core rev: 00d965bb42dc427749a4c3985af56ceffff80457)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-09 08:56:10 +00:00
Ross Burton
20f926f086 autotools: no need to depend on gnu-config
autoconf 2.70 onwards installs its own copies of config.guess/config.sub
which we keep up to date when autoconf builds, so there's no need to
depend on gnu-config for those files.

(From OE-Core rev: 332145c34b4aac2e74a713070af25414e1fd8c9c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-07 22:26:42 +00:00
Ross Burton
bea9c8b988 autotools: remove intltoolize logic
autoconf 2.70 now invokes intltoolize, so there's no need to do it again
in this class.

(From OE-Core rev: e24ac6605aeaae42475d3f753dc9452093af5a14)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-07 22:26:42 +00:00
Ross Burton
66dab7e17b autotools: disable gtkdocize for now
This breaks kmod, so for now we can continue to do it ourselves.

(From OE-Core rev: 628e0263e3bb768ea771d0e0260fdb18e16c871e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-07 22:26:42 +00:00
Ross Burton
1dbef3ce98 autotools: don't warn about obsolete usage
New autoconf warns about obsolete macro usage, but there is quite
a lot of obsolete usage in the wild which isn't really in our problem.

(From OE-Core rev: a152b5a37aec247b0540b82ad6c9bdc20c532d21)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-07 22:26:42 +00:00
Mike Looijmans
2fcbd0f115 license_image.bbclass: Don't attempt to symlink to the same file
Sometimes (that is, in all my builds) the lic_manifest_dir and
lic_manifest_symlink_dir end up pointing to the same file, resulting
in an error like this:
  Exception: FileExistsError: [Errno 17] File exists: '/.../tmp-glibc/deploy/licenses/my-image-tdkz15' -> '/.../tmp-glibc/deploy/licenses/my-image-tdkz15'

First check to see if this is the case before attempting to create
the link.

(From OE-Core rev: 50f83fb542065eaf7a20ac07b63ae06441ada180)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-06 09:03:00 +00:00
Martin Jansa
c0ec68956c image_types.bbclass: tar: use posix format instead of gnu
* gnu isn't compatible with  --xattrs used e.g. here:
d3a832f66e/classes/image_types_ostree.bbclass (L16)
causing do_image_tar failing with:

| tar: --xattrs can be used only on POSIX archives
| Try 'tar --help' or 'tar --usage' for more information.

* https://www.gnu.org/software/tar/manual/html_chapter/tar_8.html
  says about posix format:

  This is the most flexible and feature-rich format.
  It does not impose any restrictions on file sizes or file name lengths.
  This format is quite recent, so not all tar implementations are able to handle it properly.
  However, this format is designed in such a way that any tar implementation able to read `ustar'
  archives will be able to read most `posix' archives as well, with the only exception that any
  additional information (such as long file names etc.) will in such case be extracted as plain
  text files along with the files it refers to.

  This archive format will be the default format for future versions of GNU tar.

  and:

  The default format for GNU tar is defined at compilation time.
  You may check it by running tar --help, and examining the last lines of its output.
  Usually, GNU tar is configured to create archives in `gnu' format, however, future version will switch to `posix'.

* I've compared tar on centos7 and ubuntu-18.04:

bash-4.2$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

bash-4.2$ tar --version
tar (GNU tar) 1.26
...

bash-4.2$ tar --help | tail -n 5
*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt
--rsh-command=/usr/bin/ssh
...

bitbake@e0ee76f81c2f:/$ grep VERSION /etc/os-release
VERSION="18.04.5 LTS (Bionic Beaver)"
VERSION_ID="18.04"
VERSION_CODENAME=bionic

bitbake@e0ee76f81c2f:/$ tar --version
tar (GNU tar) 1.29
...

bitbake@e0ee76f81c2f:/$ tar --help | tail -n 5
...
*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/lib/tar/rmt
--rsh-command=/usr/bin/rsh

Both support posix format (as pax POSIX 1003.1-2001). But centos7 version is
already too old anyway, because it doesn't support --sort=name used since:
https://git.openembedded.org/openembedded-core/commit/?id=4fa68626bbcfd9795577e1426c27d00f4d9d1c17
and
https://git.openembedded.org/openembedded-core/commit/?id=f19e43dec63a86c200e04ba14393583588550380
says that 1.28 is the minium version now and
https://git.openembedded.org/openembedded-core/commit/?id=7a66434cf11b7f051699b774e4fccd6738351368
recommends to use install-buildtools for hosts with tar < 1.28

On the other side latest tumbleweed from:
https://hub.docker.com/r/opensuse/tumbleweed
with tar-1.33 alredy defaults to posix format:

b99dbb3d86dd:/ # head -n 3 /etc/os-release
NAME="openSUSE Tumbleweed"
ID="opensuse-tumbleweed"

b99dbb3d86dd:/ # tar --version
tar (GNU tar) 1.33
...

b99dbb3d86dd:/ # tar --help | tail -n 3
*This* tar defaults to:
--format=posix -f- -b20 --quoting-style=escape --rmt-command=/usr/bin/rmt
--rsh-command=/usr/bin/ssh

I've packaged some sample rootfs directory with both tars and the result is
identical (with --format=gnu as well as --format=posix).

with ubuntu:
tar --sort=name --format=gnu --numeric-owner -cf rootfs.ubuntu.gnu.tar -C rootfs .
tar --xattrs --xattrs-include=* --sort=name --format=posix --numeric-owner -cf rootfs.ubuntu.posix.tar -C rootfs .
tumbleweed:
tar --sort=name --format=gnu --numeric-owner -cf rootfs.tumbleweed.gnu.tar -C rootfs .
tar --xattrs --xattrs-include=* --sort=name --format=posix --numeric-owner -cf rootfs.tumbleweed.posix.tar -C rootfs .
centos7 (without --sort=name):
tar --format=gnu --numeric-owner -cf rootfs.centos7.gnu.tar -C rootfs .
tar --xattrs --xattrs-include=* --format=posix --numeric-owner -cf rootfs.centos7.posix.tar -C rootfs .

size is identical:
-rw-r--r-- 1 mjansa mjansa 2487480320 Feb  5 09:19 rootfs.ubuntu.gnu.tar
-rw-r--r-- 1 mjansa mjansa 2487480320 Feb  5 10:17 rootfs.centos7.gnu.tar
-rw-r--r-- 1 mjansa mjansa 2487480320 Feb  5 10:26 rootfs.tumbleweed.gnu.tar
-rw-r--r-- 1 mjansa mjansa 2579875840 Feb  5 10:15 rootfs.ubuntu.posix.tar
-rw-r--r-- 1 mjansa mjansa 2579875840 Feb  5 10:16 rootfs.centos7.posix.tar
-rw-r--r-- 1 mjansa mjansa 2579875840 Feb  5 10:26 rootfs.tumbleweed.posix.tar

but md5s aren't:
5e3880283379dd773ac054e20562fdea  rootfs.centos7.gnu.tar
abeaf992c780aa780a27be01365d26f5  rootfs.centos7.posix.tar
0c6ee59d87ab56583293262de110bca4  rootfs.tumbleweed.gnu.tar
1555bc7276eaba924bf82a13a010fd6d  rootfs.tumbleweed.posix.tar
553d802bba351e273191bd5b2a621b66  rootfs.ubuntu.gnu.tar
b6d7b43b30174686f6625ba3c7aefdc6  rootfs.ubuntu.posix.tar

diffoscope shows some differences when using gnu format:

$ diffoscope rootfs.tumbleweed.gnu.tar rootfs.ubuntu.gnu.tar
...
-00239890: 3030 3000 3030 3737 3637 0020 4b00 0000  000.007767. K...
+00239890: 3030 3000 3031 3135 3737 0020 4b00 0000  000.011577. K...
...
-00239900: 0075 7374 6172 2020 0000 0000 0000 0000  .ustar  ........
+00239900: 0075 7374 6172 2020 0072 6f6f 7400 0000  .ustar  .root...
...
-00239920: 0000 0000 0000 0000 0000 0000 0000 0000  ................
+00239920: 0000 0000 0000 0000 0072 6f6f 7400 0000  .........root...

with posix format there are also some differences shown by diffoscope:

$ diffoscope rootfs.tumbleweed.posix.tar rootfs.ubuntu.posix.tar
 016a4c00: 2e2f 7573 722f 6269 6e2f 5061 7848 6561  ./usr/bin/PaxHea
-016a4c10: 6465 7273 2f63 6861 7474 722e 6532 6673  ders/chattr.e2fs
-016a4c20: 7072 6f67 7300 0000 0000 0000 0000 0000  progs...........
+016a4c10: 6465 7273 2e32 322f 6368 6174 7472 2e65  ders.22/chattr.e
+016a4c20: 3266 7370 726f 6773 0000 0000 0000 0000  2fsprogs........
...
 03937000: 2e2f 7573 722f 6269 6e2f 5061 7848 6561  ./usr/bin/PaxHea
-03937010: 6465 7273 2f63 6f6e 7461 696e 6572 642d  ders/containerd-
-03937020: 6374 7200 0000 0000 0000 0000 0000 0000  ctr.............
+03937010: 6465 7273 2e32 322f 636f 6e74 6169 6e65  ders.22/containe
+03937020: 7264 2d63 7472 0000 0000 0000 0000 0000  rd-ctr..........

so cannot really say which format is better for reproducible tar
archives from different distros, but posix at least supports xattrs
and it's the format for future.

(From OE-Core rev: 3ecea58f2a3382d9f4b410d6ad7089111334cb6f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-06 09:03:00 +00:00
Richard Purdie
c2f2963623 package: Ensure do_packagedata is cleaned correctly
In an earlier commit, libprocps was split into a separate package leaving
no shlibs in the main package. A bug was seen where igt-gpu-tools wouldn't
build correctly in some cases as it thought the librbary was still in the
main package, throwing qa errors as a result.

The issue was due to an extra file being left in the sstate output of
the do_packagedata task in the shlibs2/ folder which contained the bad
shlibs information.

The reason for this was that the temporary directory used in this
task wasn't being cleaned so files which were deleted were not handled
correctly. Add a missing cleandirs entry to fix this.

(From OE-Core rev: 50f17d0a655a3a2556f9fcad67259101c2814a36)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-03 21:45:49 +00:00