mirror of
https://github.com/systemd/systemd.git
synced 2025-01-09 01:18:19 +03:00
meson: allow specifying a custom "tag" for the private shared libaries
We have /usr/lib/systemd/libsystemd-{shared,core}-nnn.so. With this path the 'nnn' part can be changed to something different. The idea is that during a package build this will be set to the package version. This way during in-place upgrades with the same major version both the new and old libraries can cooexit. This should fix the issue when systemd programs are called during package upgrades and fail to exec because the expect different symbols in the library they are linked to. This should fix https://bugzilla.redhat.com/show_bug.cgi?id=1906010.
This commit is contained in:
parent
4287c85589
commit
a2b0cd3f5a
@ -599,6 +599,11 @@ endif
|
||||
|
||||
versiondep = declare_dependency(sources: version_h)
|
||||
|
||||
shared_lib_tag = get_option('shared-lib-tag')
|
||||
if shared_lib_tag == ''
|
||||
shared_lib_tag = meson.project_version()
|
||||
endif
|
||||
|
||||
sh = find_program('sh')
|
||||
echo = find_program('echo')
|
||||
sed = find_program('sed')
|
||||
@ -3902,6 +3907,7 @@ summary({
|
||||
'D-Bus system directory' : dbussystemservicedir,
|
||||
'bash completions directory' : bashcompletiondir,
|
||||
'zsh completions directory' : zshcompletiondir,
|
||||
'private shared lib version tag' : shared_lib_tag,
|
||||
'extra start script' : get_option('rc-local'),
|
||||
'debug shell' : '@0@ @ @1@'.format(get_option('debug-shell'),
|
||||
get_option('debug-tty')),
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
option('version-tag', type : 'string',
|
||||
description : 'override the git version string')
|
||||
option('shared-lib-tag', type : 'string',
|
||||
description : 'override the private shared library version tag (defaults to project version)')
|
||||
|
||||
option('mode', type : 'combo', choices : ['developer', 'release'],
|
||||
description : 'autoenable features suitable for systemd development/release builds')
|
||||
|
@ -167,7 +167,7 @@ load_fragment_gperf_nulstr_c = custom_target(
|
||||
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
|
||||
capture : true)
|
||||
|
||||
libcore_name = 'systemd-core-@0@'.format(meson.project_version())
|
||||
libcore_name = 'systemd-core-@0@'.format(shared_lib_tag)
|
||||
|
||||
libcore = shared_library(
|
||||
libcore_name,
|
||||
|
@ -430,7 +430,7 @@ target2 = custom_target(
|
||||
shared_generated_gperf_headers = [target1, target2]
|
||||
shared_sources += shared_generated_gperf_headers
|
||||
|
||||
libshared_name = 'systemd-shared-@0@'.format(meson.project_version())
|
||||
libshared_name = 'systemd-shared-@0@'.format(shared_lib_tag)
|
||||
|
||||
libshared_deps = [threads,
|
||||
libacl,
|
||||
|
Loading…
Reference in New Issue
Block a user