mirror of
https://git.yoctoproject.org/poky
synced 2026-05-07 16:59:22 +00:00
recipetool: create_buildsys_python: add pypi support
Today, we can use devtool/recipetool to create recipes for python projects using the github url or the direct release tarball of the project, but the create_buildsys_python plugin doesn't support the pypi class, since we cannot know from the extracted source if the package is available on pypi or not. By implementing the new optional process_url callback, we can detect that the url is a pypi one (i.e 'https://pypi.org/project/<package>') and retrieve the release tarball location. Also detect if the url points to a release tarball hosted on "files.pythonhosted.iorg" (i.e https://files.pythonhosted.org/packages/...) In both cases, adds the pypi class, remove 'S' and 'SRC_URIxxx' variables from the created recipe as they will be handled by the pypi class and add the PYPI_PACKAGE variable This helps to produce cleaner recipes when package is hosted on pypi. If the url points to a github url or a release tarball not coming from "files.pythonhosted.org", the created recipe is the same as before. One can also use the newly added "--no-pypi" switch to NOT inherit from pypi class on matching url, to keep legacy behaviour. To create a recipe for a pypi package, one can now use one of the new following syntax (using recipetool create / devtool add): * recipetool create https://pypi.org/project/<package> * recipetool create https://pypi.org/project/<package>/<version> * recipetool create https://pypi.org/project/<package> --version <version> or the old syntax: * recipetool create https://files.pythonhosted.org/packages/<...> (From OE-Core rev: 097a43846cd99a7d74d004efc57f583ce78970a4) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
6c06fb0a43
commit
85a2a6f68a
@@ -147,6 +147,8 @@ def add(args, config, basepath, workspace):
|
||||
extracmdopts += ' -a'
|
||||
if args.npm_dev:
|
||||
extracmdopts += ' --npm-dev'
|
||||
if args.no_pypi:
|
||||
extracmdopts += ' --no-pypi'
|
||||
if args.mirrors:
|
||||
extracmdopts += ' --mirrors'
|
||||
if args.srcrev:
|
||||
@@ -2328,6 +2330,7 @@ def register_commands(subparsers, context):
|
||||
group.add_argument('--no-same-dir', help='Force build in a separate build directory', action="store_true")
|
||||
parser_add.add_argument('--fetch', '-f', help='Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead)', metavar='URI')
|
||||
parser_add.add_argument('--npm-dev', help='For npm, also fetch devDependencies', action="store_true")
|
||||
parser_add.add_argument('--no-pypi', help='Do not inherit pypi class', action="store_true")
|
||||
parser_add.add_argument('--version', '-V', help='Version to use within recipe (PV)')
|
||||
parser_add.add_argument('--no-git', '-g', help='If fetching source, do not set up source tree as a git repository', action="store_true")
|
||||
group = parser_add.add_mutually_exclusive_group()
|
||||
|
||||
Reference in New Issue
Block a user