1
0
mirror of https://github.com/systemd/systemd synced 2026-04-10 09:04:50 +02:00

Compare commits

...

6 Commits

Author SHA1 Message Date
LaserEyess
ea5e55b311 network: rename SetupState to AdministrativeState
This is more consistent with the terminology used elsewhere. In
particular it is consistent with the name of the property exposed over
dbus for the link state.
2021-12-10 18:42:34 +09:00
igo95862
e3c6892455 Export D-Bus interfaces to /usr/share/dbus-1/interfaces
Pass -Ddbus-interfaces-dir=no to meson to disable export

Interfaces from:
org.freedesktop.home1
org.freedesktop.hostname1
org.freedesktop.import1
org.freedesktop.locale1
org.freedesktop.LogControl1
org.freedesktop.login1
org.freedesktop.machine1
org.freedesktop.oom1
org.freedesktop.portable1
org.freedesktop.resolve1
org.freedesktop.systemd1
org.freedesktop.timedate1
2021-12-10 08:51:58 +01:00
Luca Boccassi
082c676165 meson: exclude .gitattributes when using install_subdir
It picks the whole content of the directory by default, but we don't
want to install .gitattributes files. Add it to all invocations, not
just the ones on subdirs with .gitattributes, so that we don't regress
in the future.

Fixes #21715
2021-12-10 07:30:58 +01:00
Yu Watanabe
ee1eecfe4d man: fix typo 2021-12-10 07:27:43 +01:00
наб
2dd9285bac journalctl: have -f and -e imply no-value -b
Both of these take multiple seconds, best-case, to get the last few
entries, but do so instantly with -b
2021-12-10 07:27:09 +01:00
Mike Gilbert
9dc78edccc shared: avoid x86_64-specific size assertion on x32
Fixes: https://github.com/systemd/systemd/issues/21713
2021-12-10 07:26:18 +01:00
9 changed files with 121 additions and 15 deletions

View File

@ -171,7 +171,7 @@
<para><varname>KERNEL_INSTALL_MACHINE_ID=</varname> is set for the plugins to the desired <replaceable>MACHINE-ID</replaceable>
either 32 hexadecimal characters or the special value <literal>Default</literal>.</para>
<para><varname>KERNEL_INSTALL_BOOT_ROOT=</varname> is set for the plugins to the root directory (mount point, usually) of the hierarchy
where boot-loader entries, kernel images, and associated resources should be placed. Can be overriden by setting <varname>BOOT_ROOT=</varname>.</para>
where boot-loader entries, kernel images, and associated resources should be placed. Can be overridden by setting <varname>BOOT_ROOT=</varname>.</para>
</refsect1>
<refsect1>

View File

@ -1551,7 +1551,7 @@ Table=1234</programlisting></para>
<term><varname>IPServiceType=</varname></term>
<listitem>
<para>Takes one of the special values <literal>none</literal>, <literal>CS6</literal>, or
<literal>CS4</literal>. When <literal>none</literal> no IP sevice type is set to the packet
<literal>CS4</literal>. When <literal>none</literal> no IP service type is set to the packet
sent from the DHCPv4 client. When <literal>CS6</literal> (network control) or
<literal>CS4</literal> (realtime), the corresponding service type will be set. Defaults to
<literal>CS6</literal>.</para>

View File

