diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-09-28 12:18:54 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-09-28 13:53:01 +0200 |
commit | c9773491207d36d6f5e651adcb7a64c7a015bba3 (patch) | |
tree | ed2d195ac03609bdb1b3132d1ef748ad59132e8a /swaylock/meson.build | |
parent | 58af0015170204de6d186f0f25cd0b9315d062d7 (diff) |
Add support for building swaylock without PAM
This involves setuid'ing swaylock, which then forks and drops perms on
the parent process. The child process remains root and listens on a pipe
for requests to validate passwords against /etc/shadow.
Diffstat (limited to 'swaylock/meson.build')
-rw-r--r-- | swaylock/meson.build | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/swaylock/meson.build b/swaylock/meson.build index 675b8c69..6c87d173 100644 --- a/swaylock/meson.build +++ b/swaylock/meson.build @@ -1,25 +1,37 @@ sysconfdir = get_option('sysconfdir') -executable( - 'swaylock', [ - 'main.c', - 'password.c', - 'render.c', - 'seat.c' - ], +dependencies = [ + cairo, + client_protos, + gdk_pixbuf, + math, + pango, + pangocairo, + xkbcommon, + wayland_client, + wlroots, +] + +sources = [ + 'main.c', + 'password.c', + 'render.c', + 'seat.c' +] + +if libpam.found() + sources += ['pam.c'] + dependencies += [libpam] +else + warning('The swaylock binary must be setuid when compiled without libpam') + warning('You must do this manually post-install: chmod a+s /path/to/swaylock') + sources += ['shadow.c'] +endif + +executable('swaylock', + sources, include_directories: [sway_inc], - dependencies: [ - cairo, - client_protos, - gdk_pixbuf, - libpam, - math, - pango, - pangocairo, - xkbcommon, - wayland_client, - wlroots, - ], + dependencies: dependencies, link_with: [lib_sway_common, lib_sway_client], install: true ) |