fce8a3c058
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
28 lines
870 B
Python
28 lines
870 B
Python
#!/usr/bin/env python3
|
||
#
|
||
# Copyright © 2021 – 2022 Red Hat Inc.
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
# you may not use this file except in compliance with the License.
|
||
# You may obtain a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
# See the License for the specific language governing permissions and
|
||
# limitations under the License.
|
||
#
|
||
|
||
import os
|
||
import subprocess
|
||
import sys
|
||
|
||
destdir = os.environ.get('DESTDIR', '')
|
||
euid = os.geteuid()
|
||
|
||
if not destdir and not os.path.exists('/run/.containerenv') and euid == 0:
|
||
subprocess.run(['systemd-tmpfiles', '--create'], check=True)
|
||
|
||
sys.exit(0)
|