]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
build: add pam_cgfs to meson
authorChristian Brauner <brauner@kernel.org>
Wed, 18 May 2022 15:47:51 +0000 (17:47 +0200)
committerChristian Brauner (Microsoft) <christian.brauner@ubuntu.com>
Thu, 19 May 2022 09:49:48 +0000 (11:49 +0200)
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
meson.build
meson_options.txt
src/lxc/pam/meson.build [new file with mode: 0644]

index 09f85de58f860941be5a5c1659112b602581776f..b28a9b7b109b0aae1bed60ac4dff58ba12448565 100644 (file)
@@ -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 = [
index 6f050f8686d40d4710232fb41ce9d2ccf3e76bd6..ac5a94d75698370d53df312c482870940808f940 100644 (file)
@@ -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 (file)
index 0000000..aae75b8
--- /dev/null
@@ -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)