Lennart Poettering [Mon, 10 Dec 2018 16:10:19 +0000 (17:10 +0100)]
udev: introduce udev net_id "naming schemes"
With this we can stabilize how naming works for network interfaces. A
user can request through a kernel cmdline option or an env var which
scheme to follow. The idea is that installers use this to set into stone
(a very soft stone though) the scheme used during installation so that
interface naming doesn't change afterwards anymore.
Why use env vars and kernel cmdline options, and not a config file of
its own?
Well, first of all there's no obvious existing one to use. But more
importantly: I have the feeling that this logic is kind of an incomplete
hack, and I simply don't want to do advertise this as a perfectly
working solution. So far we used env vars for the non-so-official
options and proper config files for the official stuff. Given how
incomplete this logic is (i.e. the big variable for naming remains the
kernel, which might expose sysfs attributes in newer versions that we
check for and didn't exist in older versions — and other problems like
this), I am simply not confident in giving this first-class exposure in
a primary configuration file.
Fixes: #10448
Chris Down [Tue, 11 Dec 2018 13:34:01 +0000 (13:34 +0000)]
Always explicitly discard popped stream type from __fsetlocking
No biggie, but I noticed this while looking into bus_match_to_string.
Lennart Poettering [Tue, 11 Dec 2018 16:37:57 +0000 (17:37 +0100)]
Merge pull request #11100 from abogdanenko/udev-test-check-perm
udev-test: check if permitted to create block device nodes
Lennart Poettering [Tue, 11 Dec 2018 16:37:09 +0000 (17:37 +0100)]
Merge pull request #11119 from cdown/news
NEWS: Add some cgroup related updates
Chris Down [Tue, 11 Dec 2018 13:43:29 +0000 (13:43 +0000)]
NEWS: Add DisableControllers= to v240
Chris Down [Tue, 11 Dec 2018 13:41:50 +0000 (13:41 +0000)]
NEWS: Add that CPUAccounting=yes may not enable CPU controller in v240
Alexey Bogdanenko [Tue, 11 Dec 2018 13:55:34 +0000 (16:55 +0300)]
udev-test: check if permitted to create block device nodes
Alexey Bogdanenko [Tue, 11 Dec 2018 13:55:34 +0000 (16:55 +0300)]
udev-test: add message to show why test-udev failed
Before:
Assertion 'mknod(devname, mode, devnum) == 0' failed at ../src/test/test-udev.c:116, function run(). Aborting.
Assertion 'unlink(devname) == 0' failed at ../src/test/test-udev.c:118, function run(). Aborting.
After:
mknod() failed for '/dev/sda': Operation not permitted
unlink('/dev/sda') failed: No such file or directory
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 11:00:06 +0000 (12:00 +0100)]
nspawn: check cg_ns_supported() just once
cg_ns_supported() caches, so the condition was really checked just once, but
it looks weird to assign the return value to arg_use_cgns (if the variable is not present),
because then the other checks are effectively equivalent to
if (cg_ns_supported() && cg_ns_supported()) { ...
and later
if (!cg_ns_supported() || !cg_ns_supported()) { ...
Evgeny Vereshchagin [Tue, 11 Dec 2018 11:48:29 +0000 (14:48 +0300)]
Merge pull request #11099 from abogdanenko/udev-test-fix-missing-dir
udev-test: fix skip condition and missing directory test/run
Lennart Poettering [Tue, 11 Dec 2018 11:12:58 +0000 (12:12 +0100)]
Merge pull request #11107 from keszybz/udevadm-info-args
Allow multiple args in udevadm info
Lennart Poettering [Tue, 11 Dec 2018 11:12:22 +0000 (12:12 +0100)]
Merge pull request #11116 from keszybz/predictable-interface-names
Predictable interface names
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 10:52:23 +0000 (11:52 +0100)]
Merge pull request #11083 from poettering/nspawn-settings-fixes
read nspawn's .nspawn files before validating configuration
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 10:37:05 +0000 (11:37 +0100)]
Merge pull request #11084 from poettering/networkd-test-fix
unbreak networkd-test.py
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 10:03:50 +0000 (11:03 +0100)]
Merge branch 'predictable-interface-names'
This imports the wiki page for predictable interface names. I think it's
useful to preserve history here because it's a contentious subject, and
it's useful to know when what happened.
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 10:02:06 +0000 (11:02 +0100)]
Rename to follow the convention
Also remove trailing whitespace.
LennartPoettering [Thu, 17 Nov 2016 17:52:54 +0000 (17:52 +0000)]
LennartPoettering [Mon, 14 Nov 2016 19:46:52 +0000 (19:46 +0000)]
TanuKaskinen [Mon, 14 Nov 2016 13:27:59 +0000 (13:27 +0000)]
fix typo
LennartPoettering [Thu, 12 Nov 2015 09:29:35 +0000 (01:29 -0800)]
LennartPoettering [Thu, 12 Nov 2015 09:28:06 +0000 (01:28 -0800)]
ColinGuthrie [Fri, 21 Feb 2014 15:36:45 +0000 (07:36 -0800)]
Deal with 80-net-setup-link.rules introduced in 209.
LennartPoettering [Tue, 10 Sep 2013 01:52:06 +0000 (18:52 -0700)]
LennartPoettering [Tue, 10 Sep 2013 01:50:49 +0000 (18:50 -0700)]
ColinGuthrie [Wed, 22 May 2013 08:55:30 +0000 (01:55 -0700)]
Document the net.ifnames kernel command line.
Joe Rayhawk [Sat, 18 May 2013 08:08:42 +0000 (01:08 -0700)]
moin2mdwn: convert page docs/PredictableNetworkInterfaceNames
LennartPoettering [Tue, 22 Jan 2013 20:22:48 +0000 (20:22 +0000)]
LennartPoettering [Tue, 22 Jan 2013 20:16:41 +0000 (20:16 +0000)]
LennartPoettering [Tue, 8 Jan 2013 18:41:55 +0000 (18:41 +0000)]
LennartPoettering [Tue, 8 Jan 2013 18:29:30 +0000 (18:29 +0000)]
LennartPoettering [Tue, 8 Jan 2013 18:21:59 +0000 (18:21 +0000)]
LennartPoettering [Tue, 8 Jan 2013 17:59:33 +0000 (17:59 +0000)]
LennartPoettering [Tue, 8 Jan 2013 02:02:24 +0000 (02:02 +0000)]
LennartPoettering [Mon, 7 Jan 2013 22:27:04 +0000 (22:27 +0000)]
LennartPoettering [Mon, 7 Jan 2013 22:26:14 +0000 (22:26 +0000)]
LennartPoettering [Mon, 7 Jan 2013 22:23:47 +0000 (22:23 +0000)]
LennartPoettering [Mon, 7 Jan 2013 22:21:36 +0000 (22:21 +0000)]
LennartPoettering [Mon, 7 Jan 2013 22:19:48 +0000 (22:19 +0000)]
127.0.0.1 [Mon, 7 Jan 2013 22:00:47 +0000 (22:00 +0000)]
typo fix
LennartPoettering [Mon, 7 Jan 2013 21:41:35 +0000 (21:41 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:36:45 +0000 (21:36 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:33:19 +0000 (21:33 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:31:23 +0000 (21:31 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:30:57 +0000 (21:30 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:29:44 +0000 (21:29 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:29:02 +0000 (21:29 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:14:27 +0000 (21:14 +0000)]
LennartPoettering [Mon, 7 Jan 2013 21:12:16 +0000 (21:12 +0000)]
LennartPoettering [Mon, 7 Jan 2013 20:54:53 +0000 (20:54 +0000)]
LennartPoettering [Mon, 7 Jan 2013 20:45:16 +0000 (20:45 +0000)]
LennartPoettering [Mon, 7 Jan 2013 20:43:36 +0000 (20:43 +0000)]
LennartPoettering [Mon, 7 Jan 2013 20:41:17 +0000 (20:41 +0000)]
LennartPoettering [Mon, 7 Jan 2013 20:38:43 +0000 (20:38 +0000)]
Zbigniew Jędrzejewski-Szmek [Mon, 10 Dec 2018 13:02:39 +0000 (14:02 +0100)]
udevadm: allow multiple arguments to "info"
This matches udevadm trigger, which allows multiple arguments since
80877656a55.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Dec 2018 10:46:21 +0000 (11:46 +0100)]
udevadm: allow a .device unit to be specified for query and trigger
This is convenient when working with device units in systemd. Instead of
converting the systemd unit name to a path to feed to udevadm, udevadm
info|trigger can be called directly on the unit name.
The man page is reworked a bit to describe the modern syntax with positional
arguments first. It's just simpler to use than the positional options.
Zbigniew Jędrzejewski-Szmek [Tue, 11 Dec 2018 06:34:45 +0000 (07:34 +0100)]
udevadm: use path_startswith and shorten code a bit
Zbigniew Jędrzejewski-Szmek [Mon, 10 Dec 2018 10:06:27 +0000 (11:06 +0100)]
udevadm: improve error output when a device is not specified or specified wrong
udevadm would dump help() output, instead of printing a message about what is
wrong. That's just bad UX. Let's use a different message if the argument is
missing, and a different one if it is invalid.
Also, rework the code to separate the business logic from argument parsing.
Let's not use "default:" in switch statements. This way, the compiler will warn
us if we miss one of the cases.
Emil Soleyman [Tue, 11 Dec 2018 01:18:20 +0000 (01:18 +0000)]
Logitech MX Master 2S: Unifying Receiver and Bluetooth Connectivity (#11078)
* Logitech MX Master 2S: Unifying Receiver and Bluetooth Connectivity
Logitech MX Master 2S can connect through either the unifying receiver
or bluetooth. Clarify that the previous listing was for unifying
receiver and add listing for bluetooth. Note the MOUSE_DPI differences
between the two listings.
Lennart Poettering [Mon, 10 Dec 2018 17:27:28 +0000 (18:27 +0100)]
Merge pull request #11109 from poettering/cgroup-cpu-acct-fixes
cgroup cpuacct controller handling fixes
Lennart Poettering [Mon, 10 Dec 2018 15:09:30 +0000 (16:09 +0100)]
update TODO
Lennart Poettering [Mon, 10 Dec 2018 15:08:33 +0000 (16:08 +0100)]
cgroup: correct mangling of return values
Let's nor return the unmangled return value before we actually mangle
it.
Fixes: #11062
Lennart Poettering [Mon, 10 Dec 2018 15:08:13 +0000 (16:08 +0100)]
cgroup: call cg_all_unified() right before using the result
Let's not query it before we actually need it.
Lennart Poettering [Mon, 10 Dec 2018 14:50:08 +0000 (15:50 +0100)]
Merge pull request #11105 from keszybz/path-parsing
Some tightening of our path parsing code
Thomas Haller [Fri, 23 Nov 2018 21:19:26 +0000 (22:19 +0100)]
network: fix handling of uninitialized and zero IAID setting
An earlier commit
0e408b82b (dhcp6-client: handle IAID with value zero)
introduced a flag to sd_dhcp6_client to distinguish between an unset
IAID and a value set to zero.
However, that was not sufficient and broke leaving the setting
uninitialized in networkd configuration. The configuration parsing
also must distinguish between the default, unset value and an
explict zero configuration.
Fixes:
0e408b82b8bd7675234cf58009475d4f4c0a491a
Zbigniew Jędrzejewski-Szmek [Tue, 4 Dec 2018 13:24:46 +0000 (14:24 +0100)]
pid1: set Description even for devices which don't exist yet
We'd only set the description after the device appeared in sysfs, so
we'd always print
"A start job is running for dev-disk-by\x2duuid-aaaa ... aaaa.device (42s / 1min 30s)"
Let's make this
"A start job is running for /dev/disk/by-duuid/aaaa ... aaaa (42s / 1min 30s)"
https://bugzilla.redhat.com/show_bug.cgi?id=1655860
Cedric Viou [Mon, 10 Dec 2018 12:20:46 +0000 (13:20 +0100)]
Add RF kill switch button for Zbook 15 G2 (#11060)
Lennart Poettering [Thu, 6 Dec 2018 21:00:00 +0000 (22:00 +0100)]
nspawn: move most validation checks and configuration mangling into verify_arguments()
That's what the function is for after all, and only if it's done there
we can verify the effect of .nspawn files correctly too: after all we
should not just validate that everything configured on the command line
makes sense, but the stuff configured in the .nspawn files, too.
Lennart Poettering [Thu, 6 Dec 2018 20:54:11 +0000 (21:54 +0100)]
nspawn: split out code parsing env vars into a function of its own
This then let's us to ensure it's called after we parsed the cmdline,
and after we loaded the settings file, so that it these env var settings
override everything loaded from there.
Lennart Poettering [Thu, 6 Dec 2018 20:49:11 +0000 (21:49 +0100)]
nspawn: move cg_unified_flush() invocation out of parse_argv()
It has nothing to do with argument parsing, and hence shouldn't be
there.
Lennart Poettering [Mon, 10 Dec 2018 11:31:56 +0000 (12:31 +0100)]
Merge pull request #10984 from fbuihuu/tmpfiles-be-more-explicit-with-unsafe-transition
tmpfiles: be more explicit when an unsafe path transition is met
Lennart Poettering [Mon, 10 Dec 2018 11:31:30 +0000 (12:31 +0100)]
Merge pull request #10897 from keszybz/etc-fstab-parsing
Forbid dashes in hostnames and /etc/fstab parsing improvements
Zbigniew Jędrzejewski-Szmek [Fri, 7 Dec 2018 15:49:20 +0000 (16:49 +0100)]
fuzz-unit-file: add one more test case
There seems to be no error per se. RequiresMountsFor=%s%s%s..%s%s%s is expanded to
RequiresMountsFor=/bin/zsh/bin/zsh/bin/zsh/bin/zsh/..., which takes a bit of time,
and then we iterate over this a few times, creating a hashmap with a hashmap
for each prefix of the path, each with one item pointing back to the original unit.
Takes about 0.8 s on my machine.
Zbigniew Jędrzejewski-Szmek [Fri, 7 Dec 2018 15:38:03 +0000 (16:38 +0100)]
Use VLA instead of alloca
The test is the same, but an array is more readable.
Zbigniew Jędrzejewski-Szmek [Fri, 7 Dec 2018 15:22:10 +0000 (16:22 +0100)]
pid1: fix (harmless) off-by-one in PATH_MAX comparison
PATH_MAX is supposed to include the terminating NUL byte. But we already
check that there is no NUL byte in the specified path. Hence the maximum
length we can expect is PATH_MAX - 1.
This doesn't change much, but makes this use of PATH_MAX consistent with the
rest of the codebase.
Zbigniew Jędrzejewski-Szmek [Fri, 7 Dec 2018 15:16:39 +0000 (16:16 +0100)]
basic/path-util: line-break PATH_FOREACH_PREFIX macros
Now I can see what they do :]
Zbigniew Jędrzejewski-Szmek [Fri, 7 Dec 2018 15:12:19 +0000 (16:12 +0100)]
When parsing paths, reject anything above PATH_MAX
The check for length is done after path_simplify(), to be nice to paths which
are constructed using specifiers, and have duplicate slashes and stuff.
Lennart Poettering [Mon, 10 Dec 2018 10:13:21 +0000 (11:13 +0100)]
Merge pull request #11093 from yuwata/update-python-scripts-for-lgtm
Update python scripts for lgtm
Yu Watanabe [Sat, 8 Dec 2018 09:33:38 +0000 (18:33 +0900)]
systemctl: check triggering units only for stopped units
Fixes #11088.
Lennart Poettering [Mon, 10 Dec 2018 10:04:14 +0000 (11:04 +0100)]
Merge pull request #10999 from wkennington/static-neighbor-master
networkd: Static neighbor support
Zbigniew Jędrzejewski-Szmek [Wed, 5 Dec 2018 11:27:29 +0000 (12:27 +0100)]
basic/hostname-util: do truncation last when cleaning up
This allows more of the original name to be used if there are invalid
chars in the beginning.
Zbigniew Jędrzejewski-Szmek [Wed, 5 Dec 2018 11:26:29 +0000 (12:26 +0100)]
Partially unify hostname_is_valid() and dns_name_is_valid()
This makes hostname_is_valid() apply the ldh checks too, rejecting more
hostnames.
Zbigniew Jędrzejewski-Szmek [Wed, 21 Nov 2018 21:58:13 +0000 (22:58 +0100)]
resolve: reject host names with leading or trailing dashes in /etc/hosts
https://tools.ietf.org/html/rfc1035#section-2.3.1 says (approximately)
that only letters, numbers, and non-leading non-trailing dashes are allowed
(for entries with A/AAAA records). We set no restrictions.
hosts(5) says:
> Host names may contain only alphanumeric characters, minus signs ("-"), and
> periods ("."). They must begin with an alphabetic character and end with an
> alphanumeric character.
nss-files follows those rules, and will ignore names in /etc/hosts that do not
follow this rule.
Let's follow the documented rules for /etc/hosts. In particular, this makes us
consitent with nss-files, reducing surprises for the user.
I'm pretty sure we should apply stricter filtering to names received over DNS
and LLMNR and MDNS, but it's a bigger project, because the rules differ
depepending on which level the label appears (rules for top-level names are
stricter), and this patch takes the minimalistic approach and only changes
behaviour for /etc/hosts.
Escape syntax is also disallowed in /etc/hosts, even if the resulting character
would be allowed. Other tools that parse /etc/hosts do not support this, and
there is no need to use it because no allowed characters benefit from escaping.
Zbigniew Jędrzejewski-Szmek [Fri, 23 Nov 2018 14:52:38 +0000 (15:52 +0100)]
resolved: rework parsing of /etc/hosts
Do not treat various errors (missing hostname, invalid address) as fatal,
just warn and continue. /etc/hosts is written by humans and we should not
reject the whole file just because a singly entry is not to our liking.
Handle comments as described in hosts(5):
everything from the comment character until the end of the line should be
ignored.
Fixes #10779.
Add tests.
Franck Bui [Fri, 30 Nov 2018 14:43:13 +0000 (15:43 +0100)]
fs-util: make CHASE_WARN effective with CHASE_NO_AUTOFS
This has the side effect to upgrade the log level at which the log is emitted
from debug to warning.
This might be better since after all we didn't apply a tmpfiles.d/ rule and
that actually might end up being problematic eventually.
Franck Bui [Thu, 29 Nov 2018 10:21:12 +0000 (11:21 +0100)]
fs-util: rename safe_transition() into unsafe_transition()
We're always interested into finding unsafe transitions so let's make the
helper return true when it finds such transitions so we don't need to negate
its results.
No functional changes.
Franck Bui [Wed, 28 Nov 2018 15:09:16 +0000 (16:09 +0100)]
tmpfiles: use CHASE_WARN in addition to CHASE_SAFE
and let's emit a more comprehensive warning when an unsafe transition is
encountered.
Before this patch:
Unsafe symlinks encountered in /run/nrpe, refusing.
After:
Detected unsafe path transition / → /run during canonicalization of /run/nrpe.
Franck Bui [Fri, 30 Nov 2018 14:13:44 +0000 (15:13 +0100)]
fs-util: make chase_symlink() returns -ENOLINK when unsafe transitions are met
We previously returned -EPERM but it can be returned for various other reasons
too.
Let's use -ENOLINK instead as this value shouldn't be used currently. This
allows users of CHASE_SAFE to detect without any ambiguities when unsafe
transitions are encountered by chase_symlinks().
All current users of CHASE_SAFE that explicitly reacted on -EPERM have been
converted to react on -ENOLINK.
William A. Kennington III [Thu, 29 Nov 2018 03:00:58 +0000 (19:00 -0800)]
networkd: Static neighbor support
When using networkd we currently have no way of ensuring that static
neighbor entries are set when our link comes up. This change adds a new
section to the network definition that allows multiple static neighbors
to be set on a link.
William A. Kennington III [Fri, 30 Nov 2018 23:36:33 +0000 (15:36 -0800)]
networkd: Use only a generic CONFIGURING state
This allows us to convey that we are performing multiple link
configuration changes in parallel. This is needed to support configuring
neighbors while simultaneously configuring addresses and routes.
William A. Kennington III [Fri, 30 Nov 2018 23:54:45 +0000 (15:54 -0800)]
networkd: Track address configuration
This will be useful to assert that our static route configuration always
happens after address configuration once our individual configure state
goes away.
Yu Watanabe [Sun, 9 Dec 2018 18:17:33 +0000 (03:17 +0900)]
tree-wide: drop header for emacs from python scripts
Yu Watanabe [Sun, 9 Dec 2018 18:08:52 +0000 (03:08 +0900)]
tools: add one more SPDX license header
Yu Watanabe [Sat, 8 Dec 2018 11:51:56 +0000 (20:51 +0900)]
lgtm: use python3
Yu Watanabe [Sat, 8 Dec 2018 10:33:37 +0000 (19:33 +0900)]
tools: drop unused variable
Yu Watanabe [Sat, 8 Dec 2018 10:31:24 +0000 (19:31 +0900)]
hwdb: drop unused imported object
Yu Watanabe [Sat, 8 Dec 2018 10:27:27 +0000 (19:27 +0900)]
hwdb: drop comment
Alexey Bogdanenko [Sat, 8 Dec 2018 12:35:30 +0000 (15:35 +0300)]
udev-test: fix missing directory test/run
Fixes the following error:
Failed to mount test /run: No such file or directory
By the time command "./test-udev check" calls function "fake_filesystems",
directory "test/run" must be present.
Alexey Bogdanenko [Sat, 8 Dec 2018 08:02:30 +0000 (11:02 +0300)]
udev-test: fix test skip condition
When there is a failure to setup the environment, the following happens:
1. Command "./test-udev check" exits with non-zero code.
2. Perl function "system" returns the code.
3. The code is evaluated as true by Perl.
Then we stop the test.
Evgeny Vereshchagin [Sun, 9 Dec 2018 13:53:03 +0000 (16:53 +0300)]
Merge pull request #11095 from evverx/use-systemd-as-pid1-yolo
travis: use systemd as PID1 in debian containers
Zbigniew Jędrzejewski-Szmek [Sun, 9 Dec 2018 11:10:57 +0000 (12:10 +0100)]
Merge pull request #10931 from yuwata/daemon-util
sd-daemon: add notify_on_cleanup() helper function and use it where applicable