1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-25 10:04:04 +03:00

66461 Commits

Author SHA1 Message Date
Yu Watanabe
0b76cc2fdf udev: split-out formatter and spawning commands from udev-event.c
No functional changes, just refactoring.
2023-07-31 23:23:00 +09:00
Yu Watanabe
1c3edc2ee3 udev: move DEVICE_TRACE() to udev-trace.h
It is only used by udevd, and not necessary in src/shared.
2023-07-31 23:23:00 +09:00
Yu Watanabe
2f7862cc57 meson: sort files 2023-07-31 23:23:00 +09:00
Yu Watanabe
9daec33938 udev-util: drop udev_queue_init() from shared
It is only used in libudev, let's move it.
2023-07-31 23:23:00 +09:00
Yu Watanabe
6d06af80d0 meson: move declaration of PID1 2023-07-31 22:17:34 +09:00
Yu Watanabe
2080c0978d meson: move declarations of nss modules 2023-07-31 22:17:34 +09:00
Yu Watanabe
07e43306b3 meson: move declaration of cryptsetup token modules 2023-07-31 22:17:34 +09:00
Yu Watanabe
c335921e13 meson: introduce infra to build executables and shared libraries by using dictionary
That is not used yet. It will be used later.
2023-07-31 22:17:34 +09:00
Yu Watanabe
1d21a7bd99 meson: move declarations of arrays 2023-07-31 22:17:34 +09:00
Yu Watanabe
6756b61626 resolve: initialize 'current' when SD_RESOLVED_NO_STALE is set
Otherwise, the check below is always fail.
```
if (FLAGS_SET(query_flags, SD_RESOLVED_NO_STALE) && j->until_valid < current)
```

Follow-up for 5ed91481abea382dc486507556e5cdf0f36b796f.
2023-07-31 22:11:58 +09:00
Zbigniew Jędrzejewski-Szmek
6425dec88b tests: skip static asserts on old clang versions
We declare clang >= 10 is supported. The workaround is easy enough, so let's
just do that. Fixes #28598. With Debian clang version 11.0.1-2:

[267/384] Compiling C object test-bitfield.p/src_test_test-bitfield.c.o
FAILED: test-bitfield.p/src_test_test-bitfield.c.o
clang -Itest-bitfield.p -I. -I.. -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -Isrc/shared -I../src/shared -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -Wno-missing-field-initializers -Wno-unused-parameter -Warray-bounds -Wdate-time -Wendif-labels -Werror=format=2 -Werror=implicit-function-declaration -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=missing-declarations -Werror=missing-prototypes -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=undef -Wfloat-equal -Winit-self -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wunused-function -Wwrite-strings '-Wno-error=#warnings' -Wno-string-plus-int -fdiagnostics-show-option -fno-common -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -Wno-typedef-redefinition -Wno-gnu-variable-sized-type-not-at-end -Werror=shadow -fno-strict-aliasing -fvisibility=hidden -fno-omit-frame-pointer -include config.h -DTEST_CODE=1 -MD -MQ test-bitfield.p/src_test_test-bitfield.c.o -MF test-bitfield.p/src_test_test-bitfield.c.o.d -o test-bitfield.p/src_test_test-bitfield.c.o -c ../src/test/test-bitfield.c
../src/test/test-bitfield.c:216:9: error: static_assert failed due to requirement '__builtin_constant_p(({
    static_assert(sizeof(unsigned char) <= sizeof(unsigned long long), "sizeof(uint8_t) <= sizeof(unsigned long long)");
    static_assert(__builtin_choose_expr(__builtin_constant_p(1), 1, 0) < (int)(sizeof(unsigned char) * 8), "__builtin_choose_expr(__builtin_constant_p(1), 1, 0) < (int)(sizeof(uint8_t) * 8)");
    __builtin_choose_expr(__builtin_constant_p(1), ((unsigned char)1) << (1), ({
        int __unique_prefix__i751 = (1);
        do {
            if ((__builtin_expect(!!(!(__unique_prefix__i751 < (int)sizeof(unsigned char) * 8)), 0)))
                log_assert_failed("UNIQ_T(_i, 751) < (int)sizeof(uint8_t) * 8", (&"../src/test/test-bitfield.c"[(sizeof ("..") - sizeof(const char)) + 1]), 216, __func__);
        } while (0);
        ((unsigned char)1) << __unique_prefix__i751;
    }));
}))' "__builtin_constant_p(INDEX_TO_MASK(uint8_t, 1))"
        assert_cc(__builtin_constant_p(INDEX_TO_MASK(uint8_t, 1)));
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/fundamental/macro-fundamental.h:109:25: note: expanded from macro 'assert_cc'
                        ^             ~~~~
/usr/include/assert.h:143:24: note: expanded from macro 'static_assert'
                       ^
