Handle mingw packages depending on msys ones
This is the only cross build type dep we allow.
This commit is contained in:
parent
04735f8c7f
commit
279cabaa98
70
autobuild.py
70
autobuild.py
@ -305,14 +305,16 @@ keyserver-options auto-key-retrieve
|
|||||||
os.replace(backup, conf)
|
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":
|
if build_type == "mingw-src":
|
||||||
dep_type = "mingw64"
|
build_type = "mingw64"
|
||||||
elif build_type == "msys-src":
|
elif build_type == "msys-src":
|
||||||
dep_type = "msys"
|
build_type = "msys"
|
||||||
|
|
||||||
|
if build_type == "msys":
|
||||||
|
return build_type
|
||||||
else:
|
else:
|
||||||
dep_type = build_type
|
return ["msys", build_type]
|
||||||
return dep_type
|
|
||||||
|
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
@ -361,16 +363,16 @@ SigLevel=Never
|
|||||||
os.makedirs(repo_root, exist_ok=True)
|
os.makedirs(repo_root, exist_ok=True)
|
||||||
with backup_pacman_conf(msys2_root):
|
with backup_pacman_conf(msys2_root):
|
||||||
to_add = []
|
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():
|
for name, dep in pkg['ext-depends'].get(dep_type, {}).items():
|
||||||
pattern = f"{name}-{dep['version']}-*.pkg.*"
|
pattern = f"{name}-{dep['version']}-*.pkg.*"
|
||||||
repo_type = dep.get_repo_type()
|
repo_type = dep.get_repo_type()
|
||||||
for asset in get_cached_assets(repo, "staging-" + repo_type):
|
for asset in get_cached_assets(repo, "staging-" + repo_type):
|
||||||
if fnmatch.fnmatch(get_asset_filename(asset), pattern):
|
if fnmatch.fnmatch(get_asset_filename(asset), pattern):
|
||||||
to_add.append((repo_type, asset))
|
to_add.append((repo_type, asset))
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
raise SystemExit(f"asset for {pattern} in {repo_type} not found")
|
raise SystemExit(f"asset for {pattern} in {repo_type} not found")
|
||||||
|
|
||||||
for repo_type, asset in to_add:
|
for repo_type, asset in to_add:
|
||||||
add_to_repo(repo_root, repo_type, asset)
|
add_to_repo(repo_root, repo_type, asset)
|
||||||
@ -646,12 +648,12 @@ def get_buildqueue_with_status(full_details: bool = False) -> List[Package]:
|
|||||||
for build_type in pkg.get_build_types():
|
for build_type in pkg.get_build_types():
|
||||||
status = pkg.get_status(build_type)
|
status = pkg.get_status(build_type)
|
||||||
if status == PackageStatus.WAITING_FOR_BUILD:
|
if status == PackageStatus.WAITING_FOR_BUILD:
|
||||||
dep_type = build_type_to_dep_type(build_type)
|
|
||||||
missing_deps = set()
|
missing_deps = set()
|
||||||
for dep in pkg['ext-depends'].get(dep_type, {}).values():
|
for dep_type in build_type_to_dep_types(build_type):
|
||||||
dep_status = dep.get_status(dep_type)
|
for dep in pkg['ext-depends'].get(dep_type, {}).values():
|
||||||
if dep_status != PackageStatus.FINISHED:
|
dep_status = dep.get_status(dep_type)
|
||||||
missing_deps.add(dep)
|
if dep_status != PackageStatus.FINISHED:
|
||||||
|
missing_deps.add(dep)
|
||||||
if missing_deps:
|
if missing_deps:
|
||||||
desc = f"Waiting for: {', '.join(sorted(d['name'] for d in missing_deps))}"
|
desc = f"Waiting for: {', '.join(sorted(d['name'] for d in missing_deps))}"
|
||||||
pkg.set_status(build_type, PackageStatus.WAITING_FOR_DEPENDENCIES, desc)
|
pkg.set_status(build_type, PackageStatus.WAITING_FOR_DEPENDENCIES, desc)
|
||||||
@ -676,22 +678,22 @@ def get_buildqueue_with_status(full_details: bool = False) -> List[Package]:
|
|||||||
status = pkg.get_status(build_type)
|
status = pkg.get_status(build_type)
|
||||||
if status == PackageStatus.FINISHED:
|
if status == PackageStatus.FINISHED:
|
||||||
missing_deps = set()
|
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():
|
for dep in pkg['ext-depends'].get(dep_type, {}).values():
|
||||||
dep_status = dep.get_status(dep_type)
|
dep_status = dep.get_status(dep_type)
|
||||||
if dep_status not in (PackageStatus.FINISHED,
|
if dep_status not in (PackageStatus.FINISHED,
|
||||||
PackageStatus.FINISHED_BUT_BLOCKED):
|
PackageStatus.FINISHED_BUT_BLOCKED):
|
||||||
missing_deps.add(dep)
|
missing_deps.add(dep)
|
||||||
for dep in pkg['ext-rdepends'].get(dep_type, set()):
|
for dep in pkg['ext-rdepends'].get(dep_type, set()):
|
||||||
dep_status = dep.get_status(dep_type)
|
dep_status = dep.get_status(dep_type)
|
||||||
if dep["name"] in IGNORE_RDEP_PACKAGES:
|
if dep["name"] in IGNORE_RDEP_PACKAGES:
|
||||||
continue
|
continue
|
||||||
if dep_status not in (PackageStatus.FINISHED,
|
if dep_status not in (PackageStatus.FINISHED,
|
||||||
PackageStatus.FINISHED_BUT_BLOCKED):
|
PackageStatus.FINISHED_BUT_BLOCKED):
|
||||||
missing_deps.add(dep)
|
missing_deps.add(dep)
|
||||||
|
|
||||||
if missing_deps:
|
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)
|
pkg.set_status(build_type, PackageStatus.FINISHED_BUT_BLOCKED, desc)
|
||||||
|
|
||||||
return pkgs
|
return pkgs
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user