Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 8077dc9657 Merge pull request #25389 from fbuihuu/update-test-for-opensuse
Update test/ for openSUSE
2022-11-19 05:58:51 +09:00
Yu Watanabe 0b51a1c8c4 systemctl: do not show unit properties with --all
Fixes a bug introduced by a6e334649d.

Fixes #25343.
2022-11-14 10:00:02 +01:00
Yu Watanabe bf0d5cba56 Merge pull request #25368 from yuwata/bootctl-ignore-invalid-boot-entries
bootctl: ignore invalid boot entries
2022-11-14 10:51:33 +09:00
Yu Watanabe 3a7c2bca2b Merge pull request #25373 from medhefgo/boot-fixes
boot: Small fixes
2022-11-14 08:18:21 +09:00
Yu Watanabe 088377e092 dissect-image: do not try to close invalid fd
Fixes a bug introduced by f7725647bb.

Hopefully fixes #25348.
2022-11-13 21:02:53 +01:00
Yu Watanabe d6c817358c Merge pull request #25338 from DaanDeMeyer/at-fixes
Followups for #24813
2022-11-13 22:59:40 +09:00
Yu Watanabe b3d98761c8 Merge pull request #25339 from dtardon/vertical-tables
Port more tools to vertical table
2022-11-13 22:39:36 +09:00
Yu Watanabe 87172c3df6 Merge pull request #25360 from poettering/strv-fixes
nulstr fixes
2022-11-13 20:17:10 +09:00
Yu Watanabe 8ce056c171 Merge pull request #25355 from poettering/chase-symlinks-no-symlink
chase_symlinks(): add CHASE_PROHIBIT_SYMLINKS
2022-11-13 20:16:34 +09:00
Yu Watanabe ee0f19cfbe Merge pull request #25349 from poettering/table-header-rework-only
format-table: add TABLE_HEADER cell table
2022-11-13 20:16:09 +09:00
Yu Watanabe 1c03f7f4ba ac-power: check battery existence and status
If a battery is not present or its status is not discharging, then
the battery should not be used as a power source.
Let's count batteries currently discharging.

Fixes #25316.
2022-11-13 17:35:27 +09:00
Yu Watanabe 78bfeeae50 bootctl: downgrade log message when firmware reports non-existent or invalid boot entry
Fixes #25359.
2022-11-13 14:41:28 +09:00
Yu Watanabe a7dcb75c53 bootctl: make boot entry id logged in hex
To make consistent with the printed boot id below and other tools e.g.
efibootmgr.
2022-11-13 14:36:09 +09:00
Yu Watanabe 388d14659d find-esp: include device sysname in the log message 2022-11-13 13:27:36 +09:00
Yu Watanabe 01f234c6f5 find-esp: downgrade and ignore error on retrieving PART_ENTRY_SCHEME when searching
Fixes #25332.
2022-11-13 13:22:31 +09:00
Yu Watanabe b27c803601 Merge pull request #25328 from poettering/vertical-tables
format-table: add concept of "vertical" table
2022-11-11 15:18:12 +09:00
Yu Watanabe 251dc2f14b meson: install systemd-ac-power under /usr/bin
And test the its help message.

The program is useful for e.g. scripts that conditionalize their tasks
to be invoked only when running on AC power.
2022-11-10 23:04:23 +01:00
Yu Watanabe b77899af0d test: add tests for mDNS and LLMNR settings 2022-11-10 21:54:56 +09:00
Yu Watanabe e4b3f0dfe9 test: create config under /run 2022-11-10 21:54:56 +09:00
Yu Watanabe c38a03df4a resolvectl: warn if the global mDNS or LLMNR support level is lower than the requested one 2022-11-10 21:54:56 +09:00
Yu Watanabe dc167037c4 resolve: provide effective supporting levels of mDNS and LLMNR
The per-link settings are ignored if the feature is disabled by the global setting.
Let's announce the effective level, to make not users confused.

