mirror of
https://github.com/swaywm/sway.git
synced 2025-11-19 06:59:52 -05:00
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.
This commit is contained in:
parent
58af001517
commit
c977349120
7 changed files with 233 additions and 76 deletions
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue