packages: use user 'kupfer' in chroots for building
This commit is contained in:
parent
1cac36b73a
commit
bb14c4d779
1 changed files with 17 additions and 11 deletions
|
@ -42,7 +42,6 @@ def get_makepkg_env(arch: Optional[Arch] = None):
|
||||||
'LANG': 'C',
|
'LANG': 'C',
|
||||||
'CARGO_BUILD_JOBS': str(threads),
|
'CARGO_BUILD_JOBS': str(threads),
|
||||||
'MAKEFLAGS': f"-j{threads}",
|
'MAKEFLAGS': f"-j{threads}",
|
||||||
'HOME': '/root',
|
|
||||||
}
|
}
|
||||||
native = config.runtime.arch
|
native = config.runtime.arch
|
||||||
assert native
|
assert native
|
||||||
|
@ -349,10 +348,7 @@ def check_package_version_built(package: Pkgbuild, arch: Arch, try_download: boo
|
||||||
'--skippgpcheck',
|
'--skippgpcheck',
|
||||||
'--packagelist',
|
'--packagelist',
|
||||||
]
|
]
|
||||||
result: Any = native_chroot.run_cmd(
|
result: Any = native_chroot.run_cmd(cmd, capture_output=True, switch_user='kupfer')
|
||||||
cmd,
|
|
||||||
capture_output=True,
|
|
||||||
)
|
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
raise Exception(f'Failed to get package list for {package.path}:' + '\n' + result.stdout.decode() + '\n' + result.stderr.decode())
|
raise Exception(f'Failed to get package list for {package.path}:' + '\n' + result.stdout.decode() + '\n' + result.stderr.decode())
|
||||||
|
|
||||||
|
@ -423,19 +419,23 @@ def setup_build_chroot(
|
||||||
chroot.mount_pkgbuilds()
|
chroot.mount_pkgbuilds()
|
||||||
if extra_packages:
|
if extra_packages:
|
||||||
chroot.try_install_packages(extra_packages, allow_fail=False)
|
chroot.try_install_packages(extra_packages, allow_fail=False)
|
||||||
|
if not os.path.exists(chroot.get_path('/home/kupfer')):
|
||||||
|
assert config.runtime.uid is not None
|
||||||
|
chroot.create_user('kupfer', password='12345678', uid=config.runtime.uid, non_unique=True)
|
||||||
|
if not os.path.exists(chroot.get_path('/etc/sudoers.d/kupfer_nopw')):
|
||||||
|
chroot.add_sudo_config('kupfer_nopw', 'kupfer', password_required=False)
|
||||||
|
|
||||||
return chroot
|
return chroot
|
||||||
|
|
||||||
|
|
||||||
def setup_git_insecure_paths(chroot: BuildChroot):
|
def setup_git_insecure_paths(chroot: BuildChroot, username: str = 'kupfer'):
|
||||||
chroot.run_cmd(
|
chroot.run_cmd(
|
||||||
["git", "config", "--global", "--add", "safe.directory", "'*'"],
|
["git", "config", "--global", "--add", "safe.directory", "'*'"],
|
||||||
inner_env={
|
switch_user=username,
|
||||||
'HOME': '/root'
|
|
||||||
},
|
|
||||||
).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'):
|
def setup_sources(package: Pkgbuild, chroot: BuildChroot, makepkg_conf_path='/etc/makepkg.conf', switch_user: str = 'kupfer'):
|
||||||
makepkg_setup_args = [
|
makepkg_setup_args = [
|
||||||
'--config',
|
'--config',
|
||||||
makepkg_conf_path,
|
makepkg_conf_path,
|
||||||
|
@ -451,6 +451,7 @@ def setup_sources(package: Pkgbuild, chroot: BuildChroot, makepkg_conf_path='/et
|
||||||
MAKEPKG_CMD + makepkg_setup_args,
|
MAKEPKG_CMD + makepkg_setup_args,
|
||||||
cwd=os.path.join(CHROOT_PATHS['pkgbuilds'], package.path),
|
cwd=os.path.join(CHROOT_PATHS['pkgbuilds'], package.path),
|
||||||
inner_env=get_makepkg_env(chroot.arch),
|
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:
|
||||||
|
@ -530,7 +531,12 @@ def build_package(
|
||||||
|
|
||||||
build_cmd = f'makepkg --config {makepkg_conf_absolute} --skippgpcheck --needed --noconfirm --ignorearch {" ".join(makepkg_compile_opts)}'
|
build_cmd = f'makepkg --config {makepkg_conf_absolute} --skippgpcheck --needed --noconfirm --ignorearch {" ".join(makepkg_compile_opts)}'
|
||||||
logging.debug(f'Building: Running {build_cmd}')
|
logging.debug(f'Building: Running {build_cmd}')
|
||||||
result = build_root.run_cmd(build_cmd, inner_env=env, cwd=os.path.join(CHROOT_PATHS['pkgbuilds'], package.path))
|
result = build_root.run_cmd(
|
||||||
|
build_cmd,
|
||||||
|
inner_env=env,
|
||||||
|
cwd=os.path.join(CHROOT_PATHS['pkgbuilds'], package.path),
|
||||||
|
switch_user='kupfer',
|
||||||
|
)
|
||||||
assert isinstance(result, subprocess.CompletedProcess)
|
assert isinstance(result, subprocess.CompletedProcess)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
raise Exception(f'Failed to compile package {package.path}')
|
raise Exception(f'Failed to compile package {package.path}')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue