1
0
mirror of https://github.com/systemd/systemd synced 2025-10-05 16:03:15 +02:00

meson: using f-strings in meson

Those were added before 0.61 which is our minimum version.

Dots were dropped from the end of some messages. Most messages did not have the
trailing dot.

0.63 added support for multi-line f-strings. We can't use those yet.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-10-03 15:26:20 +02:00
committed by Mike Yuan
parent 613f7f26aa
commit ea44302b29
7 changed files with 41 additions and 41 deletions

View File

@@ -21,7 +21,7 @@ in_files = [
] ]
support_url = get_option('support-url') support_url = get_option('support-url')
support_sed = 's~%SUPPORT_URL%~@0@~'.format(support_url) support_sed = f's~%SUPPORT_URL%~@support_url@~'
foreach file : in_files foreach file : in_files
catalogs += custom_target( catalogs += custom_target(
@@ -34,4 +34,4 @@ foreach file : in_files
endforeach endforeach
meson.add_install_script(sh, '-c', meson.add_install_script(sh, '-c',
'test -n "$DESTDIR" || @0@/journalctl --update-catalog'.format(bindir)) f'test -n "$DESTDIR" || @bindir@/journalctl --update-catalog')

View File

@@ -21,9 +21,9 @@ xsltproc_flags = [
'--stringparam', 'systemd.version', '@0@'.format(meson.project_version()), '--stringparam', 'systemd.version', '@0@'.format(meson.project_version()),
'--path', '--path',
'@0@:@1@:@2@:@3@'.format(meson.current_build_dir(), '@0@:@1@:@2@:@3@'.format(meson.current_build_dir(),
meson.current_source_dir(), meson.current_source_dir(),
libshared_build_dir, libshared_build_dir,
libcore_build_dir)] libcore_build_dir)]
custom_man_xsl = files('custom-man.xsl') custom_man_xsl = files('custom-man.xsl')
custom_html_xsl = files('custom-html.xsl') custom_html_xsl = files('custom-html.xsl')
@@ -108,7 +108,7 @@ foreach tuple : manpages
html_pages += p3 html_pages += p3
endif endif
else else
message('Skipping @0@.@1@ because @2@ is false'.format(stem, section, condition)) message(f'Skipping @stem@.@section@ because @condition@ is false')
endif endif
endforeach endforeach

View File

@@ -119,7 +119,7 @@ conf.set('HIGH_RLIMIT_NOFILE', 512*1024)
# are absolute or relative. # are absolute or relative.
prefixdir = get_option('prefix') prefixdir = get_option('prefix')
if not prefixdir.startswith('/') if not prefixdir.startswith('/')
error('Prefix is not absolute: "@0@"'.format(prefixdir)) error(f'Prefix is not absolute: "@prefixdir@"')
endif endif
prefixdir_noslash = '/' + prefixdir.strip('/') prefixdir_noslash = '/' + prefixdir.strip('/')
@@ -570,7 +570,7 @@ long_max = cc.compute_int(
guess : 0x7FFFFFFFFFFFFFFF, guess : 0x7FFFFFFFFFFFFFFF,
high : 0x7FFFFFFFFFFFFFFF) high : 0x7FFFFFFFFFFFFFFF)
assert(long_max > 100000) assert(long_max > 100000)
conf.set_quoted('LONG_MAX_STR', '@0@'.format(long_max)) conf.set_quoted('LONG_MAX_STR', f'@long_max@')
foreach ident : [ foreach ident : [
['set_mempolicy', '''#include <sys/syscall.h>'''], # declared at numaif.h provided by libnuma, which we do not use ['set_mempolicy', '''#include <sys/syscall.h>'''], # declared at numaif.h provided by libnuma, which we do not use
@@ -684,7 +684,7 @@ else
error('unable to determine gperf len type') error('unable to determine gperf len type')
endif endif
endif endif
message('gperf len type is @0@'.format(gperf_len_type)) message(f'gperf len type is @gperf_len_type@')
conf.set('GPERF_LEN_TYPE', gperf_len_type, conf.set('GPERF_LEN_TYPE', gperf_len_type,
description : 'The type of gperf "len" parameter') description : 'The type of gperf "len" parameter')
@@ -696,7 +696,7 @@ foreach header : [
] ]
if not cc.has_header(header) if not cc.has_header(header)
error('Header file @0@ not found.'.format(header)) error(f'Header file @header@ not found')
endif endif
endforeach endforeach
@@ -831,7 +831,7 @@ if not meson.is_cross_build()
name = ret.stdout().split(':')[0] name = ret.stdout().split(':')[0]
if name != nobody_user if name != nobody_user
warning('\n' + warning('\n' +
'The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) + f'The local user with the UID 65534 does not match the configured user name "@nobody_user@" of the nobody user (its name is @name@).\n' +
'Your build will result in an user table setup that is incompatible with the local system.') 'Your build will result in an user table setup that is incompatible with the local system.')
endif endif
endif endif
@@ -842,7 +842,7 @@ if not meson.is_cross_build()
uid = ret.stdout().strip().to_int() uid = ret.stdout().strip().to_int()
if uid != 65534 if uid != 65534
warning('\n' + warning('\n' +
'The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, uid) + f'The local user with the configured user name "@nobody_user@" of the nobody user does not have UID 65534 (it has @uid@).\n' +
'Your build will result in an user table setup that is incompatible with the local system.') 'Your build will result in an user table setup that is incompatible with the local system.')
endif endif
endif endif
@@ -854,7 +854,7 @@ if not meson.is_cross_build()
name = ret.stdout().split(':')[0] name = ret.stdout().split(':')[0]
if name != nobody_group if name != nobody_group
warning('\n' + warning('\n' +
'The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) + f'The local group with the GID 65534 does not match the configured group name "@nobody_group@" of the nobody group (its name is @name@).\n' +
'Your build will result in an group table setup that is incompatible with the local system.') 'Your build will result in an group table setup that is incompatible with the local system.')
endif endif
endif endif
@@ -865,7 +865,7 @@ if not meson.is_cross_build()
gid = ret.stdout().strip().to_int() gid = ret.stdout().strip().to_int()
if gid != 65534 if gid != 65534
warning('\n' + warning('\n' +
'The local group with the configured group name "@0@" of the nobody group does not have GID 65534 (it has @1@).\n'.format(nobody_group, gid) + f'The local group with the configured group name "@nobody_group@" of the nobody group does not have GID 65534 (it has @gid@).\n' +
'Your build will result in an group table setup that is incompatible with the local system.') 'Your build will result in an group table setup that is incompatible with the local system.')
endif endif
endif endif
@@ -873,7 +873,7 @@ if not meson.is_cross_build()
endif endif
if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup') if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
warning('\n' + warning('\n' +
'The configured user name "@0@" and group name "@1@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) + f'The configured user name "@nobody_user@" and group name "@nobody_group@" of the nobody user/group are not equivalent.\n' +
'Please re-check that both "nobody-user" and "nobody-group" options are correctly set.') 'Please re-check that both "nobody-user" and "nobody-group" options are correctly set.')
endif endif
@@ -909,7 +909,7 @@ foreach option : ['adm-gid',
# Ensure provided GID argument is positive, otherwise fall back to default assignment # Ensure provided GID argument is positive, otherwise fall back to default assignment
conf.set(name, val > 0 ? val : '-') conf.set(name, val > 0 ? val : '-')
if val > 0 if val > 0
static_ugids += '@0@:@1@'.format(option, val) static_ugids += f'@option@:@val@'
endif endif
endforeach endforeach
@@ -926,9 +926,9 @@ tty_mode = get_option('tty-mode')
# The setting is used as both octal integer and string through STRINGIFY(). # The setting is used as both octal integer and string through STRINGIFY().
# Here, only check if the value starts with '06', and further check will be done in terminal-util.h. # Here, only check if the value starts with '06', and further check will be done in terminal-util.h.
if not tty_mode.startswith('06') if not tty_mode.startswith('06')
error('Unexpected access mode "@0@" is specified for TTY/PTS device nodes, it must be "06xx".'.format(tty_mode)) error(f'Unexpected access mode "@tty_mode@" is specified for TTY/PTS device nodes, it must be "06xx"')
elif tty_mode != '0600' and tty_mode != '0620' elif tty_mode != '0600' and tty_mode != '0620'
warning('Unexpected access mode "@0@" is specified for TTY/PTS device nodes, typically it should be "0600" or "0620", proceeding anyway.'.format(tty_mode)) warning(f'Unexpected access mode "@tty_mode@" is specified for TTY/PTS device nodes, typically it should be "0600" or "0620", proceeding anyway')
endif endif
# Do not use set_quoted() here, so that the value is available as an integer. # Do not use set_quoted() here, so that the value is available as an integer.
conf.set('TTY_MODE', tty_mode) conf.set('TTY_MODE', tty_mode)
@@ -982,7 +982,7 @@ foreach name : get_option('debug-extra')
elif name == 'siphash' elif name == 'siphash'
enable_debug_siphash = true enable_debug_siphash = true
else else
message('unknown debug option "@0@", ignoring'.format(name)) message(f'unknown debug option "@name@", ignoring')
endif endif
endforeach endforeach
conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap) conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap)
@@ -1950,7 +1950,7 @@ if use_provided_vmlinux_h
error('Path to provided vmlinux.h does not exist.') error('Path to provided vmlinux.h does not exist.')
endif endif
bpf_o_unstripped_cmd += ['-I' + fs.parent(provided_vmlinux_h_path)] bpf_o_unstripped_cmd += ['-I' + fs.parent(provided_vmlinux_h_path)]
message('Using provided @0@'.format(provided_vmlinux_h_path)) message(f'Using provided @provided_vmlinux_h_path@')
elif use_generated_vmlinux_h elif use_generated_vmlinux_h
vmlinux_h_dependency = custom_target( vmlinux_h_dependency = custom_target(
output: 'vmlinux.h', output: 'vmlinux.h',
@@ -2574,9 +2574,9 @@ foreach dict : executables
endif endif
if type == 'manual' if type == 'manual'
message('@0@/@1@ is a manual test'.format(suite, name)) message(f'@suite@/@name@ is a manual test')
elif type == 'unsafe' and want_tests != 'unsafe' elif type == 'unsafe' and want_tests != 'unsafe'
message('@0@/@1@ is an unsafe test'.format(suite, name)) message(f'@suite@/@name@ is an unsafe test')
elif dict.get('build_by_default') elif dict.get('build_by_default')
test(name, exe, test(name, exe,
env : test_env, env : test_env,
@@ -2677,7 +2677,7 @@ foreach dict : modules
if is_nss if is_nss
# We cannot use shared_module because it does not support version suffix. # We cannot use shared_module because it does not support version suffix.
# Unfortunately shared_library insists on creating the symlink… # Unfortunately shared_library insists on creating the symlink…
meson.add_install_script(sh, '-c', 'rm -f $DESTDIR@0@/lib@1@.so'.format(libdir, name), meson.add_install_script(sh, '-c', f'rm -f $DESTDIR@libdir@/lib@name@.so',
install_tag : 'nss') install_tag : 'nss')
nss_targets += lib nss_targets += lib
endif endif
@@ -2893,7 +2893,7 @@ if git.found()
command : [git, 'archive', command : [git, 'archive',
'-o', '@0@/systemd-@1@.tar.gz'.format(meson.project_source_root(), '-o', '@0@/systemd-@1@.tar.gz'.format(meson.project_source_root(),
git_head_short), git_head_short),
'--prefix', 'systemd-@0@/'.format(git_head), '--prefix', f'systemd-@git_head@/',
'HEAD']) 'HEAD'])
endif endif
@@ -2972,7 +2972,7 @@ if conf.get('ENABLE_HWDB') == 1
alias_target('hwdb', auto_suspend_rules, executables_by_name.get('systemd-hwdb'), hwdb_units) alias_target('hwdb', auto_suspend_rules, executables_by_name.get('systemd-hwdb'), hwdb_units)
endif endif
alt_time_epoch = run_command('date', '-Is', '-u', '-d', '@@0@'.format(time_epoch), alt_time_epoch = run_command('date', '-Is', '-u', '-d', f'@@time_epoch@',
check : true).stdout().strip() check : true).stdout().strip()
summary({ summary({
@@ -3001,15 +3001,15 @@ summary({
'zsh completions directory' : zshcompletiondir, 'zsh completions directory' : zshcompletiondir,
'private shared lib version tag' : shared_lib_tag, 'private shared lib version tag' : shared_lib_tag,
'debug shell' : '@0@ @ @1@'.format(get_option('debug-shell'), 'debug shell' : '@0@ @ @1@'.format(get_option('debug-shell'),
get_option('debug-tty')), get_option('debug-tty')),
'system UIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_UID_MAX'), 'system UIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_UID_MAX'),
conf.get('SYSTEM_ALLOC_UID_MIN')), conf.get('SYSTEM_ALLOC_UID_MIN')),
'system GIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_GID_MAX'), 'system GIDs' : '<=@0@ (alloc >=@1@)'.format(conf.get('SYSTEM_GID_MAX'),
conf.get('SYSTEM_ALLOC_GID_MIN')), conf.get('SYSTEM_ALLOC_GID_MIN')),
'greeter UIDs' : '@0@…@1@'.format(greeter_uid_min, greeter_uid_max), 'greeter UIDs' : f'@greeter_uid_min@…@greeter_uid_max@',
'dynamic UIDs' : '@0@…@1@'.format(dynamic_uid_min, dynamic_uid_max), 'dynamic UIDs' : f'@dynamic_uid_min@…@dynamic_uid_max@',
'container UID bases' : '@0@…@1@'.format(container_uid_base_min, container_uid_base_max), 'container UID bases' : f'@container_uid_base_min@…@container_uid_base_max@',
'foreign UID base' : '@0@'.format(foreign_uid_base), 'foreign UID base' : f'@foreign_uid_base@',
'static UID/GID allocations' : ' '.join(static_ugids), 'static UID/GID allocations' : ' '.join(static_ugids),
'/dev/kvm access mode' : get_option('dev-kvm-mode'), '/dev/kvm access mode' : get_option('dev-kvm-mode'),
'render group access mode' : get_option('group-render-mode'), 'render group access mode' : get_option('group-render-mode'),
@@ -3032,7 +3032,7 @@ summary({
'default status unit format' : status_unit_format_default, 'default status unit format' : status_unit_format_default,
'default user $PATH' : default_user_path != '' ? default_user_path : '(same as system services)', 'default user $PATH' : default_user_path != '' ? default_user_path : '(same as system services)',
'systemd service watchdog' : service_watchdog == '' ? 'disabled' : service_watchdog, 'systemd service watchdog' : service_watchdog == '' ? 'disabled' : service_watchdog,
'time epoch' : '@0@ (@1@)'.format(time_epoch, alt_time_epoch) 'time epoch' : f'@time_epoch@ (@alt_time_epoch@)',
}) })
# TODO: # TODO:
@@ -3191,13 +3191,13 @@ endforeach
if static_libsystemd == 'false' if static_libsystemd == 'false'
missing += 'static-libsystemd' missing += 'static-libsystemd'
else else
found += 'static-libsystemd(@0@)'.format(static_libsystemd) found += f'static-libsystemd(@static_libsystemd@)'
endif endif
if static_libudev == 'false' if static_libudev == 'false'
missing += 'static-libudev' missing += 'static-libudev'
else else
found += 'static-libudev(@0@)'.format(static_libudev) found += f'static-libudev(@static_libudev@)'
endif endif
summary({ summary({

View File

@@ -451,12 +451,12 @@ foreach efi_elf_binary : efi_elf_binaries
install_tag : 'systemd-boot', install_tag : 'systemd-boot',
command : [ command : [
elf2efi_py, elf2efi_py,
'--version-major=' + project_major_version, f'--version-major=@project_major_version@',
'--version-minor=' + project_minor_version, f'--version-minor=@project_minor_version@',
'--efi-major=1', '--efi-major=1',
'--efi-minor=1', '--efi-minor=1',
'--subsystem=10', '--subsystem=10',
'--minimum-sections=@0@'.format(minimum_sections), f'--minimum-sections=@minimum_sections@',
'--copy-sections=.sbat,.sdmagic,.osrel', '--copy-sections=.sbat,.sdmagic,.osrel',
'@INPUT@', '@INPUT@',
'@OUTPUT@', '@OUTPUT@',
@@ -467,11 +467,11 @@ foreach efi_elf_binary : efi_elf_binaries
endif endif
# This is supposed to match exactly one time # This is supposed to match exactly one time
if name == 'addon@0@.efi.stub'.format(efi_arch) if name == f'addon@efi_arch@.efi.stub'
efi_addon = [exe] efi_addon = [exe]
endif endif
test('check-alignment-@0@'.format(name), test(f'check-alignment-@name@',
check_efi_alignment_py, check_efi_alignment_py,
args : exe, args : exe,
suite : 'boot') suite : 'boot')

View File

@@ -34,7 +34,7 @@ syscall_lists = []
foreach arch: arch_list foreach arch: arch_list
# We don't use files() here so that the 'update-syscall-tables' call # We don't use files() here so that the 'update-syscall-tables' call
# above can run if arch_list is extended. # above can run if arch_list is extended.
syscall_lists += meson.current_source_dir() / 'syscalls-@0@.txt'.format(arch) syscall_lists += meson.current_source_dir() / f'syscalls-@arch@.txt'
endforeach endforeach
run_target( run_target(

View File

@@ -423,7 +423,7 @@ executables += [
test_template + { test_template + {
'sources' : files('test-sbat.c'), 'sources' : files('test-sbat.c'),
'conditions' : ['ENABLE_BOOTLOADER'], 'conditions' : ['ENABLE_BOOTLOADER'],
'c_args' : '-I@0@'.format(efi_config_h_dir), 'c_args' : f'-I@efi_config_h_dir@',
}, },
test_template + { test_template + {
'sources' : files('test-seccomp.c'), 'sources' : files('test-seccomp.c'),

View File

@@ -23,7 +23,7 @@ unit_directives = []
foreach section : ['Automount', 'Mount', 'Path', 'Scope', 'Service', 'Slice', 'Socket', 'Swap', 'Timer'] foreach section : ['Automount', 'Mount', 'Path', 'Scope', 'Service', 'Slice', 'Socket', 'Swap', 'Timer']
unit_type = section.to_lower() unit_type = section.to_lower()
sec_rx = section == 'Service' ? '(Service|Unit|Install)' : section sec_rx = section == 'Service' ? '(Service|Unit|Install)' : section
name = 'directives.@0@'.format(unit_type) name = f'directives.@unit_type@'
unit_directives += custom_target( unit_directives += custom_target(
output: name, output: name,
command: [generate_directives_py, load_fragment_gperf_gperf, sec_rx, unit_type], command: [generate_directives_py, load_fragment_gperf_gperf, sec_rx, unit_type],