summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
...
* go-dep: RemoveKhem Raj2021-03-151-8/+0
| | | | | | | | | | | | | 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>
* populate_sdk_ext: record METADATA_REVISIONChen Qi2021-03-141-0/+3
| | | | | | | | | | | | | | | 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>
* license.bbclass: Improve parsing time when INCOMPATIBLE_LICENSES is bigPeter Kjellerstedt2021-03-141-5/+4
| | | | | | | | | | | | 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>
* cmake.bbclass: Create cmake arch mapping for ppc64leKhem Raj2021-03-141-0/+2
| | | | | | | (From OE-Core rev: 698ece14e22d0efd9074493ef443b2cce5625d51) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* metadata_scm.bbclass: Use immediate expansion for the METADATA_* variablesPeter Kjellerstedt2021-03-141-5/+5
| | | | | | | | | | | 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>
* toolchain-scripts.bbclass: customize prompt string for SDKsKai Kang2021-03-111-0/+3
| | | | | | | | | | | | 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>
* sanity.bbclass: Add az fetcher to accepted URI protocols for mirrors sanityAlejandro Hernandez Samaniego2021-03-111-1/+1
| | | | | | | (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>
* runqemu: correct forcing of ttyS0Jon Mason2021-03-111-1/+1
| | | | | | | | | | | | | 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>
* runqemu: add QB_GRAPHICSJon Mason2021-03-111-0/+4
| | | | | | | | | | | | 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>
* buildstats.bbclass: improve timeout handlingSakib Sajal2021-03-111-7/+35
| | | | | | | | | | | | | | | 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>
* insane: don't check for a warning string that is never outputRoss Burton2021-03-101-21/+1
| | | | | | | | | | | | | | | 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>
* rootfs-postcommands: correctly set systemd target for weston imagesAlexander Kanavin2021-03-061-1/+1
| | | | | | | | | 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>
* core-image.bbclass: add a weston IMAGE_FEATURE, similar to x11-baseAlexander Kanavin2021-03-061-0/+2
| | | | | | | (From OE-Core rev: 5dd4bf88f59d3dddb5368163baba02f053eec502) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meson: update 0.56.2 -> 0.57.1Alexander Kanavin2021-03-021-0/+2
| | | | | | | | | | | | 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>
* bitbake.conf/image: Move image specific PSEUDO_IGNORE_PATHS to image classRichard Purdie2021-02-271-1/+1
| | | | | | | | | 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>
* populate_sdk: Add directories to PSEUDO_IGNORE_PATHSRichard Purdie2021-02-271-1/+1
| | | | | | | | | 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>
* image: Add directories to PSEUDO_IGNORE_PATHSRichard Purdie2021-02-271-0/+2
| | | | | | | | | 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>
* externalsrc: Pass through npmsw URIs in SRC_URIMike Crowe2021-02-261-0/+1
| | | | | | | | | | | 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>
* package/package_rpm: Disable font_provides configuration for reproducibiltyRichard Purdie2021-02-262-1/+2
| | | | | | | | | | | | | | 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>
* go: Enable CGO and pie buildmode on rv64Khem Raj2021-02-261-3/+2
| | | | | | | | | 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>
* goarch: Use softfloat instead of 387 for 386 goarchKhem Raj2021-02-261-1/+1
| | | | | | | | | | | 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>
* reproducible: Improve SOURCE_DATE_EPOCH_FALLBACK handlingRichard Purdie2021-02-241-4/+0
| | | | | | | | | | | | | | 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>
* reproducible_builds: SOURCE_DATE_EPOCH should not be 0Jan-Simon Möller2021-02-241-4/+15
| | | | | | | | | | | | | | | | | | 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>
* report-error.bbclass: Add layer and bitbake version info to error reportMilan Shah2021-02-231-0/+4
| | | | | | | | | | | | | 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>
* kernel-fitimage: Don't use unit addresses on FITKlaus Heinrich Kiwi2021-02-231-20/+20
| | | | | | | | | | | | | | | | | | | | | | | 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>
* goarch.bbclass: Fix ppc64le detectionKhem Raj2021-02-231-5/+2
| | | | | | | | | | 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>
* linuxloader: Deal with little-endian ppc64 ldso nameKhem Raj2021-02-231-2/+2
| | | | | | | | | 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>
* license_image: Don't canonicalise INCOMPATIBLE_LICENSERichard Purdie2021-02-211-1/+0
| | | | | | | | | | 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>
* licenses: Update INCOMPATIBLE_LICENSE for 'or-later' handlingRichard Purdie2021-02-211-0/+6
| | | | | | | | | | 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>
* licenses: Fix canonical license for 'or-later' handlingRichard Purdie2021-02-211-9/+2
| | | | | | | | | | 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>
* recipes: Update common-licenses references to match new namesRichard Purdie2021-02-211-1/+1
| | | | | | | | | 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>
* package_rpm: Enable use_source_date_epoch_as_buildtime in package_rpm classJan-Simon Möller2021-02-191-0/+1
| | | | | | | | | | | | 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>
* cmake: set CMAKE_EXPORT_NO_PACKAGE_REGISTRYKonrad Weihmann2021-02-191-0/+1
| | | | | | | | | | | | | 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>
* kernel-fitimage: fix dtbo support for fit imagesAnthony Bagwell2021-02-191-1/+1
| | | | | | | | | 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>
* sstate.bbclass: Split sstate summary into locally and network found artifactsAlejandro Hernandez Samaniego2021-02-191-1/+5
| | | | | | | | | | 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>
* rootfs_deb: handle aarch64 SDK_ARCHRoss Burton2021-02-181-0/+4
| | | | | | | | | | 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>
* distutils3-base: Fix after native packaging changesRichard Purdie2021-02-171-1/+2
| | | | | | | | | 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>
* classes: Drop now unneeded umask flagsRichard Purdie2021-02-168-14/+0
| | | | | | | | | 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>
* npm.bbclass: avoid building target nodejs for native npm recipesYoann Congal2021-02-121-1/+1
| | | | | | | | | | | | | 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>
* cve-check: add include/exclude layersakuster2021-02-091-0/+17
| | | | | | | | | | | | | | 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>
* cve-check.bbclass: add layer to cve logakuster2021-02-091-0/+4
| | | | | | | | | | 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>
* autotools: no need to depend on gnu-configRoss Burton2021-02-071-1/+1
| | | | | | | | | | | 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>
* autotools: remove intltoolize logicRoss Burton2021-02-071-8/+0
| | | | | | | | | | 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>
* autotools: disable gtkdocize for nowRoss Burton2021-02-071-1/+1
| | | | | | | | | 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>
* autotools: don't warn about obsolete usageRoss Burton2021-02-071-1/+1
| | | | | | | | | | 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>
* license_image.bbclass: Don't attempt to symlink to the same fileMike Looijmans2021-02-061-1/+2
| | | | | | | | | | | | | | | 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>
* image_types.bbclass: tar: use posix format instead of gnuMartin Jansa2021-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu isn't compatible with --xattrs used e.g. here: https://github.com/advancedtelematic/meta-updater/blob/d3a832f66e8802cb45536ff278d5c77f946d341d/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>
* package: Ensure do_packagedata is cleaned correctlyRichard Purdie2021-02-031-0/+1
| | | | | | | | | | | | | | | | | | | 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>
* sanity.bbclass: Check if PSEUDO_IGNORE_PATHS and paths under pseudo control ↵Dorinda2021-02-031-0/+10
| | | | | | | | | | | | | overlap Added a sanity check for when PSEUDO_IGNORE_PATHS and paths under pseudo control overlap to avoid random failures generated. [YOCTO #14193] (From OE-Core rev: 6e4bd8cabcdedf4b52345ef5eb421f71d0f19b1d) Signed-off-by: Dorinda Bassey <dorindabassey@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types: Ensure tar archives are reproducibleRichard Purdie2021-01-311-1/+1
| | | | | | | | | | The tar output seems to vary depending on the version of tar used and distro configuration. Be explict about the output format to avoid this and be determinstic. (From OE-Core rev: c56f3c9febc1732aa1302524c6c4da36f16bd1f7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>