diff --git a/platformio/managers/package.py b/platformio/managers/package.py index ba7fb494..de87904b 100644 --- a/platformio/managers/package.py +++ b/platformio/managers/package.py @@ -79,7 +79,7 @@ class PkgRepoMixin(object): @staticmethod def is_system_compatible(valid_systems): - if valid_systems in (None, "all", "*"): + if not valid_systems or "*" in valid_systems: return True if not isinstance(valid_systems, list): valid_systems = list([valid_systems]) diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index fb6f06db..22c21b7b 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -537,7 +537,7 @@ class PackageJsonManifestParser(BaseManifestParser): def _parse_system(data): if "system" not in data: return data - if data["system"] in ("*", ["*"]): + if data["system"] in ("*", ["*"], "all"): del data["system"] return data if not isinstance(data["system"], list): diff --git a/tests/test_pkgmanifest.py b/tests/test_pkgmanifest.py index f779b488..18078a7f 100644 --- a/tests/test_pkgmanifest.py +++ b/tests/test_pkgmanifest.py @@ -479,6 +479,11 @@ def test_package_json_schema(): ) assert "system" not in mp.as_dict() + mp = parser.ManifestParserFactory.new( + '{"system": "all"}', parser.ManifestFileType.PACKAGE_JSON + ) + assert "system" not in mp.as_dict() + mp = parser.ManifestParserFactory.new( '{"system": "darwin_x86_64"}', parser.ManifestFileType.PACKAGE_JSON )