mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-23 05:35:44 -05:00
packages/build: build_enable_qemu_binfmt(): also build gcc package if available
This commit is contained in:
parent
c074fbe42c
commit
eaac9195ea
1 changed files with 19 additions and 2 deletions
|
@ -438,10 +438,11 @@ def setup_build_chroot(
|
||||||
extra_packages: list[str] = [],
|
extra_packages: list[str] = [],
|
||||||
add_kupfer_repos: bool = True,
|
add_kupfer_repos: bool = True,
|
||||||
clean_chroot: bool = False,
|
clean_chroot: bool = False,
|
||||||
|
repo: Optional[dict[str, Pkgbuild]] = None,
|
||||||
) -> BuildChroot:
|
) -> BuildChroot:
|
||||||
assert config.runtime.arch
|
assert config.runtime.arch
|
||||||
if arch != config.runtime.arch:
|
if arch != config.runtime.arch:
|
||||||
build_enable_qemu_binfmt(arch, lazy=False)
|
build_enable_qemu_binfmt(arch, repo=repo or discover_pkgbuilds(), lazy=False)
|
||||||
init_prebuilts(arch)
|
init_prebuilts(arch)
|
||||||
chroot = get_build_chroot(arch, add_kupfer_repos=add_kupfer_repos)
|
chroot = get_build_chroot(arch, add_kupfer_repos=add_kupfer_repos)
|
||||||
chroot.mount_packages()
|
chroot.mount_packages()
|
||||||
|
@ -510,6 +511,7 @@ def build_package(
|
||||||
enable_ccache: bool = True,
|
enable_ccache: bool = True,
|
||||||
clean_chroot: bool = False,
|
clean_chroot: bool = False,
|
||||||
build_user: str = 'kupfer',
|
build_user: str = 'kupfer',
|
||||||
|
repo: Optional[dict[str, Pkgbuild]] = None,
|
||||||
):
|
):
|
||||||
makepkg_compile_opts = ['--holdver']
|
makepkg_compile_opts = ['--holdver']
|
||||||
makepkg_conf_path = 'etc/makepkg.conf'
|
makepkg_conf_path = 'etc/makepkg.conf'
|
||||||
|
@ -529,6 +531,7 @@ def build_package(
|
||||||
arch=arch,
|
arch=arch,
|
||||||
extra_packages=deps,
|
extra_packages=deps,
|
||||||
clean_chroot=clean_chroot,
|
clean_chroot=clean_chroot,
|
||||||
|
repo=repo,
|
||||||
)
|
)
|
||||||
assert config.runtime.arch
|
assert config.runtime.arch
|
||||||
native_chroot = target_chroot
|
native_chroot = target_chroot
|
||||||
|
@ -538,6 +541,7 @@ def build_package(
|
||||||
arch=config.runtime.arch,
|
arch=config.runtime.arch,
|
||||||
extra_packages=['base-devel'] + CROSSDIRECT_PKGS,
|
extra_packages=['base-devel'] + CROSSDIRECT_PKGS,
|
||||||
clean_chroot=clean_chroot,
|
clean_chroot=clean_chroot,
|
||||||
|
repo=repo,
|
||||||
)
|
)
|
||||||
if not package.mode:
|
if not package.mode:
|
||||||
logging.warning(f'Package {package.path} has no _mode set, assuming "host"')
|
logging.warning(f'Package {package.path} has no _mode set, assuming "host"')
|
||||||
|
@ -756,6 +760,7 @@ def build_packages(
|
||||||
enable_crossdirect=enable_crossdirect,
|
enable_crossdirect=enable_crossdirect,
|
||||||
enable_ccache=enable_ccache,
|
enable_ccache=enable_ccache,
|
||||||
clean_chroot=clean_chroot,
|
clean_chroot=clean_chroot,
|
||||||
|
repo=repo,
|
||||||
)
|
)
|
||||||
files += add_package_to_repo(package, arch)
|
files += add_package_to_repo(package, arch)
|
||||||
updated_repos.add(package.repo)
|
updated_repos.add(package.repo)
|
||||||
|
@ -830,8 +835,20 @@ def build_enable_qemu_binfmt(arch: Arch, repo: Optional[dict[str, Pkgbuild]] = N
|
||||||
logging.info('Installing qemu-user (building if necessary)')
|
logging.info('Installing qemu-user (building if necessary)')
|
||||||
check_programs_wrap(['pacman', 'makepkg', 'pacstrap'])
|
check_programs_wrap(['pacman', 'makepkg', 'pacstrap'])
|
||||||
# build qemu-user, binfmt, crossdirect
|
# build qemu-user, binfmt, crossdirect
|
||||||
|
packages = list(CROSSDIRECT_PKGS)
|
||||||
|
hostspec = GCC_HOSTSPECS[arch][arch]
|
||||||
|
cross_gcc = f"{hostspec}-gcc"
|
||||||
|
if repo:
|
||||||
|
for pkg in repo.values():
|
||||||
|
if (pkg.name == cross_gcc or cross_gcc in pkg.provides):
|
||||||
|
if config.runtime.arch not in pkg.arches:
|
||||||
|
logging.debug(f"Package {pkg.path} matches {cross_gcc=} name but not arch: {pkg.arches=}")
|
||||||
|
continue
|
||||||
|
packages.append(pkg.path)
|
||||||
|
logging.debug(f"Adding gcc package {pkg.path} to the necessary crosscompilation tools")
|
||||||
|
break
|
||||||
build_packages_by_paths(
|
build_packages_by_paths(
|
||||||
CROSSDIRECT_PKGS,
|
packages,
|
||||||
native,
|
native,
|
||||||
repo=repo,
|
repo=repo,
|
||||||
try_download=True,
|
try_download=True,
|
||||||
|
|
Loading…
Add table
Reference in a new issue