Handle mingw packages depending on msys ones

This is the only cross build type dep we allow.
This commit is contained in:
Christoph Reiter 2021-02-05 16:19:34 +01:00
parent 04735f8c7f
commit 279cabaa98

View File

@ -305,14 +305,16 @@ keyserver-options auto-key-retrieve
os.replace(backup, conf)
def build_type_to_dep_type(build_type):
def build_type_to_dep_types(build_type):
if build_type == "mingw-src":
dep_type = "mingw64"
build_type = "mingw64"
elif build_type == "msys-src":
dep_type = "msys"
build_type = "msys"
if build_type == "msys":
return build_type
else:
dep_type = build_type
return dep_type
return ["msys", build_type]
@contextmanager
@ -361,7 +363,7 @@ SigLevel=Never
os.makedirs(repo_root, exist_ok=True)
with backup_pacman_conf(msys2_root):
to_add = []
dep_type = build_type_to_dep_type(build_type)
for dep_type in build_type_to_dep_types(build_type):
for name, dep in pkg['ext-depends'].get(dep_type, {}).items():
pattern = f"{name}-{dep['version']}-*.pkg.*"
repo_type = dep.get_repo_type()
@ -646,8 +648,8 @@ def get_buildqueue_with_status(full_details: bool = False) -> List[Package]:
for build_type in pkg.get_build_types():
status = pkg.get_status(build_type)
if status == PackageStatus.WAITING_FOR_BUILD:
dep_type = build_type_to_dep_type(build_type)
missing_deps = set()
for dep_type in build_type_to_dep_types(build_type):
for dep in pkg['ext-depends'].get(dep_type, {}).values():
dep_status = dep.get_status(dep_type)
if dep_status != PackageStatus.FINISHED:
@ -676,7 +678,7 @@ def get_buildqueue_with_status(full_details: bool = False) -> List[Package]:
status = pkg.get_status(build_type)
if status == PackageStatus.FINISHED:
missing_deps = set()
dep_type = build_type_to_dep_type(build_type)
for dep_type in build_type_to_dep_types(build_type):
for dep in pkg['ext-depends'].get(dep_type, {}).values():
dep_status = dep.get_status(dep_type)
if dep_status not in (PackageStatus.FINISHED,
@ -691,7 +693,7 @@ def get_buildqueue_with_status(full_details: bool = False) -> List[Package]:
missing_deps.add(dep)
if missing_deps:
desc = f"waiting on { ', '.join(sorted(p['name'] for p in missing_deps)) }"
desc = f"Waiting on { ', '.join(sorted(p['name'] for p in missing_deps)) }"
pkg.set_status(build_type, PackageStatus.FINISHED_BUT_BLOCKED, desc)
return pkgs