diff options
| -rw-r--r-- | meta/lib/oeqa/selftest/cases/devtool.py | 15 | ||||
| -rw-r--r-- | scripts/lib/recipetool/create_buildsys_python.py | 13 |
2 files changed, 27 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index 3eea2b1a0e..ddf6c0c9f8 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py | |||
| @@ -444,7 +444,7 @@ class DevtoolAddTests(DevtoolBase): | |||
| 444 | checkvars['S'] = '${WORKDIR}/MarkupSafe-%s' % testver | 444 | checkvars['S'] = '${WORKDIR}/MarkupSafe-%s' % testver |
| 445 | checkvars['SRC_URI'] = url | 445 | checkvars['SRC_URI'] = url |
| 446 | self._test_recipe_contents(recipefile, checkvars, []) | 446 | self._test_recipe_contents(recipefile, checkvars, []) |
| 447 | 447 | ||
| 448 | def test_devtool_add_fetch_git(self): | 448 | def test_devtool_add_fetch_git(self): |
| 449 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | 449 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') |
| 450 | self.track_for_cleanup(tempdir) | 450 | self.track_for_cleanup(tempdir) |
| @@ -544,6 +544,19 @@ class DevtoolAddTests(DevtoolBase): | |||
| 544 | # Test devtool build | 544 | # Test devtool build |
| 545 | result = runCmd('devtool build %s' % pn) | 545 | result = runCmd('devtool build %s' % pn) |
| 546 | 546 | ||
| 547 | def test_devtool_add_python_egg_requires(self): | ||
| 548 | # Fetch source | ||
| 549 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | ||
| 550 | self.track_for_cleanup(tempdir) | ||
| 551 | testver = '0.14.0' | ||
| 552 | url = 'https://files.pythonhosted.org/packages/e9/9e/25d59f5043cf763833b2581c8027fa92342c4cf8ee523b498ecdf460c16d/uvicorn-%s.tar.gz' % testver | ||
| 553 | testrecipe = 'python3-uvicorn' | ||
| 554 | srcdir = os.path.join(tempdir, testrecipe) | ||
| 555 | # Test devtool add | ||
| 556 | self.track_for_cleanup(self.workspacedir) | ||
| 557 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | ||
| 558 | result = runCmd('devtool add %s %s -f %s' % (testrecipe, srcdir, url)) | ||
| 559 | |||
| 547 | class DevtoolModifyTests(DevtoolBase): | 560 | class DevtoolModifyTests(DevtoolBase): |
| 548 | 561 | ||
| 549 | def test_devtool_modify(self): | 562 | def test_devtool_modify(self): |
diff --git a/scripts/lib/recipetool/create_buildsys_python.py b/scripts/lib/recipetool/create_buildsys_python.py index f4f51c88b4..5686a62d3f 100644 --- a/scripts/lib/recipetool/create_buildsys_python.py +++ b/scripts/lib/recipetool/create_buildsys_python.py | |||
| @@ -209,6 +209,18 @@ class PythonRecipeHandler(RecipeHandler): | |||
| 209 | continue | 209 | continue |
| 210 | 210 | ||
| 211 | if line.startswith('['): | 211 | if line.startswith('['): |
| 212 | # PACKAGECONFIG must not contain expressions or whitespace | ||
| 213 | line = line.replace(" ", "") | ||
| 214 | line = line.replace(':', "") | ||
| 215 | line = line.replace('.', "-dot-") | ||
| 216 | line = line.replace('"', "") | ||
| 217 | line = line.replace('<', "-smaller-") | ||
| 218 | line = line.replace('>', "-bigger-") | ||
| 219 | line = line.replace('_', "-") | ||
| 220 | line = line.replace('(', "") | ||
| 221 | line = line.replace(')', "") | ||
| 222 | line = line.replace('!', "-not-") | ||
| 223 | line = line.replace('=', "-equals-") | ||
| 212 | current_feature = line[1:-1] | 224 | current_feature = line[1:-1] |
| 213 | elif current_feature: | 225 | elif current_feature: |
| 214 | extras_req[current_feature].append(line) | 226 | extras_req[current_feature].append(line) |
| @@ -297,6 +309,7 @@ class PythonRecipeHandler(RecipeHandler): | |||
| 297 | lines_after.append('# The following configs & dependencies are from setuptools extras_require.') | 309 | lines_after.append('# The following configs & dependencies are from setuptools extras_require.') |
| 298 | lines_after.append('# These dependencies are optional, hence can be controlled via PACKAGECONFIG.') | 310 | lines_after.append('# These dependencies are optional, hence can be controlled via PACKAGECONFIG.') |
| 299 | lines_after.append('# The upstream names may not correspond exactly to bitbake package names.') | 311 | lines_after.append('# The upstream names may not correspond exactly to bitbake package names.') |
| 312 | lines_after.append('# The configs are might not correct, since PACKAGECONFIG does not support expressions as may used in requires.txt - they are just replaced by text.') | ||
| 300 | lines_after.append('#') | 313 | lines_after.append('#') |
| 301 | lines_after.append('# Uncomment this line to enable all the optional features.') | 314 | lines_after.append('# Uncomment this line to enable all the optional features.') |
| 302 | lines_after.append('#PACKAGECONFIG ?= "{}"'.format(' '.join(k.lower() for k in extras_req))) | 315 | lines_after.append('#PACKAGECONFIG ?= "{}"'.format(' '.join(k.lower() for k in extras_req))) |
