From 0a0d48996842ad478ee74c5224669c3650b2e2fe Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Wed, 27 Jul 2022 15:28:09 -0600 Subject: [PATCH] journalctl: allow statically linked build The journalctl tool may be needed on cross compilation hosts in order to run --update-catalog against a target rootfs. To avoid reliability issues caused by shared linking allow journalctl to be linked statically. --- meson.build | 47 ++++++++++++++++++++++++++++------------------- meson_options.txt | 2 ++ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/meson.build b/meson.build index 692ee1ed4df..87e67c9c323 100644 --- a/meson.build +++ b/meson.build @@ -2263,11 +2263,19 @@ public_programs += executable( install_rpath : rootpkglibdir, install : true) +if get_option('link-journalctl-shared') + journalctl_link_with = [libshared] +else + journalctl_link_with = [libsystemd_static, + libshared_static, + libbasic_gcrypt] +endif + public_programs += executable( 'journalctl', journalctl_sources, include_directories : includes, - link_with : [libshared], + link_with : [journalctl_link_with], dependencies : [threads, libdl, libxz, @@ -4288,7 +4296,7 @@ foreach tuple : [ # components ['backlight'], ['binfmt'], - ['bpf-framework', conf.get('BPF_FRAMEWORK') == 1], + ['bpf-framework', conf.get('BPF_FRAMEWORK') == 1], ['coredump'], ['environment.d'], ['efi'], @@ -4318,7 +4326,7 @@ foreach tuple : [ ['resolve'], ['rfkill'], ['sysext'], - ['systemd-analyze', conf.get('ENABLE_ANALYZE') == 1], + ['systemd-analyze', conf.get('ENABLE_ANALYZE') == 1], ['sysupdate'], ['sysusers'], ['timedated'], @@ -4332,36 +4340,37 @@ foreach tuple : [ ['idn'], ['polkit'], ['nscd'], - ['legacy-pkla', install_polkit_pkla], + ['legacy-pkla', install_polkit_pkla], ['kmod'], ['dbus'], ['glib'], ['tpm'], - ['man pages', want_man], - ['html pages', want_html], - ['man page indices', want_man and have_lxml], + ['man pages', want_man], + ['html pages', want_html], + ['man page indices', want_man and have_lxml], ['SysV compat'], ['compat-mutable-uid-boundaries'], ['utmp'], ['ldconfig'], - ['adm group', get_option('adm-group')], - ['wheel group', get_option('wheel-group')], + ['adm group', get_option('adm-group')], + ['wheel group', get_option('wheel-group')], ['gshadow'], ['debug hashmap'], ['debug mmap cache'], ['debug siphash'], - ['valgrind', conf.get('VALGRIND') == 1], - ['trace logging', conf.get('LOG_TRACE') == 1], - ['install tests', install_tests], - ['link-udev-shared', get_option('link-udev-shared')], - ['link-systemctl-shared', get_option('link-systemctl-shared')], - ['link-networkd-shared', get_option('link-networkd-shared')], - ['link-timesyncd-shared', get_option('link-timesyncd-shared')], - ['link-boot-shared', get_option('link-boot-shared')], + ['valgrind', conf.get('VALGRIND') == 1], + ['trace logging', conf.get('LOG_TRACE') == 1], + ['install tests', install_tests], + ['link-udev-shared', get_option('link-udev-shared')], + ['link-systemctl-shared', get_option('link-systemctl-shared')], + ['link-networkd-shared', get_option('link-networkd-shared')], + ['link-timesyncd-shared', get_option('link-timesyncd-shared')], + ['link-journalctl-shared', get_option('link-journalctl-shared')], + ['link-boot-shared', get_option('link-boot-shared')], ['first-boot-full-preset'], ['fexecve'], - ['standalone-binaries', get_option('standalone-binaries')], - ['coverage', get_option('b_coverage')], + ['standalone-binaries', get_option('standalone-binaries')], + ['coverage', get_option('b_coverage')], ] if tuple.length() >= 2 diff --git a/meson_options.txt b/meson_options.txt index 628ca1d797c..d8c0c581c2a 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -25,6 +25,8 @@ option('link-networkd-shared', type: 'boolean', description : 'link systemd-networkd and its helpers to libsystemd-shared.so') option('link-timesyncd-shared', type: 'boolean', description : 'link systemd-timesyncd and its helpers to libsystemd-shared.so') +option('link-journalctl-shared', type: 'boolean', + description : 'link journalctl against libsystemd-shared.so') option('link-boot-shared', type: 'boolean', description : 'link bootctl and systemd-bless-boot against libsystemd-shared.so') option('first-boot-full-preset', type: 'boolean', value: false,