mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
8e97fd4181
The virt-pki-validate tool is currently a shell script. We have a general goal of eliminating use of shell in the project. By doing a new implementation in C, we can also make use of our more thorough sanity checking code to validate the certificate setup. This new implementation the same output format as the host validation tool for a more consistent user experiance. It also eliminates the requirement to have certtool installed on libvirt hosts, which has been an issue for Fedora flatpak packages since certtool isn't in the default platform runtime. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
369 lines
7.3 KiB
Meson
369 lines
7.3 KiB
Meson
tools_inc_dir = include_directories('.')
|
|
|
|
tools_dep = declare_dependency(
|
|
compile_args: coverage_flags,
|
|
dependencies: [
|
|
libxml_dep,
|
|
glib_dep,
|
|
],
|
|
include_directories: [
|
|
libvirt_inc,
|
|
src_inc_dir,
|
|
util_inc_dir,
|
|
top_inc_dir,
|
|
],
|
|
link_args: (
|
|
libvirt_relro
|
|
+ libvirt_no_indirect
|
|
+ libvirt_no_undefined
|
|
+ libvirt_no_warn_duplicate_libraries
|
|
),
|
|
)
|
|
|
|
libvirt_shell_lib = static_library(
|
|
'virt_shell',
|
|
[
|
|
'vsh.c',
|
|
'vsh-table.c',
|
|
],
|
|
dependencies: [
|
|
tools_dep,
|
|
readline_dep,
|
|
],
|
|
link_with: [
|
|
libvirt_lib,
|
|
],
|
|
link_args: [
|
|
coverage_flags,
|
|
],
|
|
)
|
|
|
|
if conf.has('WITH_HOST_VALIDATE')
|
|
virt_host_validate_sources = [
|
|
'virt-validate-common.c',
|
|
'virt-host-validate.c',
|
|
'virt-host-validate-common.c',
|
|
]
|
|
|
|
if conf.has('WITH_QEMU')
|
|
virt_host_validate_sources += [
|
|
'virt-host-validate-qemu.c',
|
|
]
|
|
endif
|
|
if conf.has('WITH_LXC')
|
|
virt_host_validate_sources += [
|
|
'virt-host-validate-lxc.c',
|
|
]
|
|
endif
|
|
if conf.has('WITH_BHYVE')
|
|
virt_host_validate_sources += [
|
|
'virt-host-validate-bhyve.c',
|
|
]
|
|
endif
|
|
if conf.has('WITH_CH')
|
|
virt_host_validate_sources += [
|
|
'virt-host-validate-ch.c',
|
|
]
|
|
endif
|
|
|
|
executable(
|
|
'virt-host-validate',
|
|
[
|
|
virt_host_validate_sources,
|
|
],
|
|
dependencies: [
|
|
tools_dep,
|
|
],
|
|
link_args: [
|
|
coverage_flags,
|
|
],
|
|
link_with: [
|
|
libvirt_lib,
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
install_rpath: libvirt_rpath,
|
|
)
|
|
endif
|
|
|
|
if conf.has('WITH_LOGIN_SHELL')
|
|
# virt-login-shell will be setuid, and must not link to anything
|
|
# except glibc. It will scrub the environment and then invoke the
|
|
# real virt-login-shell-helper binary.
|
|
executable(
|
|
'virt-login-shell',
|
|
[
|
|
'virt-login-shell.c',
|
|
],
|
|
include_directories: [
|
|
top_inc_dir,
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
)
|
|
|
|
executable(
|
|
'virt-login-shell-helper',
|
|
[
|
|
'virt-login-shell-helper.c',
|
|
],
|
|
dependencies: [
|
|
tools_dep,
|
|
],
|
|
link_args: [
|
|
coverage_flags,
|
|
],
|
|
link_with: [
|
|
libvirt_lib,
|
|
libvirt_lxc_lib,
|
|
],
|
|
install: true,
|
|
install_dir: libexecdir,
|
|
install_rpath: libvirt_rpath,
|
|
)
|
|
|
|
install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt')
|
|
endif
|
|
|
|
if host_machine.system() == 'windows'
|
|
# Before you edit virsh_win_icon.rc, please note the following
|
|
# limitations of the resource file format:
|
|
#
|
|
# (1) '..' is not permitted in the icon filename field.
|
|
# (2) '-' is not permitted in the icon filename field.
|
|
# (3) Comments are not permitted in the file.
|
|
#
|
|
# Windows appears to choose the first <= 32x32 icon it finds
|
|
# in the resource file. Therefore you should list the available
|
|
# icons from largest to smallest, and make sure that the 32x32
|
|
# icon is the most legible.
|
|
#
|
|
# Windows .ICO is a special MS-only format. GIMP and other
|
|
# tools can write it. However there are several variations,
|
|
# and Windows seems to do its own colour quantization. More
|
|
# information is needed in this area.
|
|
windres = import('windows')
|
|
virsh_icon_res = windres.compile_resources(
|
|
'virsh_win_icon.rc',
|
|
depend_files: [
|
|
'libvirt_win_icon_16x16.ico',
|
|
'libvirt_win_icon_32x32.ico',
|
|
'libvirt_win_icon_48x48.ico',
|
|
'libvirt_win_icon_64x64.ico',
|
|
],
|
|
)
|
|
else
|
|
virsh_icon_res = []
|
|
endif
|
|
|
|
virsh_prog = executable(
|
|
'virsh',
|
|
[
|
|
'virsh.c',
|
|
'virsh-backup.c',
|
|
'virsh-checkpoint.c',
|
|
'virsh-completer.c',
|
|
'virsh-completer-domain.c',
|
|
'virsh-completer-checkpoint.c',
|
|
'virsh-completer-host.c',
|
|
'virsh-completer-interface.c',
|
|
'virsh-completer-network.c',
|
|
'virsh-completer-nodedev.c',
|
|
'virsh-completer-nwfilter.c',
|
|
'virsh-completer-pool.c',
|
|
'virsh-completer-secret.c',
|
|
'virsh-completer-snapshot.c',
|
|
'virsh-completer-volume.c',
|
|
'virsh-console.c',
|
|
'virsh-domain.c',
|
|
'virsh-domain-event.c',
|
|
'virsh-domain-monitor.c',
|
|
'virsh-host.c',
|
|
'virsh-interface.c',
|
|
'virsh-network.c',
|
|
'virsh-nodedev.c',
|
|
'virsh-nwfilter.c',
|
|
'virsh-pool.c',
|
|
'virsh-secret.c',
|
|
'virsh-snapshot.c',
|
|
'virsh-util.c',
|
|
'virsh-volume.c',
|
|
virsh_icon_res,
|
|
],
|
|
dependencies: [
|
|
tools_dep,
|
|
readline_dep,
|
|
thread_dep,
|
|
keycode_dep,
|
|
],
|
|
link_args: [
|
|
coverage_flags,
|
|
],
|
|
link_with: [
|
|
libvirt_lxc_lib,
|
|
libvirt_qemu_lib,
|
|
libvirt_shell_lib,
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
install_rpath: libvirt_rpath,
|
|
)
|
|
|
|
if conf.has('WITH_REMOTE')
|
|
virt_admin_prog = executable(
|
|
'virt-admin',
|
|
[
|
|
'virt-admin.c',
|
|
'virt-admin-completer.c',
|
|
],
|
|
dependencies: [
|
|
tools_dep,
|
|
readline_dep,
|
|
],
|
|
link_args: [
|
|
coverage_flags,
|
|
],
|
|
link_with: [
|
|
libvirt_admin_lib,
|
|
libvirt_shell_lib,
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
install_rpath: libvirt_rpath,
|
|
)
|
|
endif
|
|
|
|
tools_conf = configuration_data({
|
|
'PACKAGE': meson.project_name(),
|
|
'VERSION': meson.project_version(),
|
|
'bindir': bindir,
|
|
'libexecdir': libexecdir,
|
|
'localedir': localedir,
|
|
'localstatedir': localstatedir,
|
|
'sbindir': sbindir,
|
|
'schemadir': pkgdatadir / 'schemas',
|
|
'sysconfdir': sysconfdir,
|
|
'initconfdir': initconfdir,
|
|
})
|
|
|
|
configure_file(
|
|
input: 'virt-xml-validate.in',
|
|
output: '@BASENAME@',
|
|
configuration: tools_conf,
|
|
install: true,
|
|
install_dir: bindir,
|
|
install_mode: 'rwxr-xr-x',
|
|
)
|
|
|
|
executable(
|
|
'virt-pki-validate',
|
|
tlsconfig_sources + [
|
|
'virt-validate-common.c',
|
|
'virt-pki-validate.c',
|
|
],
|
|
dependencies: [
|
|
glib_dep,
|
|
gnutls_dep,
|
|
],
|
|
include_directories: [
|
|
libvirt_inc,
|
|
src_inc_dir,
|
|
top_inc_dir,
|
|
util_inc_dir,
|
|
rpc_inc_dir,
|
|
],
|
|
link_args: (
|
|
libvirt_relro
|
|
+ libvirt_no_indirect
|
|
+ libvirt_no_undefined
|
|
),
|
|
link_with: [
|
|
libvirt_lib
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
)
|
|
|
|
executable(
|
|
'virt-pki-query-dn',
|
|
[
|
|
'virt-pki-query-dn.c',
|
|
],
|
|
dependencies: [
|
|
glib_dep,
|
|
gnutls_dep,
|
|
],
|
|
include_directories: [
|
|
libvirt_inc,
|
|
src_inc_dir,
|
|
top_inc_dir,
|
|
util_inc_dir,
|
|
],
|
|
link_args: (
|
|
libvirt_relro
|
|
+ libvirt_no_indirect
|
|
+ libvirt_no_undefined
|
|
),
|
|
link_with: [
|
|
libvirt_lib
|
|
],
|
|
install: true,
|
|
install_dir: bindir,
|
|
)
|
|
|
|
if conf.has('WITH_SANLOCK')
|
|
configure_file(
|
|
input: 'virt-sanlock-cleanup.in',
|
|
output: '@BASENAME@',
|
|
configuration: tools_conf,
|
|
install: true,
|
|
install_dir: sbindir,
|
|
install_mode: 'rwxr-xr-x',
|
|
)
|
|
endif
|
|
|
|
if conf.has('WITH_QEMU')
|
|
install_data('virt-qemu-sev-validate',
|
|
install_dir: bindir)
|
|
endif
|
|
|
|
if conf.has('WITH_LIBVIRTD')
|
|
configure_file(
|
|
input: 'libvirt-guests.sh.in',
|
|
output: '@BASENAME@',
|
|
configuration: tools_conf,
|
|
install: true,
|
|
install_dir: libexecdir,
|
|
install_mode: 'rwxr-xr-x',
|
|
)
|
|
|
|
if init_script == 'systemd'
|
|
configure_file(
|
|
input: 'libvirt-guests.service.in',
|
|
output: '@BASENAME@',
|
|
configuration: tools_conf,
|
|
install: true,
|
|
install_dir: prefix / 'lib' / 'systemd' / 'system',
|
|
)
|
|
endif
|
|
endif
|
|
|
|
if conf.has('WITH_QEMU')
|
|
install_data('virt-qemu-qmp-proxy',
|
|
install_dir: bindir)
|
|
endif
|
|
|
|
if bash_completion_dep.found()
|
|
subdir('bash-completion')
|
|
endif
|
|
|
|
if conf.has('WITH_NSS')
|
|
subdir('nss')
|
|
endif
|
|
|
|
if wireshark_dep.found()
|
|
subdir('wireshark')
|
|
endif
|
|
|
|
subdir('ssh-proxy')
|