Sam,
Good to hear from you.
The project in question is turnstile. It is currently in NEW[1] with both
packaging[2] and upstream[3] git repositories.
On Sun, Jan 18, 2026 at 10:36:04AM -0700, Sam Hartman wrote:
> Question: in your project, were you building static libs as well as
> shared, or just shared?
> If meson is requiring dependencies listed in requires.private to be
> present for shared library builds, that seems a bit broken.
A shared pam module (pam_turnstiled) and an executable (turnstiled).
Upstream meson.build has
pam_dep = dependency('pam', required: true)
which is then used in both
daemon = executable(
'turnstiled', daemon_sources,
include_directories: extra_inc,
install: true,
dependencies: [rt_dep, pam_dep, pam_misc_dep],
gnu_symbol_visibility: 'hidden'
)
and
pam_mod = shared_module(
'pam_turnstile', ['src/pam_turnstile.cc', 'src/utils.cc'],
include_directories: extra_inc,
install: true,
install_dir: pam_moddir,
name_prefix: '',
dependencies: [pam_dep],
gnu_symbol_visibility: 'hidden'
)
Is that sane? I don't claim particular expertise in meson.
Best wishes
Mark
[1] https://ftp-master.debian.org/new/turnstile_0.1.11-1.html
[2] https://git.devuan.org/leepen/turnstile
[3] https://github.com/chimera-linux/turnstile