From: Christian Brauner Date: Wed, 18 May 2022 15:47:51 +0000 (+0200) Subject: build: add pam_cgfs to meson X-Git-Tag: lxc-5.0.0~15^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c48813a6cecf11d7a7fbfb2c94a9bbab09c2a79;p=thirdparty%2Flxc.git build: add pam_cgfs to meson Signed-off-by: Christian Brauner (Microsoft) --- diff --git a/meson.build b/meson.build index 09f85de58..b28a9b7b1 100644 --- a/meson.build +++ b/meson.build @@ -87,6 +87,7 @@ lxctemplateconfcommondir = join_paths(lxctemplateconfdir, 'common.conf.d') lxctemplatedir = join_paths(lxcdatadir, 'templates') lxc_user_network_conf = join_paths(sysconfdir, user_network_conf_opt) lxc_user_network_db = join_paths(runtimepath, user_network_db_opt) +pam_security = join_paths(libdir, 'security') conf.set_quoted('BINDIR', bindir) conf.set_quoted('DATADIR', datadir) @@ -117,6 +118,7 @@ conf.set_quoted('LXC_USERNIC_DB', lxc_user_network_db) cgrouppattern = get_option('cgroup-pattern') wants_io_uring = get_option('io-uring-event-loop') want_examples = get_option('examples') +want_pam_cgroup = get_option('pam-cgroup') want_mans = get_option('man') want_tests = get_option('tests') @@ -279,8 +281,7 @@ endif conf.set10('HAVE_STATIC_LIBCAP', libcap_static.found()) ## PAM. -pam = cc.find_library('pam', - has_headers: 'security/pam_modules.h') +pam = cc.find_library('pam', has_headers: 'security/pam_modules.h', required: want_pam_cgroup) conf.set10('HAVE_PAM', pam.found()) pkgconfig_libs += pam @@ -520,6 +521,7 @@ foreach tuple: [ ['SELinux'], ['libcap'], ['static libcap'], + ['pam'], ['openssl'], ['liburing'], ] @@ -567,6 +569,9 @@ liblxc_includes = [basic_includes, include_directories( # Early sub-directories. subdir('src/include') subdir('src/lxc') +if want_pam_cgroup == true + subdir('src/lxc/pam') +endif # Library. liblxc_dependencies = [ diff --git a/meson_options.txt b/meson_options.txt index 6f050f868..ac5a94d75 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -47,3 +47,6 @@ option('usernet-config-path', type: 'string', value: 'lxc/lxc-usernet', option('usernet-db-path', type: 'string', value: 'lxc/nics', description: 'User network database file path') + +option('pam-cgroup', type: 'boolean', value: 'false', + description: 'build and install the pam cgroup module') diff --git a/src/lxc/pam/meson.build b/src/lxc/pam/meson.build new file mode 100644 index 000000000..aae75b80e --- /dev/null +++ b/src/lxc/pam/meson.build @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +pam_cgfs_includes = include_directories( + '.', + '../', + '../cgroups', + '../../include', + '../../../') + +pam_cgfs_sources = files( + 'pam_cgfs.c', + '../file_utils.c', + '../file_utils.h', + '../macro.h', + '../memory_utils.h', + '../string_utils.c', + '../string_utils.h') + include_sources + +pam_cgfs = shared_module( + 'pam_cgfs', + include_directories: pam_cgfs_includes, + sources: pam_cgfs_sources, + dependencies: [pkgconfig_libs], + name_prefix: '', + install_mode: 'rw-r--r--', # 644 + install: true, + install_dir: pam_security)