Lennart Poettering [Wed, 20 May 2020 17:22:09 +0000 (19:22 +0200)]
proc-cmdline: make checking of EFI options variable optional
And do not use it in the IMPORT{cmdline} udev code. Wherever we expose
direct interfaces to check the kernel cmdline, let's not consult our
systemd-specific EFI variable, but strictly use the actual kernel
variable, because that's what we claim we do. i.e. it's fine to use the
EFI variable for our own settings, but for the generic APIs to the
kernel cmdline we should not use it.
Specifically, this applies to IMPORT{cmdline} and
ConditionKernelCommandLine=. In the latter case we weren#t checking the
EFI variable anyway, hence let's do the same for the udev case, too.
Fixes: #15739
Lennart Poettering [Wed, 20 May 2020 17:18:45 +0000 (19:18 +0200)]
proc-cmdline: add checking of EFI options variable in proc_cmdline_get_key_many() too
Lennart Poettering [Wed, 20 May 2020 17:17:44 +0000 (19:17 +0200)]
proc-cmdline: fix return value clobbering in proc_cmdline_get_key()
Let's make sure proc_cmdline_get_key() follows our coding style: never
clobber return values on failure, and always initialize on success.
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 14:39:41 +0000 (16:39 +0200)]
Merge pull request #15274 from ssahani/network-issue-9610
DHCP4: Allow lease time to be set when missing from offer
Lennart Poettering [Wed, 20 May 2020 14:18:18 +0000 (16:18 +0200)]
Merge pull request #15490 from ssahani/dhcpv6-vendor-class
network: DHCPv6 - Add support to send vendor class information
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 13:53:28 +0000 (15:53 +0200)]
Merge pull request #15860 from keszybz/bus-message-empty-fields
Fix crash on message with empty fields structure
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 13:48:04 +0000 (15:48 +0200)]
Merge pull request #15661 from hundeboll/mount-read-write-only
Mount read write only
Susant Sahani [Sun, 19 Apr 2020 23:34:36 +0000 (01:34 +0200)]
sd-network: DHCPv4 - Add user class, extra option and send generic options in request state
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 13:40:34 +0000 (15:40 +0200)]
Merge pull request #15535 from fbuihuu/update-runtime-watchdog-on-reload
pid1: update RuntimeWatchogSec setting on daemon-reload as well
ExtinctFire [Wed, 20 May 2020 08:39:09 +0000 (16:39 +0800)]
load-fragment: fix a typo
Correct the typo of “priority” in log message
Martin Hundebøll [Mon, 4 May 2020 08:03:54 +0000 (10:03 +0200)]
man: document x-systemd.rw-only fstab option
Martin Hundebøll [Mon, 4 May 2020 08:02:19 +0000 (10:02 +0200)]
fstab-generator: add x-systemd.rw-only option support
Support enabling the ReadwriteOnly= unit setting from fstab using
'x-systemd.rw-only'
Martin Hundebøll [Fri, 1 May 2020 08:27:06 +0000 (10:27 +0200)]
man: document ReadWriteOnly property for mount units
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 07:25:11 +0000 (09:25 +0200)]
bus-message: immediately reject messages with invalid type
For whatever reason, we were very permissive with accepting messages
of unknown type. Let's just reject any unknown types as early as
possible.
Zbigniew Jędrzejewski-Szmek [Wed, 20 May 2020 07:05:17 +0000 (09:05 +0200)]
bus-message: fix negative offset with ~empty message
In the linked reproducer, m->fields_size == 0, and we calculate ri == -1, which
of course doesn't end well. Skip the whole calculation if m->fields_size == 0,
and also check that we don't go negative even if it is non-zero.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19446 and #15583.
Lennart Poettering [Tue, 19 May 2020 21:07:15 +0000 (23:07 +0200)]
udev: when random MACs are requested, generate them with genuine randomness
This is a security feature, and we thus shouldn't derive the random MACs
from a potentially guessable source. MAC addresses are after all facing
to the outside, and can be interacted with from untrusted environments.
Hence, let's generate them the same way as we generate UUIDs: from
getrandom() or /dev/urandom, and optionally with RDRAND if that's
supported.
RDRAND should be fine, since this is not cryptographic key material, but
ultimately public information. We just want to make sure conflicts are
not likely.
Previously we'd generate the MACs via rand(), which means given the
short seed they are a little bit too guessable, making collisions too
likely. See #14355 in particular.
Fixes: #14355
(Note that #14355 was already fixed by
a0f11d1d11a546f791855ec9c47c2ff830e6a5aa, but I think we should do
better even, and not rely on rand() and uninitialized random pools)
Susant Sahani [Wed, 20 May 2020 05:59:01 +0000 (07:59 +0200)]
DHCPv6: MUD URL lengh - use UINT8_MAX instead of 255
Susant Sahani [Sun, 17 May 2020 15:14:47 +0000 (17:14 +0200)]
network: DHCPv6 - Add support to send vendor class information
Frame 1: 177 bytes on wire (1416 bits), 177 bytes captured (1416 bits) on interface veth-peer, id 0
Ethernet II, Src: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4), Dst: IPv6mcast_01:00:02 (33:33:00:01:00:02)
Internet Protocol Version 6, Src: fe80::1c04:f8ff:feb8:2fd4, Dst: ff02::1:2
User Datagram Protocol, Src Port: 546, Dst Port: 547
DHCPv6
Message type: Solicit (1)
Transaction ID: 0x5ca46b
Rapid Commit
Identity Association for Non-temporary Address
Fully Qualified Domain Name
Vendor Class
Option: Vendor Class (16)
Length: 23
Value:
0000ab11000048656c6c6f3a686f773a6172653a796f75
Enterprise ID: Tom Gundersen (systemd) (43793)
vendor-class-data: Hello:how:are:you
Identity Association for Prefix Delegation
Option Request
Client Identifier
Elapsed time
Susant Sahani [Mon, 20 Apr 2020 07:04:58 +0000 (09:04 +0200)]
sd-network: DHCPv6 - Add support to send vendor class data
```
21.16. Vendor Class Option
This option is used by a client to identify the vendor that
manufactured the hardware on which the client is running. The
information contained in the data area of this option is contained in
one or more opaque fields that identify details of the hardware
configuration. The format of the Vendor Class option is:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_VENDOR_CLASS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| enterprise-number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. vendor-class-data .
. . . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 28: Vendor Class Option Format
option-code OPTION_VENDOR_CLASS (16).
option-len 4 + length of vendor-class-data field.
enterprise-number The vendor's registered Enterprise Number as
maintained by IANA [IANA-PEN]. A 4-octet
field containing an unsigned integer.
vendor-class-data The hardware configuration of the node on
which the client is running. A
variable-length field (4 octets less than the
value in the option-len field).
The vendor-class-data field is composed of a series of separate
items, each of which describes some characteristic of the client's
hardware configuration. Examples of vendor-class-data instances
might include the version of the operating system the client is
running or the amount of memory installed on the client.
Each instance of vendor-class-data is formatted as follows:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| vendor-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
Figure 29: Format of vendor-class-data Field
The vendor-class-len field is 2 octets long and specifies the length
of the opaque vendor-class-data in network byte order.
Servers and clients MUST NOT include more than one instance of
OPTION_VENDOR_CLASS with the same Enterprise Number. Each instance
of OPTION_VENDOR_CLASS can carry multiple vendor-class-data
instances.
```
Susant Sahani [Wed, 20 May 2020 04:23:36 +0000 (06:23 +0200)]
network: DHCPv4- Allow to set DHCP lease lifetime
Susant Sahani [Wed, 20 May 2020 04:30:05 +0000 (06:30 +0200)]
sd-dhcpv4: Allow to configure lease lifetime
Lennart Poettering [Tue, 19 May 2020 17:58:26 +0000 (19:58 +0200)]
update TODO
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 17:38:06 +0000 (19:38 +0200)]
Merge pull request #15482 from ssahani/dhcpv6-userclass
network: DHCPv6 Introduce user class
Michal Koutný [Wed, 6 May 2020 17:17:04 +0000 (19:17 +0200)]
systemctl: Fix frozen state coloring
When unit is in an unhighlighted state, freezer coloring won't be turned off
(active_off is empty) until the end of the TTY output.
Lennart Poettering [Tue, 19 May 2020 17:28:42 +0000 (19:28 +0200)]
Merge pull request #15637 from poettering/cryptsetup-literal
a number of cryptsetup fixes and additions
Lennart Poettering [Wed, 29 Apr 2020 21:10:22 +0000 (23:10 +0200)]
man: document the newly acquired cryptsetup features
Lennart Poettering [Wed, 29 Apr 2020 19:27:53 +0000 (21:27 +0200)]
cryptsetup: fix minor indentation issue
Lennart Poettering [Wed, 29 Apr 2020 17:41:02 +0000 (19:41 +0200)]
cryptsetup: optionally, see if empty password works for unlocking the file system
This adds a new switch try-empty-password. If set and none of PKCS#11 or
key files work, it is attempted to unlock the volume with an empty
password, before the user is asked for a password.
Usecase: an installer generates an OS image on one system, which is the
booted up for the first time in a possibly different system. The image
is encrypted using a random volume key, but an empty password. A tool
that runs on first boot then queries the user for a password to set or
enrols the volume in the TPM, removing the empty password. (Of course, in
such a scenario it is important to never reuse the installer image on
multiple systems as they all will have the same volume key, but that's a
different question.)
Lennart Poettering [Wed, 29 Apr 2020 17:08:03 +0000 (19:08 +0200)]
cryptsetup: fix minor memory leak
Lennart Poettering [Wed, 29 Apr 2020 16:23:02 +0000 (18:23 +0200)]
cryptsetup: also check for /dev/hwrng as random device node
Lennart Poettering [Wed, 29 Apr 2020 16:17:33 +0000 (18:17 +0200)]
cryptsetup: make sure to return EAGAIN on wrong tcrypt password too
Only then we'll try again to ask the user for a password.
Fixes: #12152
Lennart Poettering [Wed, 29 Apr 2020 14:37:14 +0000 (16:37 +0200)]
cryptsetup: automatically load luks keys off disk
Let's make loading of keys a bit more automatic and define a common
place where key files can be placed. Specifically, whenever a volume of
name "foo" is attempted, search for a key file in
/etc/cryptsetup-keys.d/foo.key and /run/cryptsetup-keys.d/foo.key,
unless a key file is declared explicitly.
With this scheme we have a simple discovery in place that should make it
more straightfoward wher to place keys, and requires no explicit
configuration to be used.
Lennart Poettering [Wed, 29 Apr 2020 12:50:38 +0000 (14:50 +0200)]
cryptsetup: split out key loading from pkcs11 code and teach search path logic
Let's do some rearrangements, so that we can later on use this to
automatically search for a key file.
Lennart Poettering [Wed, 29 Apr 2020 12:01:44 +0000 (14:01 +0200)]
cryptsetup: optionally remove key file after use
This is useful when the key file is acquired dynamically in some form
and should be erased after use.
Note that this code tries to be robust, and removes the key file both on
success and on failure.
Lennart Poettering [Wed, 29 Apr 2020 08:22:39 +0000 (10:22 +0200)]
cryptsetup: catch up with debian crypttab options a bit
Support some aliases Debian added, and drop some options that Debian
dropped from our list of unsupported options.
Lennart Poettering [Wed, 29 Apr 2020 11:58:53 +0000 (13:58 +0200)]
fs-util: teach unlinkat_deallocate() a simple scheme for overwriting for erasing
With that it becomes useful for deleting password files and such.
Lennart Poettering [Tue, 19 May 2020 15:15:22 +0000 (17:15 +0200)]
Merge pull request #15845 from poettering/btrfs-encrypted-fix
make path_is_encrypted() test pass on btrfs inside container
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 14:33:46 +0000 (16:33 +0200)]
Merge pull request #15843 from poettering/busctl-duplicate-tweaks
busctl: improve log messages on duplicate members or interfaces
Lennart Poettering [Tue, 19 May 2020 14:29:58 +0000 (16:29 +0200)]
Merge pull request #15848 from keszybz/small-doc-tweaks
A few tweaks to docs
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 14:21:52 +0000 (16:21 +0200)]
NEWS: retroactively document Family=
Requested in https://github.com/systemd/systemd/issues/13233#issuecomment-
630800112.
Franck Bui [Mon, 27 Apr 2020 07:01:18 +0000 (09:01 +0200)]
pid1: make manager_deserialize_{uid,gid}_refs() static
No functional change.
Franck Bui [Mon, 27 Apr 2020 06:59:43 +0000 (08:59 +0200)]
pid1: make manager_serialize_{uid,gid}_refs() static
No functional change.
Franck Bui [Mon, 27 Apr 2020 06:54:44 +0000 (08:54 +0200)]
pid1: make manager_vacuum_{uid,gid}_refs() static
No functional change.
Franck Bui [Mon, 27 Apr 2020 06:49:53 +0000 (08:49 +0200)]
pid1: make manager_flip_auto_status() static
No functional change.
Franck Bui [Mon, 27 Apr 2020 06:36:47 +0000 (08:36 +0200)]
pid1: fold load_configuration() into main()
That's reduce the number of functions dealing with configuration
parsing/loading and should make the code simpler especially since this function
was used only once.
No functional change.
Franck Bui [Wed, 22 Apr 2020 14:16:47 +0000 (16:16 +0200)]
pid1: update manager settings on reload too
Most complexity of this patch is due to the fact that some manager settings
(basically the watchdog properties) can be set at runtime and in this case the
runtime values must be retained over daemon-reload or daemon-reexec.
For consistency sake, all watchdog properties behaves now the same way, that
is:
- Values defined by config files can be overridden by writing the new value
through their respective D-BUS properties. In this case, these values are
preserved over reload/reexec until the special value '0' or USEC_INFINITY
is written, which will then restore the last values loaded from the config
files. If the restored value is '0' or 'USEC_INFINITY', the watchdogs will
be disabled and the corresponding device will be closed.
- Reading the properties from a user instance will return the USEC_INFINITY
value as these properties are only meaningful for PID1.
- Writing to one of the watchdog properties of a user instance's will be a
NOP.
Fixes: #15453
Lennart Poettering [Tue, 12 May 2020 21:36:27 +0000 (23:36 +0200)]
journalctl,elsewhere: make sure --file=foo fails with sane error msg if foo is not readable
It annoyed me for quite a while that running "journalctl --file=…" on a
file that is not readable failed with a "File not found" error instead
of a permission error. Let's fix that.
We make this work by using the GLOB_NOCHECK flag for glob() which means
that files are not accessible will be returned in the array as they are
instead of being filtered away. This then means that our later attemps
to open the files will fail cleanly with a good error message.
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 13:23:23 +0000 (15:23 +0200)]
Merge pull request #15836 from poettering/makefs-lock
lock whole block device file running makefs
Lennart Poettering [Tue, 19 May 2020 07:23:00 +0000 (09:23 +0200)]
repart: don't insist on coming up on partition label ourselves
If the user specified a label, use that.
Fixes: #15841
Lennart Poettering [Tue, 19 May 2020 10:11:04 +0000 (12:11 +0200)]
btrfs-util: tweak error code a bit
Lennart Poettering [Tue, 19 May 2020 10:10:11 +0000 (12:10 +0200)]
test-fs-util: don't fail on btrfs file systems in containers
Fixes: #15821
Susant Sahani [Tue, 19 May 2020 09:16:57 +0000 (11:16 +0200)]
DHCP: Use UINT8_MAX instead of 255
Susant Sahani [Mon, 18 May 2020 12:49:47 +0000 (14:49 +0200)]
network: DHCPv6 - Add support to send user class
Frame 115: 171 bytes on wire (1368 bits), 171 bytes captured (1368 bits) on interface veth-peer, id 0
Ethernet II, Src: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4), Dst: IPv6mcast_01:00:02 (33:33:00:01:00:02)
Internet Protocol Version 6, Src: fe80::1c04:f8ff:feb8:2fd4, Dst: ff02::1:2
User Datagram Protocol, Src Port: 546, Dst Port: 547
DHCPv6
Message type: Solicit (1)
Transaction ID: 0x673257
Rapid Commit
Option: Rapid Commit (14)
Length: 0
Identity Association for Non-temporary Address
Option: Identity Association for Non-temporary Address (3)
Length: 12
Value:
d0cc94090000000000000000
IAID:
d0cc9409
T1: 0
T2: 0
Fully Qualified Domain Name
Option: Fully Qualified Domain Name (39)
Length: 6
Value:
01045a657573
0000 0... = Reserved: 0x00
.... .0.. = N bit: Server should perform DNS updates
.... ..0. = O bit: Server has not overridden client's S bit preference
.... ...1 = S bit: Server should perform forward DNS updates
Client FQDN: Zeus
User Class
Option: User Class (15)
Length: 17
Value:
000f68656c6c6f30313233343031323334
Identity Association for Prefix Delegation
Option: Identity Association for Prefix Delegation (25)
Length: 12
Value:
d0cc94090000000000000000
IAID:
d0cc9409
T1: 0
T2: 0
Option Request
Option: Option Request (6)
Length: 10
Value:
001700180038001f000e
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: NTP Server (56)
Requested Option code: Simple Network Time Protocol Server (31)
Requested Option code: Rapid Commit (14)
Client Identifier
Option: Client Identifier (1)
Length: 14
Value:
00020000ab11d258482fc7eee651
DUID:
00020000ab11d258482fc7eee651
DUID Type: assigned by vendor based on Enterprise number (2)
Enterprise ID: Tom Gundersen (systemd) (43793)
Identifier:
d258482fc7eee651
Elapsed time
Option: Elapsed time (8)
Length: 2
Value: 0bd0
Elapsed time: 30240ms
Susant Sahani [Mon, 18 May 2020 12:46:50 +0000 (14:46 +0200)]
sd-network: DHCPv6 - add support to send userclass option
sd-network: DHCPv6 - add support to send userclass option
21.15. User Class Option
The User Class option is used by a client to identify the type or
category of users or applications it represents.
The format of the User Class option is:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_USER_CLASS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. user-class-data .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 26: User Class Option Format
option-code OPTION_USER_CLASS (15).
option-len Length of user-class-data field.
user-class-data The user classes carried by the client. The
length, in octets, is specified by
option-len.
The information contained in the data area of this option is
contained in one or more opaque fields that represent the user class
or classes of which the client is a member. A server selects
configuration information for the client based on the classes
identified in this option. For example, the User Class option can be
used to configure all clients of people in the accounting department
with a different printer than clients of people in the marketing
department. The user class information carried in this option MUST
be configurable on the client.
The data area of the User Class option MUST contain one or more
instances of user-class-data information. Each instance of
user-class-data is formatted as follows:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| user-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
Figure 27: Format of user-class-data Field
Frantisek Sumsal [Tue, 19 May 2020 08:30:32 +0000 (10:30 +0200)]
Merge pull request #15842 from evverx/cifuzz
cifuzz: protect forks from CIFuzz
Norbert Lange [Wed, 8 Apr 2020 21:59:13 +0000 (23:59 +0200)]
allow removal of initrd services
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 08:09:14 +0000 (10:09 +0200)]
Merge pull request #15794 from poettering/pam-sudo-fixes-part2
pam_systemd/pam_systemd_home: fix caching
Lennart Poettering [Tue, 19 May 2020 07:29:45 +0000 (09:29 +0200)]
Merge pull request #15166 from ssahani/networkctl-ipvlan
networkctl: Add support to display ipvlan
Lennart Poettering [Tue, 12 May 2020 20:09:13 +0000 (22:09 +0200)]
homed: use right config section in example config
We really should get this right, otherwise it's a pretty useless vendor
default example configuration file.
Follow-up for:
c76dd733afe04b36cdac16322a07201c5793f2df
Lennart Poettering [Tue, 19 May 2020 07:04:03 +0000 (09:04 +0200)]
busctl: improve error messages on duplicate members/interfaces
Prompted by: #15833
Lennart Poettering [Tue, 19 May 2020 07:03:43 +0000 (09:03 +0200)]
busctl: use structured initialization
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 06:59:53 +0000 (08:59 +0200)]
TODO: drop some external items
Those are either implemented or obsolete.
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 06:55:46 +0000 (08:55 +0200)]
TODO: drop some networkd items
DUID/IAID — #2818, #2890, #3156,
Scope – #6449,
bond options — #10542,
option 119: sd_network_get_domains/sd_network_get_search_domains,
/proc/cmdline parsing –
426c1d385212e11cb,
wait states — #14536.
Lennart Poettering [Tue, 19 May 2020 06:45:59 +0000 (08:45 +0200)]
Merge pull request #15810 from poettering/override-first-boot
core: allow overriding needs-update/first-boot/system clock via kernel cmdline
Lennart Poettering [Mon, 18 May 2020 19:36:45 +0000 (21:36 +0200)]
dhcp6: slightly improve log message
Let's clarify that we proceed anyway.
Prompted-by: #15830
Evgeny Vereshchagin [Tue, 19 May 2020 06:03:09 +0000 (08:03 +0200)]
README: add a CIFuzz badge
Just a follow-up to https://github.com/systemd/systemd/pull/15760
Evgeny Vereshchagin [Tue, 19 May 2020 05:58:14 +0000 (07:58 +0200)]
cifuzz: protect forks from CIFuzz
CIFuzz isn't compatible with forks: https://github.com/google/oss-fuzz/issues/3731
Vladyslav Tronko [Thu, 14 May 2020 02:26:23 +0000 (05:26 +0300)]
journal: fix dropping first record during upload to remote journal
Zbigniew Jędrzejewski-Szmek [Tue, 19 May 2020 05:54:47 +0000 (07:54 +0200)]
Merge pull request #15838 from poettering/hostnamed-instant-part2
more hostnamed fixes, split out of #15624
Zbigniew Jędrzejewski-Szmek [Mon, 18 May 2020 19:14:42 +0000 (21:14 +0200)]
man: fix dir name in sysctl.d(5)
Pointed out by Коренберг Марк in
https://github.com/systemd/systemd/commit/
e0f424790d3dbde136a29a7fa4c2777c2e3fd695#commitcomment-
39259499.
Lennart Poettering [Tue, 28 Apr 2020 15:43:43 +0000 (17:43 +0200)]
hostnamed: call our destructor _destroy(), not _clear()
Lennart Poettering [Tue, 28 Apr 2020 15:03:12 +0000 (17:03 +0200)]
hostnamed: don't cache system UUID
There's no point in caching this. Let's always get this directly from
sysfs, so that we can never get out-of-date data here (after all this is
going to be cheap, and people might overmount it or so)
Lennart Poettering [Tue, 28 Apr 2020 15:01:56 +0000 (17:01 +0200)]
hostnamed: don't cache uname() data
Let's not cache the uname(), it's very cheap to get it, and just means
we might get out of sync with what is current. After all, the data might
change IRL, due to setarch and stuff.
Lennart Poettering [Mon, 18 May 2020 16:37:02 +0000 (18:37 +0200)]
cryptsetup-generator: use systemd-makefs for implementation of "swap" and "tmp" options
This way we can take benefit of the correct block device locking we just
added.
I was thinking whether to instead pull in a regular
systemd-makefs@.service instance, but I couldn't come up with a reason
to, and thus opted for just doing the minimal patch and just replacing
the simply mkfs calls.
Fixes: #10179
Replaces: #13162
Lennart Poettering [Mon, 18 May 2020 16:32:17 +0000 (18:32 +0200)]
makefs: normalize logging a bit
Lennart Poettering [Mon, 18 May 2020 16:31:45 +0000 (18:31 +0200)]
makefs: lock device while we operate
Let's implement our own specs, i.e.
https://systemd.io/BLOCK_DEVICE_LOCKING/
This should address issues like this: #13162
Lennart Poettering [Thu, 14 May 2020 08:13:40 +0000 (10:13 +0200)]
update TODO
Lennart Poettering [Thu, 14 May 2020 09:01:31 +0000 (11:01 +0200)]
core: allow overriding the system hostname with systemd.hostname= on the kernel command line
Lennart Poettering [Thu, 14 May 2020 08:41:47 +0000 (10:41 +0200)]
main: add a kernel command line option for setting the system clock early during boot
Lennart Poettering [Thu, 14 May 2020 08:11:56 +0000 (10:11 +0200)]
condition: introduce systemd.condition-first-boot= kernel command line switch
Much like systemd.condition-needs-update= this new switch allows
overriding of a unit file condition, but this time its
ConditionFirstBoot=.
Usecase is also primarily debugging, but could be useful for other
schemes too.
Lennart Poettering [Thu, 14 May 2020 08:07:34 +0000 (10:07 +0200)]
condition: debug log if F_OK check on /run/systemd/first-boot fails unexpectedly
Lennart Poettering [Mon, 18 May 2020 18:11:27 +0000 (20:11 +0200)]
condition: reverse if check to lower indentation level
No change in behaviour. Let's just prefer early exit over deeper
indentation.
Lennart Poettering [Thu, 14 May 2020 07:55:57 +0000 (09:55 +0200)]
condition: allow overriding of ConditionNeedsUpdate= on the kernel command line
This should be useful for addressing #15724.
Lennart Poettering [Thu, 14 May 2020 07:37:27 +0000 (09:37 +0200)]
proc-cmdline: add some explanatory comments
Lennart Poettering [Thu, 14 May 2020 07:27:59 +0000 (09:27 +0200)]
condition: when reading /etc/ modification timestamp, let's actualy compare it as-is
Previously, we'd only compare the nsec component of it, which sounds
needlessly fragile. Let's instead compare the timestamp as it is.
Lennart Poettering [Thu, 14 May 2020 07:27:04 +0000 (09:27 +0200)]
condition: downgrade a few log messages to debug
Condition checks shouldn't log loudly, since they run all the time.
Let's make things debuggable, by keeping the messages in LOG_DEBUG in,
but don't make more noise than necessary.
Lennart Poettering [Thu, 14 May 2020 07:20:24 +0000 (09:20 +0200)]
condition: add debug log messages on unexpected errors
Lennart Poettering [Thu, 14 May 2020 07:18:58 +0000 (09:18 +0200)]
condition: check if path is absolute first
We should do this check first since it is done on the string itself
without any conditioning of system state otherwise. It is a weird to do
this test only if /etc is read-only.
Susant Sahani [Thu, 19 Mar 2020 10:29:10 +0000 (11:29 +0100)]
networkctl: Add support to display ipvlan
```
build/networkctl status myipvlan1 ─╯
● 26: myipvlan1
Link File: /usr/lib/systemd/network/99-default.link
Network File: n/a
Type: ether
State: off (unmanaged)
Driver: ipvlan
HW Address: 4e:c5:88:28:c1:c0
MTU: 1500 (min: 68, max: 65535)
QDisc: noop
Mode: L2 (bridge)
Queue Length (Tx/Rx): 1/1
```
Lennart Poettering [Mon, 18 May 2020 16:31:04 +0000 (18:31 +0200)]
blockdev: add helper for locking whole block device
Lennart Poettering [Mon, 18 May 2020 16:30:49 +0000 (18:30 +0200)]
dissect: use log_debug_errno() where appropriate
Lennart Poettering [Mon, 18 May 2020 16:30:18 +0000 (18:30 +0200)]
makefs: log about OOM condition
Lennart Poettering [Mon, 18 May 2020 16:29:57 +0000 (18:29 +0200)]
blockdev: propagate one more unexpected error
Lennart Poettering [Mon, 18 May 2020 16:29:38 +0000 (18:29 +0200)]
update TODO
Zbigniew Jędrzejewski-Szmek [Mon, 18 May 2020 13:26:24 +0000 (15:26 +0200)]
Merge pull request #15804 from poettering/hostnamed-instant-part1
four likely safe commits split out of #15624
Zbigniew Jędrzejewski-Szmek [Mon, 18 May 2020 11:14:36 +0000 (13:14 +0200)]
Merge pull request #15494 from ssahani/dhcpv6-request-options
DHCPv6: Allow to add arbitrary request option
Zbigniew Jędrzejewski-Szmek [Mon, 18 May 2020 06:52:13 +0000 (08:52 +0200)]
Merge pull request #15165 from ssahani/bonding
network: Move common functions of bonding to bond-util
Dimitri John Ledkov [Fri, 15 May 2020 18:16:05 +0000 (19:16 +0100)]
meson: initialize time-epoch to reproducible builds compatible value
Debian Policy encourages to preserve timestamps whenever possible in the
tarballs, thus stable release updates of systemd usually do not bump NEWS file
timestamp. And thus time-epoch remains the same for the lifetime of a release.
It would be better, if each new stable release rebuild of systemd would bump
the time epoch a bit. But at the same time remain
reproducible. SOURCE_DATE_EPOCH is an environmnet variable defined for this
purpose. Thus if available, prefer that, instead of the NEWS file modification
time.
For example, on Debian/Ubuntu under the reproducible builds the
SOURCE_DATE_EPOCH is set to the timestamp from the packaging metadata, thus it
is incremented on every new stable release update, whilst preserving
reproducible builds capability.
Reference: https://reproducible-builds.org/docs/timestamps/
Susant Sahani [Sun, 17 May 2020 09:18:46 +0000 (11:18 +0200)]
dhcpv6 tests: Update since we allow arbitrary options to be set
Susant Sahani [Thu, 23 Apr 2020 12:31:47 +0000 (14:31 +0200)]
network: DHCPv6 - Add support set arbitary request options