Closes #24863.
2022-11-10 21:54:56 +09:00
Yu Watanabe bce459e327 resolve: introduce link_get_llmnr_support() and link_get_mdns_support() 2022-11-10 21:54:18 +09:00
Yu Watanabe f6e4aa7b03 resolve: drop redundant call of socket_ipv6_is_supported()
As link_relevant() is called with AF_INET6, which returns true only when
the link has at least one relevant IPv6 address.
2022-11-10 21:46:36 +09:00
Yu Watanabe 7618ab1b71 test-network: skip test_match if alternative name is not supported by kernel
Fixes #25259.
2022-11-10 10:05:43 +00:00
Yu Watanabe bf18862267 Merge pull request #25291 from keszybz/util-cleanup
Split/rename util.c+h and def.h
2022-11-09 09:23:17 +09:00
Yu Watanabe 68773437da Merge pull request #25297 from mrc0mmand/aux-test-fixes
test: fix a race in the systemd-mount test
2022-11-09 06:34:23 +09:00
Yu Watanabe 6c826ed161 Merge pull request #25282 from keszybz/trivial-cleanups
Trivial cleanups
2022-11-08 00:21:40 +09:00
Yu Watanabe aaa411b9f4 Merge pull request #25277 from mrc0mmand/also-coverage
test: add coverage for systemd-mount
2022-11-07 21:59:44 +09:00
Yu Watanabe e31540196b resolve: enable per-link mDNS setting by default
Otherwise, if the link is not managed by systemd-networkd, mDNS cannot
be enabled without calling `resolvectl` explicitly.

Fixes #25252.
2022-11-04 12:31:00 +01:00
Yu Watanabe 072adf2693 Merge pull request #25250 from mrc0mmand/coverage
test: provide coverage for auxiliary utilities
2022-11-04 15:53:03 +09:00
Yu Watanabe 6564918c6c reboot-util: drop unnecessary cast
Follow-up for ede5a78f50.
2022-11-04 11:32:34 +09:00
Yu Watanabe 3f33bfddeb reboot-util: drop redundant headers
Follow-up for ede5a78f50.
2022-11-04 11:32:34 +09:00
Yu Watanabe a2ea44b7db meson: sort libraries
Except for 'threads'.

Follow-up for ede5a78f50.
2022-11-04 11:32:22 +09:00
Yu Watanabe 5286da064c udev: add safe guard for setting by-id symlink
The ID_BUS property is necessary for creating by-id symlinks.
2022-11-03 09:59:54 +09:00
Yu Watanabe b2e53f5a0f udev: drop redundant call of usb_id and assignment of ID_USB_INTERFACE_NUM
The usb_id builtin command is already called in the above, and the
command sets the ID_USB_INTERFACE_NUM property.
2022-11-03 09:59:35 +09:00
Yu Watanabe 01e704eba9 udev: first set properties based on usb subsystem
After 479da1107a, the usb_id builtin
command does not set ID_SERIAL if ID_BUS is already set.
Before the commit, all properties set based on pci bus were overwritten
by the usb_id, hence now it is sufficient setting them only when ID_BUS is
not set yet.

Fixes #25238.
2022-11-03 09:53:19 +09:00
Yu Watanabe a12ba535fa core: fix memleak in GetUnitFileLinks method 2022-11-02 09:09:48 +09:00
Yu Watanabe 005fdee2dd Merge pull request #25229 from mrc0mmand/extend-coverage
test: extend the sanity coverage a bit
2022-11-02 08:24:38 +09:00
Yu Watanabe fcd7998880 test-network: wait for bound interface to be processed by udevd
If another bound interface (dummy98) will be removed before that dummy99
is processed by udevd, then removing dummy98 in the next step makes the
target interface (test1) bring down.

Follow-up for 3e2f7c46da.
2022-11-02 08:24:01 +09:00
Yu Watanabe d8746f1620 test-network: explicitly prepare default.link
On CentOS CI (Arch), 99-default.link is masked. Let's explicitly provide
the same .link file with a different prefix number.
2022-11-01 22:38:37 +09:00
Yu Watanabe b95d35b5ed test-network: resolve interface name from alternative name 2022-11-01 22:38:37 +09:00
Yu Watanabe d7ff72ec9c test-network: fix use of undeclared variable 2022-11-01 22:38:37 +09:00
Yu Watanabe dee6c26f3e test-network: make link_exists() support alternative names 2022-11-01 22:38:37 +09:00
Yu Watanabe 2368ff812d network: update comment 2022-11-01 22:38:33 +09:00
Yu Watanabe 8f7220fc5e wait-online: support alternative names 2022-11-01 22:37:59 +09:00
Yu Watanabe 0d7e58038e wait-online: check received interface name 2022-11-01 22:37:08 +09:00
Yu Watanabe a39a9ac806 network: forcibly reconfigure all interfaces after sleep
Previously, interfaces are partially reconfigured in a spurious way.
Let's use the same way as `networkctl reconfigure`.