@ -1693,6 +1693,7 @@ update_hwdb_sh = find_program('tools/update-hwdb.sh')
update_hwdb_autosuspend_sh = find_program('tools/update-hwdb-autosuspend.sh')
update_syscall_tables_sh = find_program('tools/update-syscall-tables.sh')
xml_helper_py = find_program('tools/xml_helper.py')
export_dbus_interfaces_py = find_program('tools/dbus_exporter.py')
#####################################################################
@ -1708,6 +1709,13 @@ add_project_arguments('-include', 'config.h', language : 'c')
# usually, but not always, installed in /bin.
public_programs = []
# D-Bus introspection XML export
dbus_programs = []
dbus_interfaces_dir = get_option('dbus-interfaces-dir')
if dbus_interfaces_dir == ''
dbus_interfaces_dir = get_option('datadir') + '/dbus-1'
endif
tests = []
fuzzers = []
@ -1975,7 +1983,7 @@ endforeach
############################################################
executable(
dbus_programs += executable(
'systemd',
systemd_sources,
include_directories : includes,
@ -2144,7 +2152,7 @@ if conf.get('HAVE_BLKID') == 1
endif
if conf.get('ENABLE_RESOLVE') == 1
executable(
dbus_programs += executable(
'systemd-resolved',
systemd_resolved_sources,
include_directories : resolve_includes,
@ -2181,7 +2189,7 @@ if conf.get('ENABLE_RESOLVE') == 1
endif
if conf.get('ENABLE_LOGIND') == 1
executable(
dbus_programs += executable(
'systemd-logind',
systemd_logind_sources,
include_directories : includes,
@ -2327,7 +2335,7 @@ public_programs += executable(
install_dir : rootbindir)
if conf.get('ENABLE_PORTABLED') == 1
executable(
dbus_programs += executable(
'systemd-portabled',
systemd_portabled_sources,
include_directories : includes,
@ -2407,7 +2415,7 @@ if conf.get('ENABLE_HOMED') == 1
install : true,
install_dir : rootlibexecdir)
executable(
dbus_programs += executable(
'systemd-homed',
systemd_homed_sources,
include_directories : home_includes,
@ -2610,7 +2618,7 @@ if conf.get('ENABLE_XDG_AUTOSTART') == 1
endif
if conf.get('ENABLE_HOSTNAMED') == 1
executable(
dbus_programs += executable(
'systemd-hostnamed',
'src/hostname/hostnamed.c',
include_directories : includes,
@ -2637,7 +2645,7 @@ if conf.get('ENABLE_LOCALED') == 1
deps = []
endif
executable(
dbus_programs += executable(
'systemd-localed',
systemd_localed_sources,
include_directories : includes,
@ -2657,7 +2665,7 @@ if conf.get('ENABLE_LOCALED') == 1
endif
if conf.get('ENABLE_TIMEDATED') == 1
executable(
dbus_programs += executable(
'systemd-timedated',
'src/timedate/timedated.c',
include_directories : includes,
@ -2701,7 +2709,7 @@ if conf.get('ENABLE_TIMESYNCD') == 1
endif
if conf.get('ENABLE_MACHINED') == 1
executable(
dbus_programs += executable(
'systemd-machined',
systemd_machined_sources,
include_directories : includes,
@ -2726,7 +2734,7 @@ if conf.get('ENABLE_MACHINED') == 1
endif
if conf.get('ENABLE_IMPORTD') == 1
executable(
dbus_programs += executable(
'systemd-importd',
systemd_importd_sources,
include_directories : includes,
@ -2885,7 +2893,7 @@ if conf.get('ENABLE_PSTORE') == 1
endif
if conf.get('ENABLE_OOMD') == 1
executable('systemd-oomd',
dbus_programs += executable('systemd-oomd',
systemd_oomd_sources,
include_directories : includes,
link_with : [libshared],
@ -3829,6 +3837,13 @@ run_target(
alias_target('update-dbus-docs', update_dbus_docs)
alias_target('update-man-rules', update_man_rules)
custom_target(
'export-dbus-interfaces',
output : 'interfaces',
install : dbus_interfaces_dir != 'no',
install_dir : dbus_interfaces_dir,
command : [export_dbus_interfaces_py, '@OUTPUT@', dbus_programs])
############################################################
alt_time_epoch = run_command('date', '-Is', '-u', '-d', '@@0@'.format(time_epoch),

View File

@ -479,3 +479,6 @@ option('analyze', type: 'boolean', value: 'true',
option('bpf-framework', type : 'combo', choices : ['auto', 'true', 'false'],
description: 'build BPF programs from source code in restricted C')
option('dbus-interfaces-dir', type : 'string',
description : 'export D-Bus introspection XML as standalone files')

View File

@ -551,10 +551,19 @@ static int parse_argv(int argc, char *argv[]) {
if (arg_lines == ARG_LINES_DEFAULT)
arg_lines = 1000;
arg_boot = true;
arg_boot_id = SD_ID128_NULL;
arg_boot_offset = 0;
break;
case 'f':
arg_follow = true;
arg_boot = true;
arg_boot_id = SD_ID128_NULL;
arg_boot_offset = 0;
break;
case 'o':

View File

@ -1196,7 +1196,7 @@ int link_build_json(Link *link, JsonVariant **ret) {
JSON_BUILD_PAIR_STRING_NON_EMPTY("SSID", link->ssid),
JSON_BUILD_PAIR_ETHER_ADDR_NON_NULL("BSSID", &link->bssid),
/* link state */
JSON_BUILD_PAIR_STRING("SetupState", link_state_to_string(link->state)),
JSON_BUILD_PAIR_STRING("AdministrativeState", link_state_to_string(link->state)),
JSON_BUILD_PAIR_STRING("OperationalState", link_operstate_to_string(link->operstate)),
JSON_BUILD_PAIR_STRING("CarrierState", link_carrier_state_to_string(link->carrier_state)),
JSON_BUILD_PAIR_STRING("AddressState", link_address_state_to_string(link->address_state)),

View File

@ -121,7 +121,7 @@ struct JsonVariant {
/* Let's make sure this structure isn't increased in size accidentally. This check is only for our most relevant arch
* (x86-64). */
#ifdef __x86_64__
#if defined(__x86_64__) && __SIZEOF_POINTER__ == 8
assert_cc(sizeof(JsonVariant) == 40U);
assert_cc(INLINE_STRING_MAX == 7U);
#endif

View File

@ -4,36 +4,52 @@ if install_tests
testdata_dir = testsdir + '/testdata/'
install_subdir('journal-data',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('test-execute',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('test-path',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('test-path-util',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('test-umount',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('test-network-generator-conversion',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-04.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-06.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-10.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-11.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-16.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-28.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-30.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-52.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_subdir('testsuite-63.units',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
install_data(kbd_model_map,
@ -53,6 +69,7 @@ if install_tests
if conf.get('ENABLE_RESOLVE') == 1
install_subdir('test-resolve',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
endif
@ -75,6 +92,7 @@ if install_tests and conf.get('ENABLE_SYSUSERS') == 1
install_data(test_sysusers_sh,
install_dir : testsdir)
install_subdir('test-sysusers',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
endif

61
tools/dbus_exporter.py Executable file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1-or-later
from argparse import ArgumentParser
from pathlib import Path
from subprocess import run, PIPE
def extract_interfaces_xml(output_dir, executable):
list_interfaces_process = run(
args=[executable.absolute(), '--bus-introspect', 'list'],
stdout=PIPE,
check=True,
universal_newlines=True,
)
interfaces_lines = list_interfaces_process.stdout.splitlines()
interface_names = [x.split()[1] for x in interfaces_lines]
for interface_name in interface_names:
interface_introspection_run = run(
args=[executable.absolute(), '--bus-introspect', interface_name],
stdout=PIPE,
check=True,
universal_newlines=True,
)
interface_file_name = output_dir / (interface_name + '.xml')
with open(interface_file_name, mode='w') as f:
f.write(interface_introspection_run.stdout)
interface_file_name.chmod(0o644)
def iterate_executables(output_dir, executables):
output_dir.mkdir(mode=0o755, exist_ok=True)
for exe in executables:
extract_interfaces_xml(output_dir, exe)
def main():
parser = ArgumentParser()
parser.add_argument(
'output',
type=Path,
)
parser.add_argument(
'executables',
type=Path,
nargs='+',
)
args = parser.parse_args()
iterate_executables(args.output, args.executables)
if __name__ == '__main__':
main()