From ed52a1eea3a15691822516c8c9ba3b0f71bc882b Mon Sep 17 00:00:00 2001 From: Christopher Byrne Date: Mon, 13 Jul 2026 00:58:12 -0500 Subject: [PATCH 1/3] build: Non-automagic dracut support Signed-off-by: Christopher Byrne --- meson_options.txt | 1 + src/luks/dracut/meson.build | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index 0c22fd65..2fa64c26 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,4 @@ option('user', type: 'string', value: 'clevis', description: 'Unprivileged user for secure clevis operations') option('group', type: 'string', value: 'clevis', description: 'Unprivileged group for secure clevis operations') option('tpm1', type: 'feature', value: 'auto', description: 'Enable TPM 1.2 pin support') +option('dracut', type: 'feature', value: 'auto', description: 'Enable dracut support for clevis') diff --git a/src/luks/dracut/meson.build b/src/luks/dracut/meson.build index d78af7d7..fb618723 100644 --- a/src/luks/dracut/meson.build +++ b/src/luks/dracut/meson.build @@ -1,9 +1,12 @@ -subdir('clevis') -subdir('clevis-pin-tang') -if not get_option('tpm1').disabled() - subdir('clevis-pin-tpm1') +dracut = dependency('dracut', required: get_option('dracut')) +if dracut.found() + subdir('clevis') + subdir('clevis-pin-tang') + if not get_option('tpm1').disabled() + subdir('clevis-pin-tpm1') + endif + subdir('clevis-pin-tpm2') + subdir('clevis-pin-sss') + subdir('clevis-pin-null') + subdir('clevis-pin-pkcs11') endif -subdir('clevis-pin-tpm2') -subdir('clevis-pin-sss') -subdir('clevis-pin-null') -subdir('clevis-pin-pkcs11') From 19c9d2b5fdddbc7fb20421a982a91b60cdc849f2 Mon Sep 17 00:00:00 2001 From: Christopher Byrne Date: Mon, 13 Jul 2026 00:58:12 -0500 Subject: [PATCH 2/3] build: Non-automagic udisks2 support Signed-off-by: Christopher Byrne --- meson_options.txt | 1 + src/luks/udisks2/meson.build | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index 2fa64c26..6adb18ee 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,3 +2,4 @@ option('user', type: 'string', value: 'clevis', description: 'Unprivileged user option('group', type: 'string', value: 'clevis', description: 'Unprivileged group for secure clevis operations') option('tpm1', type: 'feature', value: 'auto', description: 'Enable TPM 1.2 pin support') option('dracut', type: 'feature', value: 'auto', description: 'Enable dracut support for clevis') +option('udisks', type: 'feature', value: 'auto', description: 'Enable udisks2 support for clevis') diff --git a/src/luks/udisks2/meson.build b/src/luks/udisks2/meson.build index 866055b7..8bf4a2d2 100644 --- a/src/luks/udisks2/meson.build +++ b/src/luks/udisks2/meson.build @@ -1,6 +1,6 @@ -audit = dependency('audit', version: '>=2.7.8', required: false) -udisks2 = dependency('udisks2', required: false) -gio = dependency('gio-2.0', required: false) +udisks2 = dependency('udisks2', required: get_option('udisks')) +audit = dependency('audit', version: '>=2.7.8', required: get_option('udisks')) +gio = dependency('gio-2.0', required: get_option('udisks')) if udisks2.found() and audit.found() and gio.found() autostartdir = join_paths(sysconfdir, 'xdg', 'autostart') @@ -18,7 +18,7 @@ if udisks2.found() and audit.found() and gio.found() install_dir: libexecdir, install: true, ) -else +elif get_option('udisks').auto() warning('Will not build udisks2 support due to missing dependencies!') endif From 6527d3ad742e5012ec4559791f30a4d2aebb1577 Mon Sep 17 00:00:00 2001 From: Christopher Byrne Date: Mon, 13 Jul 2026 15:55:50 -0500 Subject: [PATCH 3/3] build: Don't require bash-completions to install completions Signed-off-by: Christopher Byrne --- meson_options.txt | 1 + src/bash/meson.build | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index 6adb18ee..11a810b0 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -3,3 +3,4 @@ option('group', type: 'string', value: 'clevis', description: 'Unprivileged grou option('tpm1', type: 'feature', value: 'auto', description: 'Enable TPM 1.2 pin support') option('dracut', type: 'feature', value: 'auto', description: 'Enable dracut support for clevis') option('udisks', type: 'feature', value: 'auto', description: 'Enable udisks2 support for clevis') +option('bashcompdir', type: 'string', value: '', description: 'Directory for bash completion files') diff --git a/src/bash/meson.build b/src/bash/meson.build index 89ba7467..c3533611 100644 --- a/src/bash/meson.build +++ b/src/bash/meson.build @@ -1,7 +1,11 @@ bashcomp = dependency('bash-completion', required: false) -if bashcomp.found() - bashcompdir = bashcomp.get_pkgconfig_variable('completionsdir') +if get_option('bashcompdir') != '' or bashcomp.found() + if get_option('bashcompdir') != '' + bashcompdir = get_option('bashcompdir') + else + bashcompdir = bashcomp.get_variable(pkgconfig: 'completionsdir') + endif install_data('clevis', install_dir: bashcompdir) else warning('Will not install bash completion due to missing dependencies!')