Hopefully fixes #14987 and #24997.
2022-11-01 11:47:33 +01:00
Yu Watanabe 3e2f7c46da test-network: add a testcase that all bound interfaces removed
Closes #4202.
2022-11-01 10:28:57 +00:00
Yu Watanabe b438f59c7d Merge pull request #25206 from p-fpv/main
hwdb: Add Lenovo G580
2022-11-01 16:23:09 +09:00
Yu Watanabe f0b75cda5a parse_hwdb: allow negative value for EVDEV_ABS_ properties 2022-11-01 13:10:20 +09:00
Yu Watanabe 2401f920f3 wait-online: split out link_update_name()
No functional changes, just refactoring and preparation for later
commits.
2022-11-01 11:35:27 +09:00
Yu Watanabe e53f43fee8 wait-online: ignore one more error in callback function 2022-11-01 11:35:27 +09:00
Yu Watanabe 9f913d37a0 network: skip to reassign master ifindex if already set
Otherwise, the slave interface may go down, especially when the master
is bond.

Fixes #25067.
2022-10-31 21:13:49 +01:00
Yu Watanabe 04b2541000 udev: drop trivial wrapper for udev_watch_begin() 2022-10-31 21:12:27 +01:00
Yu Watanabe 0e523432aa Merge pull request #25193 from takaswie/topic/udev/builtin/hwdb/ieee1394/support-legacy-layout-of-configuration-rom
hwdb: ieee1394-unit-function: arrangement for legacy device
2022-10-31 15:03:44 +09:00
Yu Watanabe 0f9a160ae1 Merge pull request #25190 from mrc0mmand/reenable-test_macsec
test-network: re-enable test_macsec
2022-10-31 10:39:11 +09:00
Yu Watanabe fa4d3fed46 test-network: add testcase for reconfiguring interface 2022-10-31 09:35:05 +09:00
Yu Watanabe 4069545727 network: try to reconfigure when some information is updated
When at least one of the name, MAC address, udev properties, and so on
for an interface is updated, try to find a matching .network file, and
reconfigure if a new .network file is assigned.

Fixes #24975.
2022-10-31 09:35:05 +09:00
Yu Watanabe 6625c39e70 network: simplify the logic of reading driver and permanent HW address
No functional changes, just refactoring and preparation for later
commits.

Note, `link->dev` should always exist when link state is initialized or
later.
2022-10-31 09:34:41 +09:00
Yu Watanabe 479da1107a udev: always create device symlinks for USB disks
Previously, ata_id might not be able to retrieve attributes correctly,
and properties from usb_id were used as a fallback. See issue #24921
and PR #24923. To keep backward compatibility, still we need to create
symlinks based on USB serial.

Fixes #25179.
2022-10-30 12:02:02 +01:00
Yu Watanabe 269585dcc8 udev: fix for parsing MAC address
Fixes a bug introduced by 5bbcfbaa11.

Fixes #25181.
2022-10-30 11:55:00 +01:00
Yu Watanabe 59ab79a73d test: support non-summer time
Follow-up for 759ed0a253.
2022-10-30 08:26:00 +00:00
Yu Watanabe f5a0162d20 install: process all Wants= symlinks even if some of them fail
Follow-up for 94e7298d30.

Fixes CID#1499992.
2022-10-28 14:36:53 +02:00
Yu Watanabe ee3cbfdbbc test-network: rewrite wait-online address family tests
Fixes #25154.
2022-10-28 12:26:52 +02:00
Yu Watanabe 2ffb134e78 network: drop duplicated period in log message 2022-10-28 11:16:21 +02:00
Yu Watanabe bb80f633bf test-network: add testcase for router preference 2022-10-28 15:56:59 +09:00
Yu Watanabe 6f812d2899 network: adjust route priority based on preference
Even if different preference is specified, the kernel merges multiple
routes with the same preference. This is problematic when a network has
multiple routers.

