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

Reply via email to