...
2023-07-31 14:15:24 +02:00
Zbigniew Jędrzejewski-Szmek
7f4b3dc043 gpt-auto-generator: fix warnings about unused func when !ENABLE_EFI 2023-07-31 14:04:55 +02:00
Luca Boccassi
b173b8186f
Merge pull request #28596 from keszybz/doc-updates
Two documentation updates
2023-07-31 11:11:11 +01:00
Zbigniew Jędrzejewski-Szmek
377d3a31e6 man/systemd.service: advise Type=exec instead of Type=simple
The descriptions of various options are reworked: first say what protocol
actually is, i.e. describe what type of notification the manager waits
for. Only after that describe various steps and things the service should
do. Also, apply some paragraph breaks.

Instead of recommending Type=simple, recommend Type=exec. Say explicitly that
Type=simple, Type=forking are not recommended. Type=simple ignores failure in a
way that doesn't make any sense except as a historical accident. We introduced
'exec' instead of changing 'simple' to keep backwards-compatiblity, but
'simple' is not very useful. 'forking' works, but is inefficient: correctly
programming the interface requires a lot of work, and at runtime, the
additional one or two forks are just a waste of CPU resources. Furthermore, we
now understand that because of COW traps, they may also increase memory
requirements. There is really no reason to use 'forking', except if it's
already implemented and the code cannot be changed to use 'notify'.

Also, remove the recommendations to use Type=simple to avoid delaying boot. In
most cases, if the service can support notifications about startup, those
should be done.

Overall, for new services, "notify", "notify-reload", and "dbus" are the
types that make sense.
2023-07-31 11:23:36 +02:00
Yu Watanabe
4da252c59a network/address: rename address_kernel_{compare,hash}_func() -> address_{compare,hash}_func()
Previously, we had two compare/hash functions. But we do not have
one of them anymore. Let's rename them.
2023-07-31 18:15:26 +09:00
Yu Watanabe
35f0cd02d8 network/address: drop unused functions 2023-07-31 18:15:26 +09:00
Yu Watanabe
f2bcd3245a test-network: add more tests for address properties 2023-07-31 18:15:26 +09:00
Yu Watanabe
b5aefc90e6 network/address: check if existing addresses can be updated in more detail
Some properties of address can be updated, but some cannot.
On reconfiguring an interface or restarting networkd, let's keep an
assigned address only when it can be updated later with the requested
setting, and otherwise drop it.
2023-07-31 18:15:26 +09:00
Yu Watanabe
f35aecc416 network/address: always set IFA_ADDRESS attribute for IPv6 address on configure
IPv6 address can update the peer address without removing the address.
If an address have a peer, but now we want to drop the peer, we need to
specify a null address in IFA_ADDRESS attribute.

IPv4 address cannot update the peer address, so let's specify peer
address only when necessary.
2023-07-31 18:15:26 +09:00
Yu Watanabe
b8e898a681 network/address: make Label= accept an empty string
We usually reset setting when an emptry string is specified.
2023-07-31 18:15:26 +09:00
Yu Watanabe
c5874748a4 network/address: add missing space in log message 2023-07-31 18:15:26 +09:00
Yu Watanabe
d6b64f7abb network/address: do not set configuring flag when a request is canceled
Fixes copy-and-paste error.
Follow-up for 0a0c2672dbd22dc85d660e5baa7e1bef701beb88.
2023-07-31 18:15:26 +09:00
Zbigniew Jędrzejewski-Szmek
02f7f8aa4f systemd-battery-check: provide more debug logs
The logs would give no hint about the answer to most interesting question: why
we decided to return true or false from the program. If we find batteries
that are low or uncertain, log at info level.
2023-07-31 10:06:04 +01:00
Daan De Meyer
7e5bf8981f
Merge pull request #28474 from yuwata/chase-fix
chase: handle ".." more carefully
2023-07-31 10:46:19 +02:00
Zbigniew Jędrzejewski-Szmek
ffe7ddb9bc NEWS: fix misstatement
We don't have type 'ready'.
2023-07-31 09:15:35 +02:00
Luca Boccassi
fcd71b62be
Merge pull request #28595 from medhefgo/elf2efi-fixes
elf2efi: Fixes
2023-07-31 00:07:28 +01:00
Luca Boccassi
e3d0ccb959
Merge pull request #28269 from yuwata/udev-builtin-net_id-cleanups-part1
udev: cleanups and several fixes for net_id builtin
2023-07-30 23:56:54 +01:00
Luca Boccassi
6c0ac118d2
Merge pull request #28567 from yuwata/meson-versiondep
meson:  cleanups for version dependency
2023-07-30 23:40:51 +01:00
Jan Janssen
d0bbe32485 stub: Also reserve sections for EFI stub
The stub image may not have enough sections to cause enough PE header
space to be free for later expansion. Given that the stub is guaranteed
to be expanded we should always reserve enough sections for it.

This also bumps the reservation to 15. It doesn't add more space
compared to current builds but it more closely reflects the amount of
sections that a UKI could have in total if all optional sections are
used.

