Commit graph

60867 commits

Author SHA1 Message Date
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
Frantisek Sumsal f9073c24de test-network: suppress a couple of minor pylint complaints 2022-10-30 20:52:24 +01:00
Frantisek Sumsal ef11b841cd test-network: sort standard imports before "third-party" ones 2022-10-30 20:52:20 +01:00
Frantisek Sumsal e43776595c test-network: drop a couple of useless f-strings 2022-10-30 20:43:35 +01:00
Frantisek Sumsal 0677130e81 test-network: use raw strings where appropriate 2022-10-30 20:43:28 +01:00
Frantisek Sumsal b3de9d7bda test-network: re-enable test_macsec
The outstanding kernel panic should be already fixed in recent enough
kernels by [0]. To make the test safe to run anywhere, let's implement
a simple kernel version check and run the test only if we're running
with at least kernel 6.x. The patch might be in some 5.x kernels as
well, but let's be on the safe side and use 6.x as a baseline here
(which is currently the case for Arch and Fedora Rawhide anyway).

[0] https://lore.kernel.org/netdev/7b3fd03e1a46047e5ffe2a389fe74501f0a93206.1656519221.git.sd@queasysnail.net/T/#u
2022-10-30 20:42:11 +01:00
Jan Janssen dcebf1d87e boot: Mark some functions as static 2022-10-30 14:17:11 +01: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
Steve Ramage 1d87f03a6e
man: Add documentation for AssertCredential= (#25178)
Fixes #25177.

Co-authored-by: Steve Ramage <gitcommits@sjrx.net>
2022-10-30 06:07:21 +09:00
Jochen Sprickerhof 27435a2c40 Remove duplicated word 2022-10-29 14:19:43 +09:00
David Seifert 17dc285bd4 test: remove brittle iszero_safe() test
The test relies on finite -> infinite conversion happening
when increasing DBL_MAX.

Fixes #25044.
2022-10-29 11:18:44 +09:00
Nick Rosbrook 6dfaeac370 man: document reboot --poweroff exception
When reboot is invoked, the -p/--poweroff option is intentionally
ignored. Update the man page to reflect this exception.
2022-10-29 06:39:32 +09:00
Luca Boccassi 9109009d24 tmpfiles: downgrade missing creds/source path log to debug
When installing systemd 252 in debian:

Setting up systemd (252~rc3-2) ...
Installing new version of config file /etc/systemd/logind.conf ...
Installing new version of config file /etc/systemd/system.conf ...
Installing new version of config file /etc/systemd/user.conf ...
/usr/lib/tmpfiles.d/provision.conf:13: Credential 'login.motd' not specified, skipping line.
/usr/lib/tmpfiles.d/provision.conf:14: Credential 'login.issue' not specified, skipping line.
/usr/lib/tmpfiles.d/provision.conf:17: Credential 'network.hosts' not specified, skipping line.
/usr/lib/tmpfiles.d/provision.conf:22: Credential 'ssh.authorized_keys.root' not specified, skipping line.
/usr/lib/tmpfiles.d/systemd.conf:43: Copy source path '/.extra/tpm2-pcr-signature.json' does not exist, skipping line.
/usr/lib/tmpfiles.d/systemd.conf:44: Copy source path '/.extra/tpm2-pcr-public-key.pem' does not exist, skipping line.

Downgrade to debug level
2022-10-29 05:29:47 +09: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
Luca Boccassi 60e9a39ac7
Merge pull request #25164 from yuwata/network-route-table-0
network: fix handling of route table 0
2022-10-28 11:23:26 +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
Anders Jonsson d26854c828 po: Translated using Weblate (Swedish)
Currently translated at 100.0% (193 of 193 strings)

Co-authored-by: Anders Jonsson <anders.jonsson@norsjovallen.se>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/sv/
Translation: systemd/main
2022-10-28 01:19:46 +02:00
Olga Smirnova 28903ded71 po: Translated using Weblate (Russian)
Currently translated at 100.0% (193 of 193 strings)

Co-authored-by: Olga Smirnova <mistresssilvara@hotmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/ru/
Translation: systemd/main
2022-10-28 01:19:46 +02: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
Zbigniew Jędrzejewski-Szmek 7155a51e64
Merge pull request #25146 from keszybz/relicese-to-mit-0
Change license of code examples in docs to MIT-0
2022-10-27 07:31:56 +02:00
Zbigniew Jędrzejewski-Szmek 69ce8a7e5a
Merge pull request #25137 from yuwata/sd-device-drop-device-copy-properties
sd-device: drop unused device_copy_properties()
2022-10-27 07:28:22 +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
Lennart Poettering e8cb96ac86 update TODO 2022-10-26 11:09:18 +02: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
Zbigniew Jędrzejewski-Szmek 3fe96b6c32 network: change license of examples to MIT-0
Arguably, CC0 is just fine for examples since they are not code. But it's
easier to be consistent and just use MIT-0 for all "documentation". Thus,
the license is changed similarly code examples under man/.

Based on 'git shortlog -ns network/*' and 'git log -p', the following folks
should ack this:
  Zbigniew Jędrzejewski-Szmek
  Lennart Poettering
  Tom Gundersen
  Yu Watanabe
  Daan De Meyer
  Marc-André Lureau
2022-10-26 08:39:34 +02:00
Zbigniew Jędrzejewski-Szmek 58b415ae61 systemd-sysv-install: change license to MIT-0
See parent commit for explanation.

git blame shows Martin Pitt is the author of the code.

(I was considering whether we should instead drop this file, but it's still
useful for *distributions*. Eveen if we discourage people from using sysv
scripts, distributions will have to deal with them for a while yet.)
2022-10-26 08:39:34 +02:00
Zbigniew Jędrzejewski-Szmek 1fe6d37ea5 man: change license of examples to MIT-0
Quoting Richard Fontana in [1]:

  CC0 has been listed by Fedora as a 'good' license for code and content
  (corresponding to allowed and allowed-content under the new system). We plan
  to classify CC0 as allowed-content only, so that CC0 would no longer be
  allowed for code.

  Over a long period of time a consensus has been building in FOSS that
  licenses that preclude any form of patent licensing or patent forbearance
  cannot be considered FOSS. CC0 has a clause that says: "No trademark or
  patent rights held by Affirmer are waived, abandoned, surrendered, licensed
  or otherwise affected by this document." (The trademark side of that clause
  is nonproblematic from a FOSS licensing norms standpoint.) The regular
  Creative Commons licenses have similar clauses.

