summaryrefslogtreecommitdiffstats
path: root/meta/classes/python_pep517.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* classes: Update classes to match new bitbake class scope functionalityRichard Purdie2022-08-121-60/+0
| | | | | | | | | Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add SPDX license identifiersRichard Purdie2022-08-121-0/+2
| | | | | | | | | | | | As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add copyright statements to files without oneRichard Purdie2022-08-121-0/+4
| | | | | | | | | Where there isn't a copyright statement, add one to make it explicit. Also drop editor config lines where they were present. (From OE-Core rev: 880c1ea3edc8edef974e65b2d424fc36809ea034) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python_pep517: use picobuild instead of manually calling the APIRoss Burton2022-07-141-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling the PEP-517 API directly mostly works, but sometimes doesn't. For example we don't verify build dependencies, which led to the cbor2 ugprade silently failing to actually package anything. The standard frontend is pypa/build, but for source-based distributions that can be annoying to build as it depends on the following packages: - tomli - pep517 - packaging - pyparsing Manually bootstrapping those recipes is possible, but tedious. Picobuild is another frontend (written by myself) which is designed explicitly to be used programatically by source-based distributions: it doesn't support builds inside virtual environments as we're building distribution packages, and it vendors the dependencies for bootstrapping if they're not available. Over time more packages are expected to move to using Flit to build which makes the bootstrapping process slightly easier, and tomli will be integrated into Python 3.11, so it's possible that in the future we drop picobuild and switch to build. This change means the PEP517_BUILD_API variable is obsolete, so remove it. (From OE-Core rev: 35104958181d18fd67b73943b9310c813d62b14d) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/python_pep517: consolidate stub do_configureRoss Burton2022-03-171-1/+7
| | | | | | | | | | As PEP517 doesn't have an explicit configure step, we can stub out the do_configure task once instead of the calling classes doing it. (From OE-Core rev: fd17edbd00f1583eb9e1912ab269dd4dc2631a6f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/python_pep517: add more commentsRoss Burton2022-03-171-3/+6
| | | | | | | | | | | Remove mention of prebuilt wheels, this is for the full PEP517 build process and recipes that want to install prebuilt wheels can use pypa/installer directly. (From OE-Core rev: d42664a5b5fb460185be996428dbaba6bb81ec3f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/python_pep517: implement a standard do_compileRoss Burton2022-03-171-1/+12
| | | | | | | | | | | | As all PEP517-compliant build systems have a universal API, we can ask that users of this class set PEP517_BUILD_API to the class that implements this API and call it ourselves, instead of users needing to implement near-identical do_compile tasks themselves. (From OE-Core rev: 862f68f3a05ce48834f4903d9f9a213684061779) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python_pep517: use installer instead of pipRoss Burton2022-03-161-23/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of battling pip to install a wheel, use installer. Installer does one thing, so it's faster and easier to work with. This means setuptools, pip, and wheel are no longer part of the bootstrap phase, so they can be built normally. To avoid sysroot file conflicts these three recipes can't install .pyc files to the native sysroot. We currently patch pypa/installer to allow us to override the interpreter used, which means we can drop the interpreter seding. We don't need to recompile any Python which is found in $bindir as Python doesn't actually load those files. Across a build of oe-core, the only differences between using pip and installer are: - the .dist-info/RECORD files are ordered differently - the .dist-info/REQUESTED and INSTALLER files are not created - the hashbang in native scripts is "/usr/bin/env nativepython" instead of pointing directly at the native sysroot python3. (From OE-Core rev: f780f6d920d8bbfb674d6066a8b899417decf8d2) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python_pep517: move PEP517_SOURCE_PATH to python_pep517Ross Burton2022-03-131-0/+3
| | | | | | | | | | Now we have the start of a PEP-517 base class, the PEP517_SOURCE_PATH variable can be defined in there instead of the classes that use it. (From OE-Core rev: 69944121f49f613568bf0c62ae6b3b47af195dbe) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: rename pip_install_wheel.bbclass to python_pep517.bbclassRoss Burton2022-03-131-0/+52
pip_install_wheel shouldn't restricted to just using Pip to install wheels (the installer module is simplier and likely a better option), and in the future may be extended to also provide do_compile() using the build module. (From OE-Core rev: 3bdf64b97facce9706cc579bdbc9a80e0d48428f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>