mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-23 05:35:44 -05:00
packages/build: setup_sources(): remove chroot, add srcinfo cache, use in check_package_built()
This commit is contained in:
parent
16b2f1a3c2
commit
97ae046f1e
1 changed files with 26 additions and 17 deletions
|
@ -309,6 +309,8 @@ def try_download_package(dest_file_path: str, package: Pkgbuild, arch: Arch) ->
|
||||||
|
|
||||||
|
|
||||||
def check_package_version_built(package: Pkgbuild, arch: Arch, try_download: bool = False) -> bool:
|
def check_package_version_built(package: Pkgbuild, arch: Arch, try_download: bool = False) -> bool:
|
||||||
|
setup_sources(package)
|
||||||
|
|
||||||
missing = True
|
missing = True
|
||||||
filename = package.get_filename(arch)
|
filename = package.get_filename(arch)
|
||||||
filename_stripped = strip_compression_extension(filename)
|
filename_stripped = strip_compression_extension(filename)
|
||||||
|
@ -398,27 +400,35 @@ def setup_git_insecure_paths(chroot: BuildChroot, username: str = 'kupfer'):
|
||||||
).check_returncode() # type: ignore[union-attr]
|
).check_returncode() # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
def setup_sources(package: Pkgbuild, chroot: BuildChroot, makepkg_conf_path='/etc/makepkg.conf', switch_user: str = 'kupfer'):
|
def setup_sources(package: Pkgbuild, lazy: bool = True):
|
||||||
makepkg_setup_args = [
|
cache = package.srcinfo_cache
|
||||||
'--config',
|
assert cache
|
||||||
makepkg_conf_path,
|
# catch cache._changed: if the PKGBUILD changed whatsoever, that's an indicator the sources might be changed
|
||||||
'--nobuild',
|
if lazy and not cache._changed and cache.src_initialised and cache.src_initialised == cache.checksums['PKGBUILD']:
|
||||||
'--holdver',
|
if cache.validate_checksums():
|
||||||
|
logging.debug(f"{package.path}: Sources already set up.")
|
||||||
|
return
|
||||||
|
makepkg_setup = ' '.join(MAKEPKG_CMD + [
|
||||||
'--nodeps',
|
'--nodeps',
|
||||||
|
'--nobuild',
|
||||||
|
'--noprepare',
|
||||||
'--skippgpcheck',
|
'--skippgpcheck',
|
||||||
]
|
])
|
||||||
|
dir = os.path.join(config.get_path('pkgbuilds'), package.path)
|
||||||
|
msg = "makepkg sources setup failed; retrying without --holdver"
|
||||||
|
|
||||||
logging.info(f'Setting up sources for {package.path} in {chroot.name}')
|
logging.info(f'{package.path}: Setting up sources')
|
||||||
setup_git_insecure_paths(chroot)
|
result = run_cmd(
|
||||||
result = chroot.run_cmd(
|
f"{makepkg_setup} --holdver || ( echo '{package.path}: {msg}' ; {makepkg_setup} )",
|
||||||
MAKEPKG_CMD + makepkg_setup_args,
|
cwd=dir,
|
||||||
cwd=os.path.join(CHROOT_PATHS['pkgbuilds'], package.path),
|
|
||||||
inner_env=get_makepkg_env(chroot.arch),
|
|
||||||
switch_user=switch_user,
|
|
||||||
)
|
)
|
||||||
assert isinstance(result, subprocess.CompletedProcess)
|
assert isinstance(result, subprocess.CompletedProcess)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
raise Exception(f'Failed to check sources for {package.path}')
|
raise Exception(f'{package.path}: Failed to setup sources, exit code: {result.returncode}')
|
||||||
|
cache.refresh_all(write=False)
|
||||||
|
cache.src_initialised = cache.checksums['PKGBUILD']
|
||||||
|
cache.write()
|
||||||
|
package.refresh_sources()
|
||||||
|
|
||||||
|
|
||||||
def build_package(
|
def build_package(
|
||||||
|
@ -498,9 +508,8 @@ def build_package(
|
||||||
build_root.mount_rust(user=build_user)
|
build_root.mount_rust(user=build_user)
|
||||||
setup_git_insecure_paths(build_root)
|
setup_git_insecure_paths(build_root)
|
||||||
makepkg_conf_absolute = os.path.join('/', makepkg_conf_path)
|
makepkg_conf_absolute = os.path.join('/', makepkg_conf_path)
|
||||||
setup_sources(package, build_root, makepkg_conf_path=makepkg_conf_absolute)
|
|
||||||
|
|
||||||
build_cmd = f'makepkg --config {makepkg_conf_absolute} --skippgpcheck --needed --noconfirm --ignorearch {" ".join(makepkg_compile_opts)}'
|
build_cmd = MAKEPKG_CMD + ['--config', makepkg_conf_absolute, '--skippgpcheck'] + makepkg_compile_opts
|
||||||
logging.debug(f'Building: Running {build_cmd}')
|
logging.debug(f'Building: Running {build_cmd}')
|
||||||
result = build_root.run_cmd(
|
result = build_root.run_cmd(
|
||||||
build_cmd,
|
build_cmd,
|
||||||
|
|
Loading…
Add table
Reference in a new issue