diff options
Diffstat (limited to 'docs/markdown')
-rw-r--r-- | docs/markdown/Installing.md | 4 | ||||
-rw-r--r-- | docs/markdown/snippets/meson_install_drop_privs.md | 16 |
2 files changed, 19 insertions, 1 deletions
diff --git a/docs/markdown/Installing.md b/docs/markdown/Installing.md index 0bc9a47..2d18c17 100644 --- a/docs/markdown/Installing.md +++ b/docs/markdown/Installing.md @@ -110,7 +110,9 @@ targets as root. This results in various bad behaviors due to build outputs and ninja internal files being owned by root. Running `meson install` is preferred for several reasons. It can rebuild out of -date targets and then re-invoke itself as root. +date targets and then re-invoke itself as root. *(since 1.1.0)* Additionally, +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 diff --git a/docs/markdown/snippets/meson_install_drop_privs.md b/docs/markdown/snippets/meson_install_drop_privs.md new file mode 100644 index 0000000..e08dfc0 --- /dev/null +++ b/docs/markdown/snippets/meson_install_drop_privs.md @@ -0,0 +1,16 @@ +## `sudo meson install` now drops privileges when rebuilding targets + +It is common to install projects using sudo, which should not affect build +outputs but simply install the results. Unfortunately, since the ninja backend +updates a state file when run, it's not safe to run ninja as root at all. + +It has always been possible to carefully build with: + +``` +ninja && sudo meson install --no-rebuild +``` + +Meson now tries to be extra safe as a general solution. `sudo meson install` +will attempt to rebuild, but has learned to run `ninja` as the original +(pre-sudo or pre-doas) user, ensuring that build outputs are generated/compiled +as non-root. |