From 2e50a3cb964ba86280f7372c8d8823411d1af3ec Mon Sep 17 00:00:00 2001 From: emersion Date: Wed, 16 Jan 2019 22:45:38 +0100 Subject: [PATCH] Add a pam Meson option --- .build.yml | 5 ++++- meson.build | 44 ++++++++++++++++++++++---------------------- meson_options.txt | 7 +++++++ 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/.build.yml b/.build.yml index a4b8747..1c1bc12 100644 --- a/.build.yml +++ b/.build.yml @@ -18,4 +18,7 @@ tasks: - build: | cd swaylock ninja -C build - + - build-no-pam: | + cd swaylock + meson configure build -Dpam=disabled + ninja -C build diff --git a/meson.build b/meson.build index 281abfa..7c8ec56 100644 --- a/meson.build +++ b/meson.build @@ -39,7 +39,7 @@ cairo = dependency('cairo') pango = dependency('pango') pangocairo = dependency('pangocairo') gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: false) -libpam = cc.find_library('pam', required: false) +libpam = cc.find_library('pam', required: get_option('pam') == 'enabled') crypt = cc.find_library('crypt', required: false) math = cc.find_library('m') @@ -114,14 +114,14 @@ conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) subdir('include') dependencies = [ - cairo, - client_protos, - gdk_pixbuf, - math, - pango, - pangocairo, - xkbcommon, - wayland_client, + cairo, + client_protos, + gdk_pixbuf, + math, + pango, + pangocairo, + xkbcommon, + wayland_client, ] sources = [ @@ -138,22 +138,22 @@ sources = [ 'unicode.c', ] -if libpam.found() - sources += ['pam.c'] - dependencies += [libpam] +if libpam.found() and get_option('pam') != 'disabled' + 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'] - if crypt.found() - dependencies += [crypt] - endif + 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'] + if crypt.found() + dependencies += [crypt] + endif endif swaylock_inc = include_directories('include') executable('swaylock', - sources, + sources, include_directories: [swaylock_inc], dependencies: dependencies, install: true @@ -199,7 +199,7 @@ endif datadir = get_option('datadir') -if (get_option('zsh-completions')) +if get_option('zsh-completions') zsh_files = files( 'completions/zsh/_swaylock', ) @@ -208,7 +208,7 @@ if (get_option('zsh-completions')) install_data(zsh_files, install_dir: zsh_install_dir) endif -if (get_option('bash-completions')) +if get_option('bash-completions') bash_files = files( 'completions/bash/swaylock', ) @@ -217,7 +217,7 @@ if (get_option('bash-completions')) install_data(bash_files, install_dir: bash_install_dir) endif -if (get_option('fish-completions')) +if get_option('fish-completions') fish_files = files( 'completions/fish/swaylock.fish', ) diff --git a/meson_options.txt b/meson_options.txt index 1d9fd5b..9533fba 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,4 +1,11 @@ option('sway-version', type : 'string', description: 'The version string reported in `sway --version`.') +option( + 'pam', + type: 'combo', + choices: ['auto', 'enabled', 'disabled'], + value: 'auto', + description: 'Use PAM instead of shadow.', +) option('zsh-completions', type: 'boolean', value: true, description: 'Install zsh shell completions.') option('bash-completions', type: 'boolean', value: true, description: 'Install bash shell completions.') option('fish-completions', type: 'boolean', value: true, description: 'Install fish shell completions.')