mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
meson: Improve RPATH handling
Right now we're unconditionally adding RPATH information to the installed binaries and libraries, but that's not always desired. autotools seem to be smart enough to only include that information when targeting a non-standard prefix, so most distro packages don't actually contain it; moreover, both Debian and Fedora have wiki pages encouraging packagers to avoid setting RPATH: https://wiki.debian.org/RpathIssue https://fedoraproject.org/wiki/RPath_Packaging_Draft Implement RPATH logic that Does The Right Thing™ in the most common cases, while still offering users the ability to override the default behavior if they have specific needs. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
94cf1c433d
commit
69980ab798
10
meson.build
10
meson.build
@ -156,6 +156,16 @@ if rc.returncode() == 0
|
||||
endif
|
||||
|
||||
|
||||
# Add RPATH information when building for a non-standard prefix, or
|
||||
# when explicitly requested to do so
|
||||
|
||||
if prefix == '/usr' and not get_option('rpath').enabled()
|
||||
libvirt_rpath = ''
|
||||
else
|
||||
libvirt_rpath = libdir
|
||||
endif
|
||||
|
||||
|
||||
# figure out libvirt version strings
|
||||
|
||||
arr_version = meson.project_version().split('.')
|
||||
|
@ -6,6 +6,7 @@ option('runstatedir', type: 'string', value: '', description: 'State directory f
|
||||
option('expensive_tests', type: 'feature', value: 'auto', description: 'set the default for enabling expensive tests (long timeouts), use VIR_TEST_EXPENSIVE to override')
|
||||
option('test_coverage', type: 'boolean', value: false, description: 'turn on code coverage instrumentation')
|
||||
option('git_werror', type: 'feature', value: 'auto', description: 'use -Werror if building from GIT')
|
||||
option('rpath', type: 'feature', value: 'auto', description: 'whether to include rpath information in installed binaries and libraries')
|
||||
|
||||
|
||||
# build dependencies options
|
||||
|
@ -454,7 +454,7 @@ libvirt_qemu_lib = shared_library(
|
||||
libvirt_qemu_syms_file,
|
||||
],
|
||||
install: true,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
version: libvirt_lib_version,
|
||||
soversion: libvirt_so_version,
|
||||
)
|
||||
@ -510,7 +510,7 @@ libvirt_lxc_lib = shared_library(
|
||||
libvirt_lxc_syms_file,
|
||||
],
|
||||
install: true,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
version: libvirt_lib_version,
|
||||
soversion: libvirt_so_version,
|
||||
)
|
||||
@ -554,7 +554,7 @@ libvirt_admin_lib = shared_library(
|
||||
libvirt_admin_syms_file,
|
||||
],
|
||||
install: true,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
version: libvirt_lib_version,
|
||||
soversion: libvirt_so_version,
|
||||
)
|
||||
@ -588,7 +588,7 @@ foreach module : virt_modules
|
||||
],
|
||||
install: true,
|
||||
install_dir: module.get('install_dir', libdir / 'libvirt' / 'connection-driver'),
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
set_variable('@0@_module'.format(module['name'].underscorify()), mod)
|
||||
endforeach
|
||||
@ -633,7 +633,7 @@ foreach daemon : virt_daemons
|
||||
],
|
||||
install: true,
|
||||
install_dir: sbindir,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
endforeach
|
||||
|
||||
@ -661,7 +661,7 @@ foreach helper : virt_helpers
|
||||
],
|
||||
install: true,
|
||||
install_dir: helper.get('install_dir', libexecdir),
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
endforeach
|
||||
|
||||
|
@ -75,7 +75,7 @@ if conf.has('WITH_HOST_VALIDATE')
|
||||
],
|
||||
install: true,
|
||||
install_dir: bindir,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
endif
|
||||
|
||||
@ -112,7 +112,7 @@ if conf.has('WITH_LOGIN_SHELL')
|
||||
],
|
||||
install: true,
|
||||
install_dir: libexecdir,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
|
||||
install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt')
|
||||
@ -197,7 +197,7 @@ executable(
|
||||
],
|
||||
install: true,
|
||||
install_dir: bindir,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
|
||||
executable(
|
||||
@ -219,7 +219,7 @@ executable(
|
||||
],
|
||||
install: true,
|
||||
install_dir: bindir,
|
||||
install_rpath: libdir,
|
||||
install_rpath: libvirt_rpath,
|
||||
)
|
||||
|
||||
tools_conf = configuration_data()
|
||||
|
Loading…
Reference in New Issue
Block a user