William A. Kennington III [Fri, 19 Apr 2019 00:52:28 +0000 (17:52 -0700)]
networkd: Routes should take the gateway into account
Otherwise, changing the default gateway doesn't purge old gateway routes
left on the system during daemon restart. This also fixes removing other
foreign gateway routes that don't match the expected configuration.
Tested:
Changed gateway addresses prior to the patch and they lingered on
the system during each reconfiguration. Applied this patch and
reconfigured gateways and other routes multiple times and it removed
the foreign routes that had gateways that didn't match.
Signed-off-by: William A. Kennington III <william@wkennington.com>
Yu Watanabe [Tue, 6 Aug 2019 23:07:57 +0000 (08:07 +0900)]
Merge pull request #13265 from keszybz/timedated-ntp-logging
Timedated logging and service priority
Zbigniew Jędrzejewski-Szmek [Mon, 5 Aug 2019 10:50:11 +0000 (12:50 +0200)]
timedated: always enable&start the service with highest priority
This removes a special case that was implemented before: if some service
was already enabled, we'd treat it as having higher priority.
From https://bugzilla.redhat.com/show_bug.cgi?id=1735584#c4:
> Setting ntp off and on should give the same result as just setting it
> on. There should be no stickiness (hidden state). It should behave like
> running an ansible role.
>
> The other service might have been enabled because no other was installed at
> the time. If I install a new NTP service with a higher priority, setting ntp
> on should enable and start the new service, and disable all other. Also, if
> for some reason multiple services are enabled, after setting ntp on there
> should be only one enabled to avoid systemd selecting between them randomly
> on the next boot.
Ronan Pigott [Tue, 6 Aug 2019 02:07:31 +0000 (19:07 -0700)]
systemctl: Add unit file states to state help message
Ronan Pigott [Mon, 5 Aug 2019 22:41:16 +0000 (15:41 -0700)]
man: fix typo in resolvectl(1) man page
Zbigniew Jędrzejewski-Szmek [Sun, 4 Aug 2019 09:06:59 +0000 (11:06 +0200)]
timedated: log about unit enablement actions and enhance logs in general
The general idea is that for things which can occur repeatedly, like SetNTP
being called with the same argument, we only log at debug level. For things
which change state, like when we realize that a unit that wasn't enabled
before needs to be enabled, we log at info level.
Also, don't return success if there are no units loaded.
Yu Watanabe [Sun, 4 Aug 2019 23:05:54 +0000 (08:05 +0900)]
unit: drop Before=sysinit.target from systemd-random-seed.service
Follow-up for
26ded55709947d936634f1de0f43dcf88f594621.
The commit says,
> Note that with this change sysinit.target (and thus early boot) is NOT
systematically delayed until the entropy pool is initialized,
But the dependency was not dropped.
This was found by David Seifert (@SoapGentoo).
Zbigniew Jędrzejewski-Szmek [Mon, 5 Aug 2019 13:02:13 +0000 (15:02 +0200)]
meson: create (empty) /etc/systemd/system during installation
We explicitly create /etc/systemd/user and other parts of the basic directory
tree. I think we should create /etc/systemd/system too. (The alternative would
be to not create those other directories too, but I think it's nice to have
the basic directory structure in place after installation.)
https://bugzilla.redhat.com/show_bug.cgi?id=1737362
Frantisek Sumsal [Mon, 5 Aug 2019 18:02:40 +0000 (18:02 +0000)]
Merge pull request #12884 from mrc0mmand/numapolicy-test
test: introduce TEST-36-NUMAPOLICY
Zbigniew Jędrzejewski-Szmek [Mon, 5 Aug 2019 14:37:53 +0000 (16:37 +0200)]
shared/exit-status: fix off-by-one in comment
Zbigniew Jędrzejewski-Szmek [Mon, 5 Aug 2019 14:36:45 +0000 (16:36 +0200)]
shared/exit-status: fix lookup
FLAGS_SET() is the wrong operator here, because we want to see if
*any* bits are set. Add test.
https://github.com/systemd/systemd/pull/12884#issuecomment-
518238410
Zbigniew Jędrzejewski-Szmek [Mon, 5 Aug 2019 13:43:23 +0000 (15:43 +0200)]
Merge pull request #13258 from yuwata/login-revert-handle-ignore-assertion
Revert "logind: remove unused check"
Frantisek Sumsal [Mon, 5 Aug 2019 12:38:45 +0000 (14:38 +0200)]
test: add a simple sanity check for systems without NUMA support
Frantisek Sumsal [Mon, 22 Jul 2019 22:56:04 +0000 (00:56 +0200)]
test: give strace some time to initialize
The `coproc` implementation seems to be a little bit different in older
bash versions, so the `strace` is sometimes started AFTER `systemctl
daemon-reload`, which causes unexpected fails. Let's help it a little by
sleeping for a bit.
Frantisek Sumsal [Tue, 2 Jul 2019 07:52:45 +0000 (09:52 +0200)]
test: skip the test on systems without NUMA support
Frantisek Sumsal [Mon, 1 Jul 2019 17:53:45 +0000 (19:53 +0200)]
test: make sure the strace process is indeed dead
It may take a few moments for the strace process to properly terminate
and write all logs to the backing storage
Frantisek Sumsal [Mon, 1 Jul 2019 11:08:26 +0000 (13:08 +0200)]
test: support MPOL_LOCAL matching in unpatched strace versions
The MPOL_LOCAL constant is not recognized in current strace versions.
Let's match at least the numerical value of this constant until the
strace patch is approved & merged.
Frantisek Sumsal [Mon, 1 Jul 2019 07:27:59 +0000 (09:27 +0200)]
test: replace `tail -f` with journal cursor which should be...
more reliable
Frantisek Sumsal [Tue, 25 Jun 2019 21:01:40 +0000 (23:01 +0200)]
test: introduce TEST-36-NUMAPOLICY
Frantisek Sumsal [Tue, 25 Jun 2019 20:45:15 +0000 (22:45 +0200)]
test: allow overriding QEMU_OPTIONS from the outside
Yu Watanabe [Sat, 3 Aug 2019 21:08:06 +0000 (06:08 +0900)]
udev: do not try to import properties on commented out lines
Fixes #13257.
Zbigniew Jędrzejewski-Szmek [Sun, 4 Aug 2019 09:06:33 +0000 (11:06 +0200)]
timedated: minor code simplifications
Yu Watanabe [Sun, 4 Aug 2019 08:07:03 +0000 (17:07 +0900)]
Merge pull request #13256 from keszybz/minor-sd-network-cleanup
Minor sd-network cleanup and other coverity-inspired changes
Yu Watanabe [Sat, 3 Aug 2019 20:43:34 +0000 (05:43 +0900)]
Revert "logind: remove unused check"
This reverts commit
f2330acda408a34451d5e15380fcdd225a672473.
Fixes #13255.
Yu Watanabe [Sat, 3 Aug 2019 20:42:53 +0000 (05:42 +0900)]
login: drop space in empty line
Zbigniew Jędrzejewski-Szmek [Sat, 3 Aug 2019 15:46:56 +0000 (17:46 +0200)]
pid1: replace asprintf() with strjoin()
It's nicer. And coverity doesn't need to complain about unchecked return
value (CID#1401780).
Zbigniew Jędrzejewski-Szmek [Sat, 3 Aug 2019 15:43:51 +0000 (17:43 +0200)]
sd-hwdb: use return value from ordered_hashmap_iterate()
Why not? Coverity CID#1402329.
Zbigniew Jędrzejewski-Szmek [Sat, 3 Aug 2019 14:49:39 +0000 (16:49 +0200)]
libsystemd-network: make option_append() atomic and make the code a bit clearer
Comparisons are done in the normal order (if (need > available), not if (available < need)),
variables have reduced scope and are renamed for clarity.
The only functional change is that if we return -ENAMETOOLONG, we do that
without modifying the options[] array.
I also added an explanatory comment. The use of one offset to point into three
buffers is not obvious.
Coverity (in CID#1402354) says that sname might be accessed at bad offset, but
I cannot see this happening. We check for available space before writing anything.
Yu Watanabe [Fri, 2 Aug 2019 20:05:43 +0000 (05:05 +0900)]
unit: make logind can access ESP
Fixes the following error:
```
logind[601]: Failed to open file system "/dev/block/259:1": Operation not permitted
```
Zbigniew Jędrzejewski-Szmek [Sat, 3 Aug 2019 12:15:52 +0000 (14:15 +0200)]
Merge pull request #13253 from yuwata/udev-update-logs
udev: update log messages
Yu Watanabe [Fri, 2 Aug 2019 21:04:34 +0000 (06:04 +0900)]
udev-node: fix misleading log messages
This fixes the following logs:
```
drm_dp_aux2: Handling device node '/dev/drm_dp_aux2', devnum=c238:2, mode=
037777777777, uid=
4294967295, gid=
4294967295
drm_dp_aux2: Preserve permissions of /dev/drm_dp_aux2,
037777777777, uid=
4294967295, gid=
4294967295
```
Yu Watanabe [Fri, 2 Aug 2019 20:38:13 +0000 (05:38 +0900)]
udev-event: log device name on spawning commands
Miroslav Lichvar [Thu, 1 Aug 2019 09:47:18 +0000 (11:47 +0200)]
time-util: improve detection of synchronized clock
Instead of checking for the STA_UNSYNC flag in the timex status, check
the maximum error. It is updated by the kernel, increasing at a rate of
500 ppm. The maximum value is 16 seconds, which triggers the STA_UNSYNC
flag.
This follows timedatex and allows timedated to correctly detect a clock
synchronized by chronyd when configured to not synchronize the RTC.
Zbigniew Jędrzejewski-Szmek [Thu, 1 Aug 2019 15:31:12 +0000 (17:31 +0200)]
Merge pull request #13243 from keszybz/two-cryptsetup-quickfixes
Two cryptsetup quickfixes
Zbigniew Jędrzejewski-Szmek [Thu, 1 Aug 2019 06:15:43 +0000 (08:15 +0200)]
cryptsetup: don't assert on variable which is optional
https://github.com/systemd/systemd/commit/
50d2eba27b9bfc77ef6b40e5721713846815418b#commitcomment-
34519739
In add_crypttab_devices() split_keyspec is called on the keyfile argument,
which may be NULL.
Zbigniew Jędrzejewski-Szmek [Thu, 1 Aug 2019 06:13:13 +0000 (08:13 +0200)]
cryptsetup: use unabbrieviated variable names
Now that "ret_" has been added to the output variables, we can name
the internal variables without artificial abbrevs.
Frantisek Sumsal [Wed, 31 Jul 2019 18:59:03 +0000 (18:59 +0000)]
Merge pull request #13225 from mrc0mmand/networkd-test-replace-adduser-with-useradd
test: use `useradd` instead of `adduser`
Frantisek Sumsal [Tue, 30 Jul 2019 18:27:34 +0000 (20:27 +0200)]
test: print an error when networkctl returns an unexpected EC
If networkctl crashes, like recently with SIGABRT, it returns absolutely
no output, which may be confusing during debugging. Help it a little
with a short informative message.
Jan Synacek [Wed, 31 Jul 2019 14:13:35 +0000 (16:13 +0200)]
analyze-security: move assert above first use of the variable (#13238)
Zbigniew Jędrzejewski-Szmek [Wed, 31 Jul 2019 14:08:52 +0000 (16:08 +0200)]
Merge pull request #13239 from poettering/coverity-fixes
four coverity fixes
Lennart Poettering [Wed, 31 Jul 2019 08:20:16 +0000 (10:20 +0200)]
man: reword DeviceAllow= documentation
Don't claim we'd use cgroup.deny much. It's just a way to remove stuff
from device lists, which is nothing we allow users to explicitly
configure.
Also, extend documentation when wildcards may be used, and when not.
Lennart Poettering [Wed, 31 Jul 2019 07:44:28 +0000 (09:44 +0200)]
job: fix coverity issue
Fixes coverity issue 1403550
Lennart Poettering [Wed, 31 Jul 2019 07:42:24 +0000 (09:42 +0200)]
test-chase-symlinks: fix coverity issue
Fixes coverity issue 1403708
Lennart Poettering [Wed, 31 Jul 2019 07:39:12 +0000 (09:39 +0200)]
unit-file: fix coverity issue
Fixes coverity issue 1403820
Lennart Poettering [Wed, 31 Jul 2019 07:38:15 +0000 (09:38 +0200)]
cryptsetup-generator: fix coverity issue
Fixes coverity issue 1403772
Chris Down [Wed, 31 Jul 2019 02:51:10 +0000 (03:51 +0100)]
NEWS: Remove DisableControllers from v243
We already released this in v240 and had a NEWS entry then.
Frantisek Sumsal [Tue, 30 Jul 2019 19:22:10 +0000 (21:22 +0200)]
test-execute: skip test_exec_systemcallfilter_system under ASan
This particular test case keeps intermittently failing due to crashing
LSan when running under clang+ASan. Generally, sanitizers don't
like seccomp filters, so the best option here is to just switch this
test off for this scenario.
Mike Gilbert [Tue, 30 Jul 2019 18:51:38 +0000 (14:51 -0400)]
analyze: declare dump_exit_status outside of HAVE_SECCOMP block
Fixes:
76ed04d936f757763c32db5dbaaebd8b13785d7b
Closes: https://github.com/systemd/systemd/issues/13230
Piotr Drąg [Mon, 29 Jul 2019 15:54:38 +0000 (17:54 +0200)]
po: update Polish translation
Frantisek Sumsal [Tue, 30 Jul 2019 12:27:44 +0000 (14:27 +0200)]
test: use `useradd` instead of `adduser`
`adduser` is in certain cases a standalone package which provides a
better user experience. In other cases it's just a symlink to `useradd`.
And some distributions don't have `adduser` at all, like Arch Linux.
Let's use the `useradd` binary instead, which should provide the same
functionality everywhere.
Yu Watanabe [Tue, 30 Jul 2019 14:14:05 +0000 (23:14 +0900)]
boot: fix build with gnu-efi older than 3.0.5
Lennart Poettering [Tue, 30 Jul 2019 15:55:37 +0000 (17:55 +0200)]
Merge pull request #13119 from keszybz/unit-loading-2
Rework unit loading to take into account all aliases
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 14:21:21 +0000 (16:21 +0200)]
NEWS: more entries and some rewordings
Yu Watanabe [Tue, 30 Jul 2019 14:39:10 +0000 (23:39 +0900)]
bash-completion: support "systemd-analyze exit-status"
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 14:38:59 +0000 (16:38 +0200)]
Merge pull request #13189 from yuwata/network-initrd-generator-unit
unit: update initrd-network-generator.service
Yu Watanabe [Tue, 30 Jul 2019 10:29:44 +0000 (19:29 +0900)]
networkctl: TABLE_BPS requires uint64_t
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 10:29:18 +0000 (12:29 +0200)]
test-unit-file: allow printing of information about specific units
Useful for manual debugging.
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 16:01:13 +0000 (18:01 +0200)]
pid1: drop unit caches only based on mtime
v2:
- do not watch mtime of transient and generated dirs
We'd reload the map after every transient unit we created, which we don't
need to do, since we create those units ourselves and know their fragment
path.
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 15:33:25 +0000 (17:33 +0200)]
analyze: add "unit-files" to dump the unit fragment map
I'm not convinced that this is useful enough to be included... But it is
certainly nice when debugging.
Zbigniew Jędrzejewski-Szmek [Thu, 18 Jul 2019 11:11:28 +0000 (13:11 +0200)]
pid1: use a cache for all unit aliases
This reworks how we load units from disk. Instead of chasing symlinks every
time we are asked to load a unit by name, we slurp all symlinks from disk
and build two hashmaps:
1. from unit name to either alias target, or fragment on disk
(if an alias, we put just the target name in the hashmap, if a fragment
we put an absolute path, so we can distinguish both).
2. from a unit name to all aliases
Reading all this data can be pretty costly (40 ms) on my machine, so we keep it
around for reuse.
The advantage is that we can reliably know what all the aliases of a given unit
are. This means we can reliably load dropins under all names. This fixes #11972.
Zbigniew Jędrzejewski-Szmek [Tue, 2 Apr 2019 09:22:56 +0000 (11:22 +0200)]
shared/unit-file: add a function to validate unit alias symlinks
It turns out most possible symlinks are invalid, because the type has to match,
and template units can only be linked to template units.
I'm not sure if the existing code made the same checks consistently. At least
I don't see the same rules expressed in a single place.
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 10:28:48 +0000 (12:28 +0200)]
TEST-15-DROPIN: add test for details of unit aliasing
I adjusted the tests to pass. I don't think the behaviour makes much sense,
even if we ignore the issue with "lazy loading" of aliases. E.g. in the
last section, the fact that dropins for yup@.service and yup@3.service are
not loaded seems to be a plain old bug.
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 07:33:58 +0000 (09:33 +0200)]
test: use "ln -fs"
Without this, repeated runs of "make -C TEST/... setup" fail when trying
to create the symlink.
Simon Schricker [Tue, 30 Jul 2019 06:00:21 +0000 (08:00 +0200)]
docs: fix typo
Zbigniew Jędrzejewski-Szmek [Tue, 30 Jul 2019 06:27:20 +0000 (08:27 +0200)]
Merge pull request #13219 from poettering/named-exit-codes-tweaks
quick follow-up for the symbolic exit status PR #13207
Lennart Poettering [Mon, 29 Jul 2019 17:57:08 +0000 (19:57 +0200)]
update TODO
Lennart Poettering [Mon, 29 Jul 2019 18:44:54 +0000 (20:44 +0200)]
Merge pull request #13216 from poettering/busctl-format-table
port "busctl list" to format-table.h
Lennart Poettering [Mon, 29 Jul 2019 18:44:39 +0000 (20:44 +0200)]
Merge pull request #13217 from poettering/TODO-updates
udev: warn if rules files are executable
Zbigniew Jędrzejewski-Szmek [Sat, 27 Jul 2019 11:55:29 +0000 (13:55 +0200)]
shared/install: typo
Lennart Poettering [Mon, 29 Jul 2019 17:48:13 +0000 (19:48 +0200)]
Merge pull request #13004 from shinygold/master
cryptsetup: Improve support for keyfiles on removable storage
Lennart Poettering [Mon, 29 Jul 2019 17:44:24 +0000 (19:44 +0200)]
analyze: clarify that 'exit-status' optionally takes arguments
Lennart Poettering [Mon, 29 Jul 2019 17:32:14 +0000 (19:32 +0200)]
Merge pull request #13201 from yuwata/networkctl-merge-table_add_cell
networkctl cleanups and improvements
Yu Watanabe [Mon, 29 Jul 2019 15:58:00 +0000 (00:58 +0900)]
unit: rename initrd-network-generator.service -> systemd-network-generator.service
Yu Watanabe [Mon, 29 Jul 2019 15:50:19 +0000 (00:50 +0900)]
network-generator: rename generated unit files
The tool may be used in the initrd-less systems.
Thiebaud Weksteen [Mon, 29 Jul 2019 12:24:03 +0000 (14:24 +0200)]
logind: notify dbus of changes to session State
This adds the option to monitor transitions between the state Opening ->
Active.
Lennart Poettering [Mon, 29 Jul 2019 17:25:49 +0000 (19:25 +0200)]
man: remove trailing space in link in HTML output
Lennart Poettering [Mon, 29 Jul 2019 17:22:34 +0000 (19:22 +0200)]
analyze: right-align exit status column
Lennart Poettering [Mon, 29 Jul 2019 17:18:56 +0000 (19:18 +0200)]
analyze: rename "exit-codes" to "exit-status"
waitid(2) and the libc function signature calls this "exit status", and
uses "exit code" for something different. Let's stick to the same
nomenclature hence.
Lennart Poettering [Mon, 29 Jul 2019 17:14:09 +0000 (19:14 +0200)]
analyze: always use "int" to display exit status values
That's what it actually is, hence let's use that and cast when the type
is bigger.
Lennart Poettering [Mon, 29 Jul 2019 17:05:25 +0000 (19:05 +0200)]
exit-status: rename EXIT_STATUS_GLIBC → EXIT_STATUS_LIBC
After all these two exit codes are defined by ISO C as part of the C
library, and it's not the GNU implementation defines them.
Lennart Poettering [Mon, 29 Jul 2019 16:58:06 +0000 (18:58 +0200)]
Merge pull request #13207 from keszybz/symbolic-exit-code-names
Symbolic exit code names
Lennart Poettering [Mon, 29 Jul 2019 16:35:07 +0000 (18:35 +0200)]
update TODO
Lennart Poettering [Mon, 29 Jul 2019 14:00:26 +0000 (16:00 +0200)]
TODO: drop udev access mode item we just implemented
Lennart Poettering [Mon, 29 Jul 2019 13:59:20 +0000 (15:59 +0200)]
udev: warn on rules files with weird access modes
Lennart Poettering [Mon, 29 Jul 2019 13:52:27 +0000 (15:52 +0200)]
TODO: remove item implemented in
f05e1ae6660
Zbigniew Jędrzejewski-Szmek [Sat, 27 Jul 2019 21:40:24 +0000 (23:40 +0200)]
pid1: use LOG_DEBUG/INFO/NOTICE for unit resource consumption message
We now log at LOG_INFO for any unit. Let's vary the log level
a bit, so that for normal short lived-units (less than 1 sec CPU),
we only log if debugging is enabled.
Lennart Poettering [Mon, 29 Jul 2019 16:39:41 +0000 (18:39 +0200)]
busctl: port "busctl list" to format_table.h
Among generally being prettier this gives us JSON output for basically
free.
Lennart Poettering [Mon, 29 Jul 2019 16:39:32 +0000 (18:39 +0200)]
format-table: add TABLE_PID cell type
Lennart Poettering [Mon, 29 Jul 2019 16:39:05 +0000 (18:39 +0200)]
format-table: automatically show empty cells in grey
Lennart Poettering [Mon, 29 Jul 2019 16:38:13 +0000 (18:38 +0200)]
format-table: add table_fill_empty() to fill in empty cells until the specified column is reached
Lennart Poettering [Mon, 29 Jul 2019 16:36:59 +0000 (18:36 +0200)]
format-table: if NULL is spcified as data, let's patch to an empty cell
This should make various calls easier that currently generate either an
empty cell or a regular cell depending on whether they have data to
show.
Lennart Poettering [Mon, 29 Jul 2019 16:36:19 +0000 (18:36 +0200)]
format-table: optionally show a specific string in empty cells
For some cases it might make sense to show "-" instead of just spaces
for empty cells.
Yu Watanabe [Sun, 28 Jul 2019 06:23:39 +0000 (15:23 +0900)]
test-network: add tests for new entries in "networkctl status"
Susant Sahani [Thu, 25 Jul 2019 17:09:34 +0000 (22:39 +0530)]
networkctl : Add support to display vxlan properties
Susant Sahani [Thu, 25 Jul 2019 17:09:34 +0000 (22:39 +0530)]
networkctl: Add support to display bridge properties
Yu Watanabe [Mon, 29 Jul 2019 14:47:04 +0000 (23:47 +0900)]
time-util: introduce jiffies_to_usec()
Yu Watanabe [Mon, 29 Jul 2019 14:30:32 +0000 (23:30 +0900)]
table: add missing NULL initialization
Yu Watanabe [Sun, 28 Jul 2019 05:14:02 +0000 (14:14 +0900)]
table: add TABLE_UINT8 or friends
Yu Watanabe [Sun, 28 Jul 2019 04:43:28 +0000 (13:43 +0900)]
table: add TABLE_IN_ADDR and TABLE_IN6_ADDR
Yu Watanabe [Sun, 28 Jul 2019 04:07:19 +0000 (13:07 +0900)]
networkctl: merge multiple table_add_cell() by using table_add_many()