Fixes #25138.
2022-10-28 15:48:28 +09:00
Yu Watanabe b4f4f1191e test-network: show only IPv4 routes 2022-10-28 11:35:28 +09:00
Yu Watanabe 7db98bc938 network: make RouteTable= also accept route table name 2022-10-28 11:35:17 +09:00
Yu Watanabe 513bed294e network: allow 0 for table number
Fixes #25089.
2022-10-28 11:33:22 +09:00
Yu Watanabe 29de4f7304 network: Table= also accepts table name 2022-10-28 11:03:52 +09:00
Yu Watanabe 97693cb358 Merge pull request #25163 from weblate/weblate-systemd-master
Translations update from Fedora Weblate
2022-10-28 08:27:39 +09:00
Yu Watanabe 4faca0a361 network: allow to (automatically) reconfigure failed interface
We have already allowed to reconfigure failed interface manually, but
not allowed to do automatically, e.g. on carrier gain.
This makes that failed interfaces also reconfigured automatically.

Note, the condition is inversed to shorten the condition.
2022-10-28 04:55:20 +09:00
Yu Watanabe 081466bd57 network: drop redundant condition
The function `link_reconfigure_impl()` has the same condition at the
beginning.
2022-10-28 04:55:20 +09:00
Yu Watanabe 6fadf01cf3 wait-online: ignore -ENODATA from sd_network_link_get_required_for_online()
Follow-up for 778e3da95e.

These settings are saved only when a .network file is assigned to the
interface. Let's silence noisy logs for unmanaged interfaces.
2022-10-27 11:08:38 +02:00
Yu Watanabe 14805b1468 dhcp: use the attached sd_device object when generating IAID
Note, previously `use_mac` set with `test_mode`. As `dev`, which is set with
`client->dev`, is not set when running test or fuzzer. Hence, the condition
```
if (udev_available() && !use_mac)
```
is effectively equivalent to
```
if (dev)
```
So, this commit mostly does not change behavior. Except for the following
corner case.

The sd_device object assigned from networkd (that is, Link.dev) never
has ID_RENAMING udev property, as sd_device objects which has the property
are filtered out at `link_check_initialized()` or `manager_udev_process_link()`
in networkd-link.c.

However, sd_device object created in `dhcp_identifier_set_iaid()` in the
previous code may have it. Such situation may (at least, theoretically)
happen when the network interface is renamed after initialized, e.g. by
creating the following spurious .link file:
```
[Match]
OriginalName=eno1
[Link]
Name=lan
```
and then trigger uevent for the network interface while systemd-networkd
calling `dhcp_identifier_set_iaid()`.
2022-10-27 09:12:47 +09:00
Yu Watanabe dec283e0a9 test: add test for IN_SET() with bitfield specifier 2022-10-27 06:37:01 +09:00
Yu Watanabe 403ca5b8b4 unit: also prioritize input devices when triggering devices
As in most cases, tty device without input devices is meaningless.

This also swaps the priority of tty and net:
- input devices are often connected under USB bus, hence may take
  slightly much time to be initialized. As, described in the above,
  in most cases it is allowed that tty devices are initialized just
  before input devices,
- network configuration usually requires much time, e.g. DHCP or RA,
  hence it is better that network interfaces initialized. Then,
  network services can start DHCP client or friends earlier.