For the case of our documentation snippets, patent issues do not matter much.
But it is always nicer to have a license that is considerred acceptable without
any further considerations. So let's change the license to the (now recommended
replacement) MIT-0.

[1] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/NO7KGDNL5GX3KCB7T3XTGFA3QPSUJA6R/

Using 'git blame -b' and 'git log -p --follow', I identified the following
folks as having made non-trivial changes to those snippets:

  Lennart Poettering
  Tom Gundersen
  Luca Bocassi
  Zbigniew Jędrzejewski-Szmek
  Thomas Mühlbacher
  Daan De Meyer

I'll ask for confirmation in the pull request.
2022-10-26 08:39:34 +02:00
Zbigniew Jędrzejewski-Szmek b484bb5f9d licenses: add a copy of MIT-0
Taken from https://spdx.org/licenses/MIT-0.html.
2022-10-26 08:39:34 +02:00
Zbigniew Jędrzejewski-Szmek bdc84a6fc9
Merge pull request #25120 from bluca/test_machineid
unit tests: do not fail when machine-id is missing
2022-10-26 07:43:48 +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
Temuri Doghonadze 4a7b90f8a2 po: Translated using Weblate (Georgian)
Currently translated at 100.0% (193 of 193 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/ka/
Translation: systemd/main
2022-10-26 00:51:42 +02:00
Yu Watanabe 389954987a sd-device: make device_shallow_clone() static 2022-10-26 05:12:54 +09:00