Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe b7591658f0 man,network: fix typo
Follow-up for a06e884264.
2025-04-23 13:42:12 +09:00
Yu Watanabe cda045882e network: enable ARP when IPv4LL and/or IPv4ACD is enabled (#37190) 2025-04-23 08:53:49 +09:00
Yu Watanabe 1393c5a2a4 sd-device: fix sysname check in sd_device_new_from_subsystem_sysname()
For example, consider the following device:
- syspath: /sys/bus/mdio_bus/drivers/Qualcomm Atheros AR8031!AR8033
- subsystem: "drivers"
- driver subsystem: "mdio_bus"
- sysname: "Qualcomm Atheros AR8031/AR8033"  <-- '!' is replaced with '/'

When sd_device_new_from_subsystem_sysname() is called to get the device,
the arguments to sd_device_new_from_subsystem_sysname() should be
- subsystem: "drivers"
- sysname (concatenated with driver subsystem): "mdio_bus:Qualcomm Atheros AR8031/AR8033"

In that case, we need to pass to device_new_from_path_join() the following:
- subsystem: "drivers"
- driver subsystem: "mdio_bus"
- sysname: "Qualcomm Atheros AR8031/AR8033"
- a: "/sys/bus"
- b: "drivers"
- c: "mdio_bus"
- d: "Qualcomm Atheros AR8031!AR8033"
Here, the important point is that the `sysname` argument and the
last argument `d` are differnt: the `sysname` argument needs to match
the sysname obtained by `sd_device_get_sysname()`, but `d` must be
the last path component of the syspath.

Previously, we passed a wrong sysname to device_new_from_path_join().
This fixes the issue.

Fixes a bug in cd7c71154c (v257).
2025-04-23 08:52:29 +09:00
Yu Watanabe f35a48bd57 mkosi: Add extra packages to the tools tree (#37218) 2025-04-23 08:51:44 +09:00
Yu Watanabe 87541e254f meson: use deprecated tag for dns-over-tls and cryptolib meson options
Follow-up for #36937.
2025-04-22 10:10:53 +02:00
Yu Watanabe b4d5115264 test-specifier: replace /dev/initctl with /dev/fd
To make the test work even when systemd is built without SysV compat.
2025-04-22 10:24:42 +09:00
Yu Watanabe 33f90ddefd test: drop nonexistent units from test-unit-name
The test does not request each unit file exists, but keeping legacy unit
names in test sounds spurious. Let's remove them. Hopefully we still
have enough test cases.
2025-04-22 10:24:42 +09:00
Yu Watanabe 97b2e136eb man/systemd: drop explanation about SysV compatibilities
Sooner or later, we will drop the explained SysV compatibilities.
Let's remove them from the man page now to make not people rely on that.
2025-04-22 10:24:42 +09:00
Yu Watanabe 70fd998c40 man/systemd: fix mapping from SysV runlevel to actual target name
See runlevel_to_target() in src/shared/unit-file.c.
2025-04-22 10:24:42 +09:00
Yu Watanabe ca7c4d4d89 unit-file: use STRV_FOREACH_PAIR() macro at one more place 2025-04-22 10:24:42 +09:00
Yu Watanabe f7586abfe0 man/systemctl: list-sockets command sorts the result
This updates the example output of list-sockets command.
2025-04-22 10:24:42 +09:00
Yu Watanabe efe0fe43a8 core: kill StartAuxiliaryScope() DBus method (#37184)
This removes StartAuxiliaryScope() DBus method as already planned and
announced.
This effectively reverts #28836.
2025-04-22 10:18:06 +09:00
Yu Watanabe a0e078e785 NEWS: mention org.freedesktop.systemd1.StartAuxiliaryScope() has been removed 2025-04-22 09:02:48 +09:00
Yu Watanabe 8c35e8a9d2 core: remove deprecated StartAuxiliaryScope() DBus method
The method is deprecated since 64f173324e
(v257) and announced that it will be removed in v258.
Let's remove it now.

This effectively reverts 84c01612de.
2025-04-22 09:02:45 +09:00
Yu Watanabe acd65ba1cd Revert "tests: add test for StartAuxiliaryScope()"
This reverts commit fd7fd59b6d.

The DBus method StartAuxiliaryScope() will be removed in the next
commit.
2025-04-22 09:00:19 +09:00
Yu Watanabe f62465b870 cgroup-util: drop cg_freezer_supported() and cg_ns_supported() (#37201) 2025-04-22 08:58:52 +09:00
Yu Watanabe 7137e0bf24 ssh-proxy: use % as an alternative separator
Since OpenSSH 10.0p1, specifically
https://anongit.mindrot.org/openssh.git/commit/?id=487cf4c18c123b66c1f3f733398cd37e6b2ab6ab
ssh refuses comma in hostname by default.

Let's use % as an alternative separator.

Follow-up for defd5060d6.
2025-04-20 15:15:54 +02:00
Yu Watanabe a06e884264 network: enable ARP= when IPv4LL/IPv4ACD is enabled
We can run sd-ipv4ll/sd-ipv4acd also on an interface with IFF_NOARP
flag, but that may cause address conflict with other hosts.
Let's enable ARPing when sd-ipv4ll/sd-ipv4acd are enabled unless ARP= is
explicitly disabled.
2025-04-20 10:49:15 +09:00
Yu Watanabe b5c83cd5a7 network/ipv4ll: introduce ipv4ll_start() helper function
No effective functional change. Just refactoring.
2025-04-20 10:48:52 +09:00
Yu Watanabe 07021ed4f5 network/link: move logging 2025-04-20 09:46:29 +09:00
Yu Watanabe 6f9d8b685d Add two new paragraphs to coding style about header files (#37188) 2025-04-19 20:46:02 +09:00
Yu Watanabe e895a490b7 NEWS: mention that F20 and friends has been replaced with micmute and so on
Follow-up for #34325.
2025-04-19 05:30:32 +09:00
Yu Watanabe cdf3339c56 bootctl: fix typo
Follow-up for bbeeea4362.
2025-04-19 04:49:29 +09:00
Yu Watanabe a4f003bac0 TEST-17-UDEV: add test case for queued events serialization/deserialization 2025-04-19 01:51:59 +09:00
Yu Watanabe 95e78b5e53 udev: serialize queued events on exit, and deserialize them in the next invocation
To make systemd-udevd not lose received uevents on restart. This may be
important on switching root, even though we typically trigger all devices
after switching root by systemd-udev-trigger.service, but it may be
disabled or modified by admin.
2025-04-19 01:51:50 +09:00
Yu Watanabe 2a6ca54154 hashmap: kill hashmap_free_with_destructor() and friends (#37111)
Now destructor is always set in hash_ops when necessary. Hence,
hashmap_free_with_destructor() and friends are not necessary anymore.
Let's kill them.
2025-04-18 17:40:51 +09:00
Yu Watanabe 39dd06dbc4 meson: build tests for nspawn even -Dnspawn= is disabled
Follow-up for d95818f522.
Fixes #36880.
2025-04-18 09:03:33 +02:00
Yu Watanabe 8e7ef6abb8 NEWS: mention integration-tests meson option is deprecated
Follow-up for 710653d3bc.
2025-04-18 09:36:29 +09:00
Yu Watanabe bdf4f200fd network: update comment as hashmap_free_with_destructor() does not exist anymore 2025-04-18 09:16:44 +09:00
Yu Watanabe 4cbc25ab4c hashmap: drop hashmap_free_with_destructor() and friends 2025-04-18 09:16:44 +09:00
Yu Watanabe 885001ed5d hashmap: drop unused free func arguments in hashmap_free() and hashmap_clear() 2025-04-18 09:16:44 +09:00
Yu Watanabe 2d4c4d9e10 set: drop unused set_free_free() 2025-04-18 09:16:44 +09:00
Yu Watanabe 828513ee3e test: make the copied set not take the ownership of elements 2025-04-18 09:16:44 +09:00
Yu Watanabe b0a2d49b61 test: use string_hash_ops_free 2025-04-18 09:16:44 +09:00
Yu Watanabe f6a2a9ba93 daemon-util: remove existing fds with the same name from fdstore
Currently, all use cases of notify_push_fd()/notify_push_fdf()
assume that the name of each fd in the fdstore is unique.
For safety, let's remove the existing fds before pushing a new one
to avoid multiple fds with the same name stored in the fdstore.
2025-04-18 09:12:43 +09:00
Yu Watanabe 1785961660 udev: re-add unintentionally dropped error log
Follow-up for 9b6bf4e10e.
2025-04-18 09:06:09 +09:00
Yu Watanabe 7baf24c949 network/manager: hash_ops related cleanups (#37121) 2025-04-18 06:00:15 +09:00
Yu Watanabe ce921df8d1 network/network: hash_ops related cleanups (#37120) 2025-04-18 05:59:47 +09:00
Yu Watanabe c96a5d9912 misc: hash_ops related cleanups (#37117) 2025-04-18 05:59:15 +09:00
Yu Watanabe 6858c1fd8b libudev: several trivial cleanups (#37106) 2025-04-18 05:58:41 +09:00
Yu Watanabe bf478dcffb sd-netlink: prepare buffer for dropping unexpected message
Follow-up for c7460cce79 (v219).

Fixes #35654.
2025-04-17 01:52:17 +01:00
Yu Watanabe 76cb6f535e network/netdev: hash_ops related cleanups (#37119) 2025-04-17 03:22:36 +09:00
Yu Watanabe 86aa7cb4b8 network/macsec: use hash_ops with destructor 2025-04-16 23:29:45 +09:00
Yu Watanabe c64c71fbe5 network/macsec: replace security_association_init() with structured initializer 2025-04-16 23:29:45 +09:00
Yu Watanabe 2af1f13c6f network/wireguard: use hash_ops with destructor for managing WireguardPeer 2025-04-16 23:29:45 +09:00
Yu Watanabe 643f1c1306 network/l2tp: use hash_ops with destructor for managing sessions 2025-04-16 23:29:45 +09:00
Yu Watanabe ef79411c31 use hashmap_dump_sorted() and friends at more several places (#37150) 2025-04-16 19:20:19 +09:00
Yu Watanabe f477751b10 docs: fix mkosi section for Environment= setting 2025-04-16 08:30:25 +09:00
Yu Watanabe 667fc1d993 conf-files: use hashmap_dump_sorted() at one more place 2025-04-16 08:17:52 +09:00
Yu Watanabe dcf1c14b95 resolve: use set_dump_sorted() at one more place 2025-04-16 08:16:21 +09:00
Yu Watanabe a0fa3f1616 resolve: fix memleak
Follow-up for 5c274555c3.
2025-04-15 23:34:49 +01:00
Yu Watanabe 8a05dbb31a core: remove cgroup v1 properties (#37026) 2025-04-16 06:22:46 +09:00
Yu Watanabe b2b270e1d1 cgroup-setup: use path_join() to get path to cgroup attribute
We already have the path to the cgroup. Hence, it is not necessary to
call cg_get_path() again.
2025-04-16 03:56:04 +09:00
Yu Watanabe 188286eec6 cgroup-setup: drop unnecessary controller argument
This also removes unnecessary cg_{create,attach,trim}_everywhere(),
and rename cg_enable_everywhere() -> cg_enable().
2025-04-16 03:56:04 +09:00
Yu Watanabe c35a585763 cgroup-setup: drop cgroup v1 support 2025-04-16 03:56:04 +09:00
Yu Watanabe 3988e2489a core: drop several more cgroup version check 2025-04-16 03:56:04 +09:00
Yu Watanabe 3fcb98cbff core/bpf-foreign: drop unnecessary check for cgroup v1 2025-04-16 03:56:04 +09:00
Yu Watanabe ff7f99db30 core/bpf-devices: drop cgroup v1 support 2025-04-16 03:55:00 +09:00
Yu Watanabe 4ee64e4365 core/cgroup: drop cgroup v1 specific code in unit_update_cgroup() 2025-04-16 03:42:11 +09:00
Yu Watanabe 35f88201f2 core/cgroup: drop unnecessary cgroup version check in several getters
After 2b61489e5a, these checks are not
necessary anymore.
2025-04-16 03:25:46 +09:00
Yu Watanabe 0818300288 core/cgroup: drop unnecessary _unified_ modifier from function names 2025-04-16 03:25:45 +09:00
Yu Watanabe f1c5534eb6 core/cgroup: remove logic of CGroup v1 attribute assignment 2025-04-16 03:19:16 +09:00
Yu Watanabe a7b06f6c30 core/cgroup: remove unused legacy parameters in CGroupContext 2025-04-15 22:34:22 +09:00
Yu Watanabe 3e316a6699 core/cgroup: remove CGroup v1 settings in dump message 2025-04-15 22:34:22 +09:00
Yu Watanabe 5da476ac77 bus-unit-util: refuse setting CGroup v1 properties through DBus 2025-04-15 22:34:22 +09:00
Yu Watanabe db6986e02c core: deprecate CGroup v1 DBus properties 2025-04-15 22:34:22 +09:00
Yu Watanabe 98d64ff500 core: remove deprecated CGroup v1 settings 2025-04-15 22:34:22 +09:00
Yu Watanabe 051675ea80 test: replace deprecated CGroup v1 settings with v2 ones 2025-04-15 22:34:22 +09:00
Yu Watanabe 5d902cc21f journal: hash_ops related cleanups (#37115) 2025-04-15 22:32:15 +09:00
Yu Watanabe 9fdb01ed66 resolve: hash_ops related cleanups (#37116) 2025-04-15 22:31:57 +09:00
Yu Watanabe 7a7a9bbed3 network-tools: hash_ops related cleanups (#37118) 2025-04-15 22:31:40 +09:00
Yu Watanabe 3cb9ac88a0 journal: drop old kernels support (#37137)
This drops several codes for supporting old kernels.
Also, this cleanups code a bit.
2025-04-15 22:30:51 +09:00
Yu Watanabe 7566bbc5cb journal/kmsg: drop old kernels (<3.6) support
The flags field was added by kernel v3.6:
https://github.com/torvalds/linux/commit/d39f3d77c9b1fe7cc33a14beb4a4849af0a4ac22

Now our baseline on the kernel is v5.4, so we can assume there exists
the flags field after the monotonic timestamp.

This also adds several short comments.
2025-04-15 06:19:07 +09:00
Yu Watanabe 9ec1e87bf3 journal/kmsg: modernize server_open_dev_kmsg()
Let's assign fd and event source only on success.
2025-04-15 06:18:52 +09:00
Yu Watanabe 117aa1cab4 journal/kmsg: drop Server.dev_kmsg_readable flag and use Server.read_kmsg
When /dev/kmsg is opened, the two flags have the same value.

This also adds an assertion in server_read_dev_kmsg().
2025-04-15 06:17:22 +09:00
Yu Watanabe da741d9fd9 journal/kmsg: drop support old kernels (<3.5) without reading /dev/kmsg support
/dev/kmsg is readable since kernel v3.5:
https://github.com/torvalds/linux/commit/e11fea92e13fb91c50bacca799a6131c81929986

Now our baseline on the kernel is v5.4. Let's assume /dev/kmsg is always
readable.
2025-04-15 05:22:28 +09:00
Yu Watanabe d127423ce6 journal: remove old kernels (<3.2) support in monitoring hostname
Similar to cc983fc9dc.
2025-04-15 04:24:12 +09:00
Yu Watanabe b01f00e9c5 test: drop error conditions for old kernels (<3.2)
Now our baseline on the kernel is 5.4.
2025-04-15 03:41:40 +09:00
Yu Watanabe d50cfa98aa tree-wide: IFA_FLAGS is supported since kernel v3.14
Now our baseline on the kernel is v5.4.
Let's unconditionally use the IFA_FLAGS attribute, and drop the getter
and setter for the deprecated header element.

Continuation of 29c2d4e158.
2025-04-15 03:41:16 +09:00
Yu Watanabe 6dbf2c1beb sd-netlink,sd-device: drop old kernels (<4.2) support
NETLINK_LIST_MEMBERSHIPS is supported since kernel v4.2, specifically
https://github.com/torvalds/linux/commit/b42be38b2778eda2237fc759e55e3b698b05b315

Our baseline on the kernel is v5.4. Let's drop unnecessary conditions.
2025-04-15 03:40:40 +09:00
Yu Watanabe d3d375a686 udev-builtin-net_id: drop old kernels (<4.20) support
Since kernel v4.20, specifically since
https://github.com/torvalds/linux/commit/9b8b2a323008aedd39a8debb861b825707f01420
IP-over-Infiniband driver also uses dev_port.

As our baseline on the kernel is v5.4. Let's remove the fallback code.
For more details about the fallback, see
https://github.com/systemd/systemd/pull/10082#issuecomment-421416461
2025-04-15 03:40:14 +09:00
Yu Watanabe 6d203bd830 test-condition: drop cgroup version check
After f74ca66e68, we do not check the
cgroup version of the runtime environment, and unconditionally returns 0
for "v1", and 1 for "v2".
2025-04-14 17:22:46 +01:00
Yu Watanabe cc983fc9dc resolve: drop code for supporting old kernels (<3.2)
Now our baseline on the kernel is 5.4.

Note, the removed code triggered assert_return() in
sd_event_source_set_description().
2025-04-14 22:26:40 +09:00
Yu Watanabe 5e3887e6c1 loop-util: drop workaround for kernel older than v5.0
Now our baseline on the kernel is v5.4.
2025-04-14 21:57:53 +09:00
Yu Watanabe cde55c44ed core: hash_ops related cleanups (#37114) 2025-04-14 03:17:26 +09:00
Yu Watanabe 308a3872e9 shared/condition: remove cgroup hierarchy check (#37101) 2025-04-14 03:17:01 +09:00
Yu Watanabe be1f90d97f socket-proxy: fix use-after-free
Fixes a bug in 10e41cdddc.
Fixes CID#1609061.
2025-04-13 10:24:50 +01:00
Yu Watanabe 52278e0634 network/wiphy: use hash_ops with destructor for managing Wiphy objects 2025-04-13 10:15:02 +09:00
Yu Watanabe 4cf443e644 network/link: use hash_ops with destructor for managing Link objects 2025-04-13 10:15:02 +09:00
Yu Watanabe a85f73fa55 network/network: use hash_ops with destructor for managing Network objects 2025-04-13 10:15:02 +09:00
Yu Watanabe 09ddaf2af3 hashmap: introduce ordered_hashmap_free_and_replace() 2025-04-13 10:15:02 +09:00
Yu Watanabe 919aeb666a network/network: use hash_ops with destructor for managing stacked netdevs 2025-04-13 10:15:02 +09:00
Yu Watanabe 1b25b88f82 network/bridge-fdb,mdb: use hash_ops with destructor 2025-04-13 10:10:29 +09:00
Yu Watanabe 5c6e6f5ad1 network/dhcp-server: use hash_ops with destructor for static lease 2025-04-13 10:10:29 +09:00
Yu Watanabe 10d786458c network/radv: use hash_ops with destructor for managing prefixes 2025-04-13 10:10:29 +09:00
Yu Watanabe d3af116afd network,udev: use hash_ops with destructor to manage SR-IOV configs 2025-04-13 10:09:53 +09:00
Yu Watanabe 32b5deb1b2 network/ndisc: replace set_free_free() with set_free()
They uses in_addr_prefix_hash_ops_free, hence set_free() is enough.
2025-04-13 10:09:45 +09:00
Yu Watanabe 6d1a69d0f0 network: use in6_addr_hash_ops_free in Network.ipv6_proxy_ndp_addresses
This also one adjustment to network_adjust_ipv6_proxy_ndp().
2025-04-13 10:09:45 +09:00
Yu Watanabe 25a9bd72ef network: use dns_name_hash_ops_free in dnssec negative trust anchors 2025-04-13 10:09:45 +09:00
Yu Watanabe fadc825c5b test-networkd-conf: config_parse_ether_addrs() uses ether_addr_hash_ops_free
Hence, set_free() is enough to free the result.
2025-04-13 10:04:08 +09:00