Fixes: #28593
2023-07-30 21:31:38 +02:00
Jan Janssen
ee91e06a58 elf2efi: Fix header size calculation
The PE header size calculation failed to take the PE magic and coff
header size into account, which will lead to header truncation if we are
writing only 5 sections.
2023-07-30 21:31:38 +02:00
Yu Watanabe
23c5ea76f9
Merge pull request #28573 from yuwata/network-address-next-part2
network: make Address object more consistent with assigned address
2023-07-31 04:14:16 +09:00
Yu Watanabe
d19704cd21 test-network: add testcase for overriding Address.RouteMetric=
For issue #25843.
2023-07-31 02:31:17 +09:00
Yu Watanabe
7e18f9b487 network/address: also save/update priority of prefix route
Strictly speaking, this is not necessary, but let's make the managed
Address objects more consistent with the kernel's addresses.
2023-07-31 02:31:05 +09:00
Yu Watanabe
b33dd04ebe network/address: introduce address_get_harder() and use it where appropriate
With the previous change, now Address objects under requesting are not
owned by Link object, hence we need to also search corresponding Address
object in the request queue.
2023-07-31 02:31:00 +09:00
Yu Watanabe
0a0c2672db network/address: do not add Address object to Link on requesting
Then, all addresses managed by a link really exist (unless the kernel
silently removes addresses).
By this change, now Address objects managed by Link and owned by Request
are decoupled, and always requested settings will be applied.

Fixes #25843.
2023-07-31 02:31:00 +09:00
Yu Watanabe
3c283289ae network/address: make Address object more consistent with assigned address
This makes `manager_rtnl_process_address()`
- first read minimal information to get managed Address object,
- then update the managed Address object directly.

Previously, we updated the Address object managed by Link partially,
e.g. peer address did not updated.
This makes the managed Address object more consistent with the assigned
address.
2023-07-31 02:30:43 +09:00
Yu Watanabe
da59599d3d network: fix typo
Follow-up for bbeceaf2956f6cc12d75d2dc571cfc9fb1d9d839.
2023-07-31 02:08:43 +09:00
Kiran Vemula
bc837621a3 resolved: added show-server-state verb and DumpStatistics varlink method
Added show-server-state verb to resolvectl
Added DumpStatistics and ResetStatistics  methods to varlink
2023-07-31 02:02:03 +09:00
Yu Watanabe
e2aee7ed90
Merge pull request #28591 from yuwata/network-neighbor-next
network/neighbor: follow the kernel's way how to manage neighbors
2023-07-31 01:42:39 +09:00
Yu Watanabe
86d1f7c974
Merge pull request #28575 from yuwata/network-address-next-part3
network: check specified address settings in more detail
2023-07-31 00:59:31 +09:00
Yu Watanabe
8b52860b86
Merge pull request #28572 from yuwata/network-ipv4acd
network: split-out sd_ipv4acd object management from Address object
2023-07-31 00:58:54 +09:00
Frantisek Sumsal
a3d610998a tmpfiles.d: adjust /dev/vfio/vfio access mode
kmod-static-nodes.service sets the mode to 0600, but we want it
to be 0666 as specified in 50-udev-default.rules.

Resolves: #28588
2023-07-31 00:58:01 +09:00
Yu Watanabe
2ede355908 test-network: add tests for several invalid neighbor settings, and overriding settings
This also makes the checks stricter.
2023-07-31 00:40:03 +09:00
Yu Watanabe
5d098f5d36 network/neighbor: do not add Neighbor object to Link on requesting
Then, all neighbors managed by a link really exist (unless the kernel
silently removes neighbors).
2023-07-31 00:39:59 +09:00
Luca Boccassi
167338529b
Merge pull request #28428 from ldv-alt/ERRNO_IS
treewide: cleanup use of ERRNO_IS_*(r)
2023-07-30 16:31:16 +01:00
Yu Watanabe
aa9626ee3b network/neighbor: follow the way how kernel distinguish neighbor settings
The kernel manages neighbors by the destination address, and the
LinkLayerAddress is mutable. Let's manage neighbors in the same way, and
dedup settings.
2023-07-31 00:00:07 +09:00
Yu Watanabe
bbeceaf295 network/neighbor: skip to request neighbors with unmatching link layer address length 2023-07-31 00:00:07 +09:00
Yu Watanabe
5385e5f940 network/ipv4acd: split out sd_ipv4acd management from Address to Link
Then, we can start IPv4ACD without adding corresponding Address object
to Link.

Hopefully, no functional change, just refactoring and preparation for
later commits.
2023-07-30 23:16:41 +09:00
Yu Watanabe
9701be563a in-addr-util: introduce PTR_TO_IN4_ADDR() and IN4_ADDR_TO_PTR()
These should be useful when an IPv4 address is used as a key of a
hashmap.
2023-07-30 23:15:53 +09:00
Yu Watanabe
626d653a90 sd-ipv4acd: introduce sd_ipv4acd_is_bound() 2023-07-30 23:15:53 +09:00