Skip to content

Commit

Permalink
Add run0 as a way to raise privileges
Browse files Browse the repository at this point in the history
  • Loading branch information
rusty-snake committed Dec 21, 2024
1 parent 0025805 commit fcd473d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
2 changes: 1 addition & 1 deletion docs/markdown/Installing.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ running `sudo meson install` will drop permissions and rebuild out of date
targets as the original user, not as root.

*(since 1.1.0)* Re-invoking as root will try to guess the user's preferred method for
re-running commands as root. The order of precedence is: sudo, doas, pkexec
re-running commands as root. The order of precedence is: run0, sudo, doas, pkexec
(polkit). An elevation tool can be forced by setting `$MESON_ROOT_CMD`.

## DESTDIR support
Expand Down
7 changes: 6 additions & 1 deletion mesonbuild/minstall.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,12 @@ def do_install(self, datafilename: str) -> None:
if is_windows() or destdir != '' or not os.isatty(sys.stdout.fileno()) or not os.isatty(sys.stderr.fileno()):
# can't elevate to root except in an interactive unix environment *and* when not doing a destdir install
raise
rootcmd = os.environ.get('MESON_ROOT_CMD') or shutil.which('sudo') or shutil.which('doas')
rootcmd = (
os.environ.get('MESON_ROOT_CMD')
or shutil.which('run0')
or shutil.which('sudo')
or shutil.which('doas')
)
pkexec = shutil.which('pkexec')
if rootcmd is None and pkexec is not None and 'PKEXEC_UID' not in os.environ:
rootcmd = pkexec
Expand Down

0 comments on commit fcd473d

Please sign in to comment.