build: Skip a needless failure when running systemd-tmpfiles as non-root
If 'systemd-tmpfiles --create' is called as a non-root user, then it causes: --- stdout --- Calling systemd-tmpfiles --create ... --- stderr --- Failed to open directory 'cryptsetup': Permission denied Failed to open directory 'certs': Permission denied Failed to create directory or subvolume "/var/spool/cups/tmp": Permission denied ... ... ... Traceback (most recent call last): File "toolbox/meson_post_install.py", line 26, in <module> subprocess.run(['systemd-tmpfiles', '--create'], check=True) File "/usr/lib64/python3.10/subprocess.py", line 524, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['systemd-tmpfiles', '--create']' returned non-zero exit status 73. Since, systemd-tmpfiles(8) can't be used like this as a non-root user, there's no point in calling it and needlessly failing the build. Unfortunately, Meson doesn't seem to offer a way to get the process' effective UID inside its scripts. Therefore, this leaves a spurious build-time dependency on systemd when building as a non-root user. https://github.com/containers/toolbox/pull/1140
This commit is contained in:
parent
5d26b9d71d
commit
fce8a3c058
1 changed files with 2 additions and 1 deletions
|
@ -20,8 +20,9 @@ import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
destdir = os.environ.get('DESTDIR', '')
|
destdir = os.environ.get('DESTDIR', '')
|
||||||
|
euid = os.geteuid()
|
||||||
|
|
||||||
if not destdir and not os.path.exists('/run/.containerenv'):
|
if not destdir and not os.path.exists('/run/.containerenv') and euid == 0:
|
||||||
subprocess.run(['systemd-tmpfiles', '--create'], check=True)
|
subprocess.run(['systemd-tmpfiles', '--create'], check=True)
|
||||||
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
Loading…
Reference in a new issue