Skip to content

Commit

Permalink
Merge branch 'meson/lastlog2' of https://github.com/t-8ch/util-linux
Browse files Browse the repository at this point in the history
* 'meson/lastlog2' of https://github.com/t-8ch/util-linux:
  meson: only build liblastlog when enabled
  meson: create dedicated config for pam_lastlog2
  meson: use a dependency object for sqlite3
  meson: use a dependency object for liblastlog2
  • Loading branch information
karelzak committed Feb 5, 2024
2 parents ec895e4 + 529c4bb commit ef1501d
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 31 deletions.
52 changes: 25 additions & 27 deletions liblastlog2/meson.build
Expand Up @@ -7,36 +7,34 @@ lib_lastlog2_sources = '''
src/lastlog2.c
'''.split()

libsqlite3 = cc.find_library('sqlite3')

liblastlog2_sym = 'src/liblastlog2.sym'
liblastlog2_sym_path = '@0@/@1@'.format(meson.current_source_dir(), liblastlog2_sym)

lib_lastlog2 = both_libraries(
'lastlog2',
lib_lastlog2_sources,
include_directories : [dir_include, dir_liblastlog2],
link_args : ['-Wl,--version-script=@0@'.format(liblastlog2_sym_path)],
link_depends : liblastlog2_sym,
dependencies : [libsqlite3],
install : build_liblastlog2,
version : liblastlog2_version,
)
if build_liblastlog2
lib_lastlog2 = both_libraries(
'lastlog2',
lib_lastlog2_sources,
include_directories : [dir_include],
link_args : ['-Wl,--version-script=@0@'.format(liblastlog2_sym_path)],
link_depends : liblastlog2_sym,
dependencies : [lib_sqlite3],
install : build_liblastlog2,
version : liblastlog2_version,
)

lastlog2_dep = declare_dependency(link_with: lib_lastlog2, include_directories: dir_liblastlog2)
lastlog2_dep = declare_dependency(link_with: lib_lastlog2, include_directories: dir_liblastlog2)

lastlog2_tests = [
'dlopen',
'pam_lastlog2_output',
'remove_entry',
'rename_user',
'write_read_user',
'y2038_ll2_read_all',
'y2038_sqlite3_time',
]
libdl = cc.find_library('dl')
lastlog2_tests = [
'dlopen',
'pam_lastlog2_output',
'remove_entry',
'rename_user',
'write_read_user',
'y2038_ll2_read_all',
'y2038_sqlite3_time',
]
libdl = cc.find_library('dl')

if build_liblastlog2
pkg.generate(
lib_lastlog2,
description : 'library to manage last login data',
Expand All @@ -50,9 +48,9 @@ if build_liblastlog2
exe = executable(
test_name,
'src/tests/tst_' + lastlog2_test + '.c',
include_directories : [dir_include, dir_liblastlog2],
link_with : [lib_common, lib_lastlog2],
dependencies : libdl
include_directories : [dir_include],
link_with : [lib_common],
dependencies : [libdl, lastlog2_dep],
)
# the test-setup expects the helpers in the toplevel build-directory
link = meson.project_build_root() / test_name
Expand Down
3 changes: 3 additions & 0 deletions meson.build
Expand Up @@ -197,6 +197,7 @@ headers = '''
security/openpam.h
security/pam_appl.h
security/pam_misc.h
security/pam_modules.h
sys/disk.h
sys/disklabel.h
sys/endian.h
Expand Down Expand Up @@ -414,6 +415,8 @@ conf.set('HAVE_LIBAUDIT', lib_audit.found() ? 1 : false)

conf.set('HAVE_SMACK', not get_option('smack').disabled())

lib_sqlite3 = dependency('sqlite3', required : get_option('build-liblastlog2'))

foreach header : headers
have = cc.has_header(header)
conf.set('HAVE_' + header.underscorify().to_upper(), have ? 1 : false)
Expand Down
2 changes: 2 additions & 0 deletions meson_options.txt
Expand Up @@ -39,6 +39,8 @@ option('build-libuuid', type : 'feature',
description : 'build libuuid and uuid utilities')
option('build-liblastlog2', type : 'feature',
description : 'build liblastlog2 and lastlog2 utilities')
option('build-pam-lastlog2', type : 'feature',
description : 'build PAM lastlog2 module')
option('build-libmount', type : 'feature',
description : 'build libmount')
option('build-libsmartcols', type : 'feature',
Expand Down
13 changes: 9 additions & 4 deletions pam_lastlog2/meson.build
@@ -1,3 +1,9 @@
build_pam_lastlog2 = not get_option('build-pam-lastlog2') \
.require(build_liblastlog2) \
.require(conf.get('HAVE_SECURITY_PAM_MODULES_H').to_string() == '1') \
.disabled()
summary('pam_lastlog2', build_pam_lastlog2 ? 'enabled' : 'disabled', section : 'components')

cc = meson.get_compiler('c')
pkg = import('pkgconfig')
lib_pam_lastlog2_sources = '''
Expand All @@ -9,7 +15,7 @@ if pamlibdir == ''
pamlibdir = get_option('libdir') / 'security'
endif

if build_liblastlog2
if build_pam_lastlog2
pam_lastlog2_sym = 'src/pam_lastlog2.sym'
pam_lastlog2_sym_path = '@0@/@1@'.format(meson.current_source_dir(), pam_lastlog2_sym)

Expand All @@ -19,11 +25,10 @@ if build_liblastlog2
'pam_lastlog2',
lib_pam_lastlog2_sources,
name_prefix : '',
include_directories : [dir_include, dir_liblastlog2],
include_directories : [dir_include],
link_args : ['-Wl,--version-script=@0@'.format(pam_lastlog2_sym_path)],
link_depends : pam_lastlog2_sym,
link_with : [lib_lastlog2],
dependencies : [libpam],
dependencies : [libpam, lastlog2_dep],
install : build_liblastlog2,
install_dir : pamlibdir,
version : liblastlog2_version,
Expand Down

0 comments on commit ef1501d

Please sign in to comment.