summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* setuptools3: respect PIP_INSTALL_DIST_PATHRoss Burton2022-03-091-2/+2
| | | | | | | | | | | | pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory. (From OE-Core rev: 12857a77ad424c3c3cbc37275374a603e528d9f1) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools_build_meta: add variable to control where pyproject.toml is locatedRoss Burton2022-03-091-0/+4
| | | | | | | | | | | | | | | | The PEP517[1] pyproject.toml doesn't have to be located at the top-level of the source tree (for example, in recipes with multiple components), so add a variable PEP517_SOURCE_PATH to set where the file is. In the future there should be a pep517.bbclass to centralise the common logic, but for now this can be defined in each of the relevant classes. [1] https://www.python.org/dev/peps/pep-0517/ (From OE-Core rev: 891fab83683cf032d4849f2dfbcd03a3eb22f158) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools_build_meta: respect PIP_INSTALL_DIST_PATHRoss Burton2022-03-091-2/+2
| | | | | | | | | | | | | pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory, and use [cleandirs] to ensure that it exists and is empty. (From OE-Core rev: 1a3625c576afe823efc50dc0b1071e4952339f8e) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core: add variable to control where pyproject.toml is locatedRoss Burton2022-03-091-0/+4
| | | | | | | | | | | | | | | | The PEP517[1] pyproject.toml doesn't have to be located at the top-level of the source tree (for example, in recipes with multiple components), so add a variable PEP517_SOURCE_PATH to set where the file is. In the future there should be a pep517.bbclass to centralise the common logic, but for now this can be defined in each of the relevant classes. [1] https://www.python.org/dev/peps/pep-0517/ (From OE-Core rev: f85b512e2ad39ec32f11f9b25b8c92bea20c844d) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core: respect PIP_INSTALL_DIST_PATHRoss Burton2022-03-091-2/+2
| | | | | | | | | | | | | | | | pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory, and use [cleandirs] to ensure that it exists and is empty. Also call the flit_core.wheel module directly as this is a public entry point to the wheel building logic. (From OE-Core rev: a3d9eb8051bc2effb8130b1743ba251c1fe7c525) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools_build_meta: clean up configure/compileRoss Burton2022-03-081-7/+4
| | | | | | | | | | | | Make do_configure do nothing by default as the base configure isn't useful, and invoke the build API directly instead of writing a script. In the future, this can simply call python3-build. (From OE-Core rev: ccad9d0218ef69bdb8c708029445fcd661f1c490) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core: clean up configure/compileRoss Burton2022-03-081-6/+4
| | | | | | | | | | | | Make do_configure do nothing by default as the base configure isn't useful, and invoke the build API directly instead of writing a script. In the future, this can simply call python3-build. (From OE-Core rev: 2d80529a486d25ad96c448499392547e82779de4) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: don't lazy assign PIPINSTALLARGSRoss Burton2022-03-081-1/+1
| | | | | | | | | | If we expect users to extend this we should use =, as otherwise a recipe that does += will replace the default value. (From OE-Core rev: fdaf5e0027a52e44f2def0ef240134763660aa00) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: clean upRoss Burton2022-03-081-12/+4
| | | | | | | | | | | | | | | | There's been a lot of work in this class lately, so a little spring cleaning is needed. Remove redundant creation of PYTHON_SITEPACKAGES_DIR, pip will do that. Remove redundant export of PYPA_WHEEL. Simplyify recompile code using "realpath --relative-to". (From OE-Core rev: cb56166eef34ba4937dc487664c57815daeadbe8) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools3.bbclass: clean upRoss Burton2022-03-081-33/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's been a lot of work in this class lately, so a little spring cleaning is needed. Create wheels verbosely to help debug problems. Remove unused SETUPTOOLS_INSTALL_ARGS, these can't be passed to bdist_wheel. Remove duplicate manipulation of files in bindir as pip_install_wheel does the same. Remove obsolete deletion of easy-install.pth, wheels don't generate that. Remove obsolete ${datadir}/share fixup, pip-installed wheels can't generate that path combination. Remove purging of ${D} references from *.py, these won't be written by standard setuptools, and recipes can do it themselves to work around specific issues if needed. Remove obsolete vardepsexclude of MACHINE on do_install, as that variable isn't referenced. (From OE-Core rev: 57c477ca13e352b6f9b21385abbfaad9778c6398) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: inside the threadedpool don't write to the shared localdataJose Quaresma2022-03-071-1/+1
| | | | | | | | | | | When inside the threadedpool we make a copy of the localdata to avoid some race condition, so we need to use this new localdata2 and stop write the shared localdata. (From OE-Core rev: 1fa763b2022822a76fde541724e83e1977833d03) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: expand_wildcard_licenses: add AGPL-3.0* wildcardChristian Eggers2022-03-071-0/+1
| | | | | | | | | | | | | The Yocto reference manual suggests also settings AGPL-3.0 in INCOMPATIBLE_LICENSE. https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-INCOMPATIBLE_LICENSE Fixes: 724fc8047cae ("license: Rework INCOMPATIBLE_LICENSE wildcard handling") (From OE-Core rev: 5d5c999ec0a40e3fa14041c35035c8cd4a1da01d) Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools_build_meta: remove python dependencyKonrad Weihmann2022-03-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | when building additional native python tools that should be used for additional tasks in python3 package (class-target), the dependency on target class python creates a dependency loop: python3-foo-native_1.2.3.bb:do_prepare_recipe_sysroot python3-pep8-native_1.7.1.bb:do_populate_sysroot python3-wheel_0.37.1.bb:do_populate_sysroot python3-bar-native_0.1.2.bb:do_populate_sysroot python3-pip_22.0.3.bb:do_populate_sysroot python3-pyflakes-native_2.4.0.bb:do_populate_sysroot python3_3.10.2.bb:do_populate_sysroot python3-foo-native_1.2.3_1.2.0.bb:do_fetch python3-setuptools_59.5.0.bb:do_populate_sysroot resolve this by removing python3 from DEPENDS. The correct dependencies are already injected by setuptools-base class (From OE-Core rev: bd9f9a369160164beade2c12f344b7f5c2b18427) Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: add setuptools3_legacyRoss Burton2022-03-051-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following a good discussion with PyPA upstream[1] the migration of the setuptools3.bbclass to use bdist_wheel+pip turns out to be more complex than thought. Essentially, we're midway through a lot of changes: the future of Python packaging is wheels and pip, but those by design are not as flexible as traditional distutils and setup.py. Specifically, with traditional distutils the package can implement its own install task and write arbitrary files (such as init scripts). With wheels this is explicity impossible, so packages that do this cannot use the new setuptools class and must continue to use the build/install tasks as before. This class is the old setuptools behaviour, bought back. However, as distutils and the setuptools install task are both deprecated and will soon be removed entirely, any users of this class should be moving to an alternative build tool, be it a modern Python tool which works with wheels, or a non-Pythonic tool such as Meson. [1] https://github.com/pypa/packaging-problems/issues/576 (From OE-Core rev: 341d2b35986e48e4954c591be8bc037a5557452a) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: Accomodate llvm-objdumpKhem Raj2022-03-041-1/+1
| | | | | | | | | | | | | | | | | | llvm-objdump emite MIPS_XHASH where as GNU objdump emits DT_MIPS_XHASH, checking for shorted sequence makes this check work in both cases mips-yoe-linux-objdump -p libx264.so.163 | grep XHASH DT_MIPS_XHASH 0x00000168 mips-yoe-linux-llvm-objdump -p libx264.so.163 | grep XHASH MIPS_XHASH 0x00000168 both are same things (From OE-Core rev: 45390aee03ad0adfcabf6d96109e73136436acad) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "cmake.bbclass: Set CXXFLAGS and CFLAGS"Jose Quaresma2022-03-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit 47594d59ec4ab82fcf87d3c590caf7c46a6bfdff. This patch was introduced 5 years ago as a temporary workaround to fix an upstream bug. Currently with that patch the following flags are duplicated: OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CFLAGS}" OECMAKE_C_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CPPFLAGS} ${LDFLAGS}" OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LDFLAGS}" The duplicated flags is used in the toolchain.cmake: set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" ) set( CMAKE_CXX_FLAGS "${OECMAKE_CXX_FLAGS}" CACHE STRING "CXXFLAGS" ) set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" ) CC: Khem Raj <raj.khem@gmail.com> (From OE-Core rev: a83623a54a375d3ae9198a135b94379881a2b7a5) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: rootfs-postcommands: include /etc/fstab in overlayfs_qa_checkStefan Herbrechtsmeier2022-03-041-9/+29
| | | | | | | | | | | | | | | | | The systemd init manager support mount point configuration via mount units and /etc/fstab. 'Mounts listed in /etc/fstab will be converted into native units dynamically at boot and when the configuration of the system manager is reloaded. In general, configuring mount points through /etc/fstab is the preferred approach.' [1] Read mount points from /etc/fstab to determine dynamic mount units. [1] https://www.freedesktop.org/software/systemd/man/systemd.mount.html (From OE-Core rev: 9db988dae6dbf6da7b066728bc13b59a5c45b75c) Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* multilib_global.bbclass: fix setting preferred version for canadian recipesChen Qi2022-03-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the TRANSLATED_TARGET_ARCH is not changed when trying to set preferred version for canadian recipes. e.g. ``` bitbake core-image-minimal -c populate_sdk -e > env grep ^PREFERRED_VERSION_gcc-cross-canadian env ``` The result is: """ PREFERRED_VERSION_gcc-cross-canadian-x86-64="11.%" """ We need to explictly change DEFAULTTUNE to ensure TRANSLATED_TARGET_ARCH is changed when trying to set the preferred version for multilib version of the canadian recipes. e.g. ``` bitbake core-image-minimal -c populate_sdk -e > env grep ^PREFERRED_VERSION_gcc-cross-canadian env ``` The result is: """ PREFERRED_VERSION_gcc-cross-canadian-i686="11.%" PREFERRED_VERSION_gcc-cross-canadian-x86-64="11.%" """ (From OE-Core rev: ab8ed74082ffaf3b3adca84f4c41465f89657e76) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Introduce RUST_BUILD_ARCHAndrew Jeffery2022-03-021-0/+4
| | | | | | | | | | | | | RUST_BUILD_ARCH contains the arch_to_rust_arch()-translated value of BUILD_ARCH. This is necessary to acquire the correct snapshot artifacts under Linux where `uname -m` reports "ppc64le" rather than "powerpc64le". Change-Id: I6aec23aced8e1c6f0bfc46fe52531b0c16bcf687 (From OE-Core rev: c13afbade8d480807b9de70c56dcd650496f06b2) Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Introduce arch_to_rust_arch()Andrew Jeffery2022-03-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On modern Power systems `uname -m` yields 'ppc64le' while the toolchain knows the architecture as 'powerpc64le'. Provide a mapping from one to the other to integrate with the existing architecture configuration flags. arch_to_rust_arch() only exists to map the OE *_ARCH variables before any further processing, unlike arch_to_rust_target_arch() which is specific to the internal triple handling of rust. On Linux ppc64le systems the changes give the following config: ``` $ cat ./tmp/work/ppc64le-linux/rust-native/1.58.0-r0/targets/ppc64le-linux.json { "llvm-target": "powerpc64le-unknown-linux-gnu", "data-layout": "e-m:e-i64:64-n32:64-v256:256:256-v512:512:512", "max-atomic-width": 64, "target-pointer-width": "64", "target-c-int-width": "64", "target-endian": "little", "arch": "powerpc64", "os": "linux", "env": "gnu", "vendor": "unknown", "target-family": "unix", "linker": "gcc", "cpu": "generic", "dynamic-linking": true, "executables": true, "linker-is-gnu": true, "linker-flavor": "gcc", "has-rpath": true, "has-elf-tls": true, "position-independent-executables": true, "panic-strategy": "unwind" } ``` Change-Id: Ief0c01189185d7d4da31d307270bec4e1de674ca (From OE-Core rev: 9ab61e3cfef0157393cb870d606c2f362e190889) Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory.bbclass: create the buildhistory directory when neededJose Quaresma2022-03-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the BUILDHISTORY_RESET is enabled we need to move the content from BUILDHISTORY_DIR to BUILDHISTORY_OLD_DIR but when we start a clean build in the first run we don't have the BUILDHISTORY_DIR so the move of files will fail. | ERROR: Command execution failed: Traceback (most recent call last): | File "/xxx/poky/bitbake/lib/bb/command.py", line 110, in runAsyncCommand | commandmethod(self.cmds_async, self, options) | File "/xxx/poky/bitbake/lib/bb/command.py", line 564, in buildTargets | command.cooker.buildTargets(pkgs_to_build, task) | File "/xxx/poky/bitbake/lib/bb/cooker.py", line 1481, in buildTargets | bb.event.fire(bb.event.BuildStarted(buildname, ntargets), self.databuilder.mcdata[mc]) | File "/xxx/home/builder/src/base/poky/bitbake/lib/bb/event.py", line 214, in fire | fire_class_handlers(event, d) | File "/xxx/poky/bitbake/lib/bb/event.py", line 121, in fire_class_handlers | execute_handler(name, handler, event, d) | File "/xxx/poky/bitbake/lib/bb/event.py", line 93, in execute_handler | ret = handler(event) | File "/xxx/poky/meta/classes/buildhistory.bbclass", line 919, in buildhistory_eventhandler | entries = [ x for x in os.listdir(rootdir) if not x.startswith('.') ] | FileNotFoundError: [Errno 2] No such file or directory: '/xxx/buildhistory' (From OE-Core rev: 97bc2168da7dbacdfbf79cd70db674363ab84f6b) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands: amend systemd_create_users add user to group checkTean Cunningham2022-03-021-6/+2
| | | | | | | | | | | | | | | | | Currently when adding a user to a group ('m' type), the conditional check to only create a user/group if it does not exist always resolves to true. This causes a build exit failure if the user and/or group defined in the sysusers configuration file were already created prior to the execution of systemd_create_users(). This logic has been updated to instead fail silently (consistent with 'u' and 'g' type). Additionally, if a user doesn't exist it will be created without the default group. (From OE-Core rev: 65649be6b2196ab964c69605d0306bfc2481da33) Signed-off-by: Tean Cunningham <tean.cunningham@digi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: Rework INCOMPATIBLE_LICENSE wildcard handlingRichard Purdie2022-03-021-21/+20
| | | | | | | | | | | | | | | | | | | | | | | The current wildcard handling is badly documented and inconsistently used and understood. Forcing users to have to use "GPL-3.0-only GPL-3.0-or-later" whilst explict is not very user friendly. Equally, using the current wildcards is ambigious. This supports pre-defined expansions only and at least makes it clear what GPL-3.0* means (it doesn't include the exception licenses). This is hopefully an acceptable compromise between literal meaning and having something usable. Non-SPDX forms of license in this field have been dropped and errors are shown for unsupported expansions and unsupported old style license terms. Users need to carefully consider how to migrate to the new syntax but the meaning should be well defined and clear from here forward. (From OE-Core rev: 724fc8047cae6ed6197d7deca887b1594871c90e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license/insane: Show warning for obsolete license usageRichard Purdie2022-03-022-9/+28
| | | | | | | | | | | | | | | We want to use SPDX identifiers in LICENSE variables. There is now a conversion script to make most of the translations. Add a list of strings which have been replaced so we can show warnings to users if they're still used anywhere. Add checks to the package as insane check. This is currently a warning by default but can be turned off or made an error as per the other standard checks. (From OE-Core rev: 9379f80f484f94686a4d494e9e237fadfb72a938) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/license: Rework INCOMPATIBLE_LICENSE variable handlingSaul Wold2022-03-023-61/+45
| | | | | | | | | | | | | | | | | | | | This re-writes the INCOMPATIBLE_LICENSE checking code to replace the WHITELIST_<lic> with INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:<lic> <pkg>:<lic> ...' This initial change leaves most of the code structure in place, but the code in base.bbclass needs to be re-written to make the check more consistent around packages (PKGS) and not recipe names (PN). This also is taking into account the changes for SPDX licenses. The aim is to provide a mode consistent variable where the variable name is known and can easily be queried. (From OE-Core rev: 0d19c45ba6cf43518f380ca5afe9753a2eda0691) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: improve wheel handlingKonrad Weihmann2022-03-022-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | - replace python3 prefix when guessing the wheel name as there are still plenty of recipes out there that do use python3 prefixes - remove all previously generated wheels matching the glob to avoid installing any outdated blob via cleandirs in setuptools3 class. Unfortunetaly proposed dist-dir or bdist-dir are not respected by setuptools, likely due because they are overridable by the setup script - don't use PV in glob, as PV doesn't necessarily align with the version used inside of the setuptools configuration. this will avoid having the user set PYPA_WHEEL in a lot of recipes - respect SETUPTOOLS_SETUP_PATH in PIP_INSTALL_DIST_PATH and use B as a fallback only (in case this class is inherited without setuptools3 class being there as well). recipes like python3-smbus run in a subfolder of the workspace and were failing in before this adjustment (From OE-Core rev: 6f2d85a7b7d94101f2ce67115166fa86c185650f) Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core: export do_configure and do_compileTim Orling2022-03-021-2/+3
| | | | | | | | | | The class should export the tasks so they can be extended or overriden elsewhere (like what setuptools3.bbclass has). (From OE-Core rev: 14c2dcbebccf072225a089518ffeb010401f479c) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* OELAYOUT_ABI: bump, avoid tmp/ breakage by removing old cross manifestsAlexander Kanavin2022-03-021-1/+22
| | | | | | | (From OE-Core rev: c0fca53a9b48cb4e92da89e9e652623296244ff6) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: do not add TARGET_ARCH to pkgarch for cross recipes.Alexander Kanavin2022-03-021-2/+1
| | | | | | | | | | | | This is redundant (target arch is already in PN), and breaks compiling a cross-canadian toolchain, as that needs populating the sysroot with two different native-hosted toolchains built from cross recipes. Inserting TARGET_ARCH allows only one or the other. (From OE-Core rev: 33fc1792cd782feb8dbb4285e3006bb588f7978f) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: enable networking in all tasksJose Quaresma2022-03-021-0/+4
| | | | | | | | | | | | | | | | | | | | | The icecc.bbclass needs network access to work properly. Currently I build with icecc inside a container with network isolation and my icecc daemon runs outside of the build container in my host. The only thing I need to do for using the icecc inside my build container is mounting the unix socket /var/run/icecc/iceccd.socket inside the container. I think we need something like this mount functionality to have access to some sockets connections inside the tasks that runs on the new namespace created with unshare system call. This patch is not a the real solution for the problem and is more like an hack so we can use the icecc.bbclass again. (From OE-Core rev: 25ea276a13a6ac2342c2b0945c8fafe878d56095) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane.bbclass: Update insane.bbclass to work on FIPS enabled hostsMark Hatle2022-03-011-1/+1
| | | | | | | | | | | | | | | | | | | hashlib.md5() is not permitted on a FIPS enabled host system. This is due to md5 not being an approved hash algorithm. Instead use: hashlib.new('MD5', usedforsecurity=False) This is allowed, as it's clear the hash is used for a non-security purpose. Using an md5 to identify when a license has changed is permitted, as we're not using it for file integrity. (From OE-Core rev: 7f7eb82ce47ede6ec6f50cbcb56cbfbe10e8d20c) Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta, meta-selftest: Replace more non-SPDX license identifiersPeter Kjellerstedt2022-03-012-5/+6
| | | | | | | | | | | | | | | | In commit ceda3238 (meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX license identifiers) all LICENSE variables were updated to only use SPDX license identifiers. This does the same for comments and other variables where it is appropriate to use the official SPDX license identifiers. There are still references to, e.g., "GPLv3", but they are then typically in descriptive text where they refer to the license in a generic sense. (From OE-Core rev: 165759dced7fbe73b1db2ede67047896071dc6d0) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* mutlilib: Handle WHITELIST_GPL-3.0 being unsetRichard Purdie2022-03-011-3/+4
| | | | | | | | The code doesn't work if the variable is unset, fix that. (From OE-Core rev: b5248cc232629b021d8934899326468c3ef46351) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core: inherit setuptools3-baseTim Orling2022-02-271-1/+1
| | | | | | | | | | | This helps bridge the old setuptools3 behavior. FILES:${PN} has sane defaults in setuptools3-base (From OE-Core rev: b1bb4e2d73985c6e8cf03b0fea94e8b739648cf7) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "cve-check: add lockfile to task"Ross Burton2022-02-271-1/+0
| | | | | | | | | | | | | | | Now that all of the functions in cve-check open the database read-only, we can remove this lockfile. This means cve-check can run in parallal again, improving runtimes massively. This reverts commit d55fbf4779483d2cfd71df78d0f733b599fef739. (From OE-Core rev: d3d3e7b324698ec3e6fce1951aba389805f3edd3) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: Use BPN instead of PN to construct PYPI_PACKAGE defaultRichard Purdie2022-02-261-1/+1
| | | | | | | | This fixes the name for native and nativesdk recipes. (From OE-Core rev: 498342f483118d22f529c4e255cc50455d51e9ed) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: improved wheel filename guessTim Orling2022-02-251-1/+5
| | | | | | | | | | | | | | | | Rather than only use PYPI_PACKAGE as a guess, fall back on PN for cases where a recipe does not inherit pypi. Wheels can only have alphanumeric characters in the 'distribution' name [1]. Any other characters are replaced with an underscore. Provide a function to replace dash with underscore. [1] https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode (From OE-Core rev: 9fc8e55892374f1e63b4c995fe1a5539c42d24e0) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: use HOST_ variables, not TARGET_ to determine the cross systemAlexander Kanavin2022-02-251-4/+4
| | | | | | | | | | | Almost everywhere those are the same, except when making a cross toolchain where HOST_ is where it's going to run, and TARGET_ is what it's going to produce. (From OE-Core rev: cd25e5544ca3f48cc4c32001e917aa3dc20dd79a) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/staging: use HOST_PREFIX, not TARGET_PREFIXAlexander Kanavin2022-02-252-3/+3
| | | | | | | | | | | | | This matters when cross-compiling a cross-toolchain: we need to specify the system where the toolchain will run, not the system it will produce output for. For everything else, HOST and TARGET are the same. (From OE-Core rev: 03679622c5d1088e96d3d2a444c99021e5ae6ee6) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* disutils*.bbclasses: move to meta-pythonTim Orling2022-02-253-108/+0
| | | | | | | | | | | | | distutils has been deprecated in Python 3.10 and will be removed in Python 3.12 (predicted release date October 2023). For now, move these classes from oe-core to meta-python to allow users to migrate. [YOCTO #14610] (From OE-Core rev: 782ce913b3611da8571a758c821b1491493eabec) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools3.bbclass: refactor for wheelsTim Orling2022-02-251-12/+8
| | | | | | | | | | | | | | | Depend on python3-wheel-native so that we can build with 'setup.py bdist_wheel'. Use pip_install_wheel class to install the built wheels with pip, as intended by upstream Python. [YOCTO #14638] (From OE-Core rev: 8b39c0bc535814e04d01d50a4891cb31b6bf84bd) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* setuptools_build_meta.bbclass: add helper classTim Orling2022-02-251-0/+18
| | | | | | | | | | | | This class uses the PEP 517 compliant setuptools.buil_meta to build wheels. [YOCTO #14638] (From OE-Core rev: b8f25c75f152683de4fa6c176118583d3dea894d) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: Use --ignore-installed for pipRichard Purdie2022-02-251-1/+1
| | | | | | | | | | | Replace the use of --force-reinstall with --ignore-installed when running pip install. It can detect currently installed modules in the wrong environment and try to remove them currently which is not what is desired. Ignoring them is the correct thing to do. (From OE-Core rev: 39b0d36b00d98a848297d0667c6cffc049d215e3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel: Recompile modified filesRichard Purdie2022-02-251-0/+5
| | | | | | | | | If we modify the file, we need to recompile the pyc files since the file hash has changed. This would otherwise result in reproducibility failrues. (From OE-Core rev: 9573034eb8cdc3b9c2add67ac0a92277dc26389f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pip_install_wheel.bbclass: add helper classTim Orling2022-02-251-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a helper class to use pip to install wheels built by either bdist_wheel or a PEP-517 backend. Set pip install arguments via PIP_INSTALL_ARGS, which can be overriden by recipes. Pass --root and --prefix to ensure that pip installs things into the proper place in sysroot. By passing --no-deps and --no-index we avoid finicky dependency checking (pip expects wheels in its cache) and avoid trying to fetch wheels from pypi.org. This is basically the same behavior we have now, the dependencies should be declared in the recipe. Also pass --force-reinstall to make sure built wheels are always installed so that FILES gets properly populated. Pass --no-cache to avoid a (harmless) warning about the pip cache in $HOME be avoiding use of cache. We do not likely want wheels cached anyway, pip install changes the python interpreter in scripts installed in ${bindir}, e.g. to #!/usr/bin/nativepython3, correct the behavior after install to #!/usr/bin/env python3. [YOCTO #14638] (From OE-Core rev: 32a61afde0e7d8df6634b88525d8c3e8c6c3516e) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* flit_core.bbclass: add helper for newer python packagingTim Orling2022-02-251-0/+16
| | | | | | | | | | | | | | Some python packages now use pyproject.toml and declare flit_core.buildapi as the build engine Use pip_install_wheel class to install. [YOCTO #14638] (From OE-Core rev: f0292098dc5afc62e0cd91d475edeb1784700795) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: rootfs-postcommands: avoid exception in overlayfs_qa_checkStefan Herbrechtsmeier2022-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The overlayfs_qa_check in the rootfs-postcommands class throws an exception if the overlayfs distro feature is enabled but no global OVERLAYFS_MOUNT_POINT is specifived. File: '/home/stefan/dalos-linutronix/poky/meta/classes/rootfs-postcommands.bbclass', lineno: 389, function: overlayfs_qa_check 0385: searchpaths = [oe.path.join(imagepath, d.getVar("sysconfdir"), "systemd", "system"), 0386: oe.path.join(imagepath, d.getVar("systemd_system_unitdir"))] 0387: 0388: allUnitExist = True; *** 0389: for mountPoint in overlayMountPoints: 0390: path = d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint) 0391: unit = mountUnitName(path) 0392: 0393: if not any(os.path.isfile(oe.path.join(dirpath, unit)) Exception: TypeError: 'NoneType' object is not iterable (From OE-Core rev: 4396348c24efb1185d68876d3cf6ade90324dee5) Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: rename LICENSE_EXCLUSIONSaul Wold2022-02-252-4/+4
| | | | | | | | | | By renaming LICENSE_EXCLUSION to _exclude_incompatible, it makes it clear that this is an internal variable. (From OE-Core rev: 20a4cc2c2dcf345ef898abfe7735b7bc75ac0059) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: get_cve_info should open the database read-onlyRoss Burton2022-02-251-1/+2
| | | | | | | | | | | | All of the function in cve-check should open the database read-only, as the only writer is the fetch task in cve-update-db. However, get_cve_info() was failing to do this, which might be causing locking issues with sqlite. (From OE-Core rev: 8de517238f1f418d9af1ce312d99de04ce2e26fc) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3targetconfig: Use for nativesdk tooRichard Purdie2022-02-251-0/+12
| | | | | | | | | nativesdk is a cross compiled target and therefore should use the target config, not the native one. Copy the target entries accordingly. (From OE-Core rev: b1b5fec350b390fa7f2d26966df1411b032faf87) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>