Fixes #24026.
2022-10-26 10:49:09 +02:00
Yu Watanabe 5e577da5f8 hwdb: drop model specifier from general entries
Fixes #25029.
2022-10-26 12:58:13 +09:00
Yu Watanabe 3b1dbdf0c2 network: attach device to DHCP clients
The attached sd_device object will be used later.
2022-10-26 08:08:35 +09:00
Yu Watanabe 793178b987 sd-dhcp6-client: introduce sd_dhcp6_client_attach_device()
It will be used later.
2022-10-26 08:08:35 +09:00
Yu Watanabe be615f7c14 sd-dhcp-client: introduce sd_dhcp_client_attach_device()
It will be used later.
2022-10-26 08:08:35 +09:00
Yu Watanabe 389954987a sd-device: make device_shallow_clone() static 2022-10-26 05:12:54 +09:00
Yu Watanabe 53354d370e sd-device: drop unused device_copy_properties() 2022-10-26 05:05:30 +09:00
Yu Watanabe 28235d1062 udev: use ASSERT_PTR() at one more place 2022-10-26 04:52:06 +09:00
Yu Watanabe 7137f2f3a7 udev: drop ID_RENAMING from UdevEvent.dev_db_clone instead of UdevEvent.dev
As the properties loaded from the database are stored to UdevEvent.dev_db_clone,
instead of UdevEvent.dev.

This also makes the removal done unconditionally, for safety.
2022-10-26 04:44:00 +09:00
Yu Watanabe a505d7e7f8 Merge pull request #25133 from poettering/ddi-dissect
mention "DDIs" in systemd-dissect tool --help text/man page
2022-10-26 03:37:44 +09:00
Yu Watanabe e967926b09 macro: fix indentation 2022-10-26 03:28:08 +09:00
Yu Watanabe bcf04e9b27 tree-wide: fix typo 2022-10-26 03:24:45 +09:00
Yu Watanabe d0f69be793 Merge pull request #25131 from poettering/image-root-help-text-fix
analyze/coredumpctl: add --image=/--root= to --help texts
2022-10-26 03:17:17 +09:00
Yu Watanabe 9918dfb98b test: rewrite tests for renaming network interface
- use `udevadm wait` instead of `udevadm info --wait-initialized`,
- use `timeout` command instead of the fixed time sleep,
- add basic tests for #25106,
- add brief comment about #25115.
2022-10-26 01:47:18 +09:00
Yu Watanabe 4117366a28 btrfs-util: move btrfs_defrag_fd() from fd-util.[ch]
After d71ece3f0b, the function is not used
in libbasic or libsystemd anymore. Let's move it to more appropriate
place.
2022-10-25 16:25:46 +09:00
Yu Watanabe 8cf144c3f6 Merge pull request #25052 from yuwata/resolvconf-compat
resolvconf-compat: first try to use the specified interface name as is
2022-10-25 04:08:41 +09:00
Yu Watanabe 8207ec4b49 Merge pull request #25080 from keszybz/search-paths
Refusing linking files underneath our hierarchy, improve error messages
2022-10-25 01:57:41 +09:00
Yu Watanabe 72ca42c1b4 test: add tests for setting DNS servers by resolvectl or resolvconf 2022-10-25 01:52:16 +09:00
Yu Watanabe 7d4e850323 resolvconf-compat: first parse provided interface name as is
Then, try to drop multiple protocol specifiers at the end.

Strictly speaking, this breaks backward compatibility:
if eth0 and eth0.42 exists, then previously,
    echo 'nameserver 192.168.0.1' | resolvconf -a eth0.42
adds the DNS server to eth0 instead of eth0.42, as we unconditionally
dropped the specifier after the last dot, and
    echo 'nameserver 192.168.0.1' | resolvconf -a eth0.42.dhcp
adds the DNS server to eth0.42. However, with this commit, now
the both commands add the DNS server to eth0.42. But, hopefully,
this should be preferable behavior.

Fixes #25032.
2022-10-24 20:34:10 +09:00
Yu Watanabe 427eeb44f2 resolvectl: rely on invoked_as() 2022-10-24 18:55:53 +09:00
Yu Watanabe a56dd1580d string-util: make free_and_strdup_warn() return 1 when new string is assigned 2022-10-24 18:55:11 +09:00
Yu Watanabe 5905bddce2 systemctl: fix potential memleak on failure in determine_default()
And make verb_set_default() return zero on success.
2022-10-24 18:55:11 +09:00
Yu Watanabe 82c5487894 test: skip one test for iszero_safe() on i386 without SSE2
We do not provide any numerical libraries, and iszero_safe() is only
used in parsing or formatting JSON. Hence, it is not necessary for us to
request that the function provides the same result on different systems.

Fixes #25044.
2022-10-19 00:09:44 +02:00