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
|
|
@ -20,8 +20,9 @@ import subprocess
|
|||
import sys
|
||||
|
||||
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)
|
||||
|
||||
sys.exit(0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue