platform/upstream/systemd.git
5 years agoerrno-util: add new errno_or_else() helper
Lennart Poettering [Thu, 4 Jul 2019 15:55:36 +0000 (17:55 +0200)]
errno-util: add new errno_or_else() helper

5 years agoMerge pull request #13025 from poettering/tmpfiles-fixo
Frantisek Sumsal [Thu, 11 Jul 2019 19:55:55 +0000 (19:55 +0000)]
Merge pull request #13025 from poettering/tmpfiles-fixo

unbreak the build

5 years agoMerge pull request #13017 from yuwata/network-neighbor-lladdr-13015
Lennart Poettering [Thu, 11 Jul 2019 17:23:29 +0000 (19:23 +0200)]
Merge pull request #13017 from yuwata/network-neighbor-lladdr-13015

network: rename Neighbor.MACAddress= and also support IPv4 address

5 years agotmpfiles: use path_join() where it makes sense
Lennart Poettering [Thu, 11 Jul 2019 16:42:26 +0000 (18:42 +0200)]
tmpfiles: use path_join() where it makes sense

5 years agotmpfiles: fix build
Lennart Poettering [Thu, 11 Jul 2019 16:41:14 +0000 (18:41 +0200)]
tmpfiles: fix build

After I merged #12750 we don't build anymore, since the merged PR (which
passed CI) uses prefix_root() which doesn't exist anymore. Let's fix
that.

5 years agotests: turn on the "object-size" UBSan check on Fuzzit
Evgeny Vereshchagin [Thu, 11 Jul 2019 13:32:05 +0000 (15:32 +0200)]
tests: turn on the "object-size" UBSan check on Fuzzit

Now that 2eb1c19881678851a7e is merged it should be safe.

5 years agoMerge pull request #12750 from keszybz/tmpfiles-c-copy
Lennart Poettering [Thu, 11 Jul 2019 16:13:19 +0000 (18:13 +0200)]
Merge pull request #12750 from keszybz/tmpfiles-c-copy

Make tmpfiles C use --root

5 years agoudevadm: ensure 'udevadm info -w' show updated result
Yu Watanabe [Thu, 27 Jun 2019 18:18:22 +0000 (03:18 +0900)]
udevadm: ensure 'udevadm info -w' show updated result

This seems not necessary, but just for safety.

5 years agoMerge pull request #12461 from Werkov/fix-job-ordering
Lennart Poettering [Thu, 11 Jul 2019 14:43:58 +0000 (16:43 +0200)]
Merge pull request #12461 from Werkov/fix-job-ordering

Refactor job ordering implementation (and fix cycle detection)

5 years agotest-network: add testcase that Neighbor.LinkLayerAddress= is IP address
Yu Watanabe [Wed, 10 Jul 2019 18:26:30 +0000 (03:26 +0900)]
test-network: add testcase that Neighbor.LinkLayerAddress= is IP address

5 years agotest-network: use Neighbor.LinkLayerAddress= instead of deprecated Neighbor.MACAddress=
Yu Watanabe [Wed, 10 Jul 2019 17:25:21 +0000 (02:25 +0900)]
test-network: use Neighbor.LinkLayerAddress= instead of deprecated Neighbor.MACAddress=

5 years agonetwork: fdb: use ether_addr_from_string()
Yu Watanabe [Thu, 11 Jul 2019 01:48:41 +0000 (10:48 +0900)]
network: fdb: use ether_addr_from_string()

5 years agonetwork: fdb: do not allocate separated memory for lladdr
Yu Watanabe [Thu, 11 Jul 2019 01:44:36 +0000 (10:44 +0900)]
network: fdb: do not allocate separated memory for lladdr

5 years agonetwork: drop invalid [Neighbor] section earlier
Yu Watanabe [Wed, 10 Jul 2019 18:08:31 +0000 (03:08 +0900)]
network: drop invalid [Neighbor] section earlier

5 years agonetwork: rename Neighbor.MACAddress= to Neighbor.LinkLayerAddress=
Yu Watanabe [Wed, 10 Jul 2019 17:23:41 +0000 (02:23 +0900)]
network: rename Neighbor.MACAddress= to Neighbor.LinkLayerAddress=

And make it support IPv4 address.

Closes #13015.

5 years agonetwork: NDA_LLADDR attribute can also take struct in_addr
Yu Watanabe [Thu, 11 Jul 2019 01:17:30 +0000 (10:17 +0900)]
network: NDA_LLADDR attribute can also take struct in_addr

5 years agosd-netlink: make sd_netlink_message_read() returns size of read data
Yu Watanabe [Thu, 11 Jul 2019 01:12:35 +0000 (10:12 +0900)]
sd-netlink: make sd_netlink_message_read() returns size of read data

5 years agoMerge pull request #12176 from poettering/clean-dir2
Lennart Poettering [Thu, 11 Jul 2019 13:12:02 +0000 (15:12 +0200)]
Merge pull request #12176 from poettering/clean-dir2

add "systemctl clean" operation for clearing out StateDirectory=, CacheDirectory=, … of a service unit

5 years agojson: always allocate at least sizeof(JsonVariant) bytes
Lennart Poettering [Thu, 11 Jul 2019 09:15:06 +0000 (11:15 +0200)]
json: always allocate at least sizeof(JsonVariant) bytes

ubsan apparently doesn't like us being too smart here. Given the
difference is just a few bytes, let's avoid the noise.

Fixes: #13020

5 years agoupdate TODO
Lennart Poettering [Mon, 1 Apr 2019 17:42:03 +0000 (19:42 +0200)]
update TODO

5 years agoman: document new "systemctl clean…" operation
Lennart Poettering [Mon, 1 Apr 2019 15:28:29 +0000 (17:28 +0200)]
man: document new "systemctl clean…" operation

5 years agotest: add testcase for new CleanUnit logic
Lennart Poettering [Mon, 1 Apr 2019 14:51:55 +0000 (16:51 +0200)]
test: add testcase for new CleanUnit logic

5 years agosystemctl: port "systemctl start --wait" logic to new bus-wait-for-units.c API
Lennart Poettering [Fri, 29 Mar 2019 19:23:33 +0000 (20:23 +0100)]
systemctl: port "systemctl start --wait" logic to new bus-wait-for-units.c API

5 years agosystemctl: add new "clean" operation to systemctl
Lennart Poettering [Mon, 1 Apr 2019 16:57:46 +0000 (18:57 +0200)]
systemctl: add new "clean" operation to systemctl

This exposes the CleanUnit() bus calls in systemctl, i.e. makes all the
infrastructure we previously added useful to people.

5 years agoshared: add generic logic for waiting for a unit to enter some state
Lennart Poettering [Mon, 1 Apr 2019 16:54:59 +0000 (18:54 +0200)]
shared: add generic logic for waiting for a unit to enter some state

This is a generic implementation of a client-side logic of waiting until
a unit enters or leaves some state.

This is a more generic implementation of the WaitContext logic currently
in systemctl.c, and is supposed to replace it (a later commit does
this). It's similar to bus-wait-for-jobs.c and we probably should fold
that one into it later on.

This code is more powerful and cleaner than the WaitContext logic
however. In addition to waiting for a unit to exit this also allows us
to wait for a unit to leave the "maintainance" state.

This commit only implements the generic logic, and adds no users of it
yet.

5 years agocore: expose per-service cleaning properties on the bus, too
Lennart Poettering [Mon, 1 Apr 2019 16:52:40 +0000 (18:52 +0200)]
core: expose per-service cleaning properties on the bus, too

5 years agocore: expose new clean operation on the bus
Lennart Poettering [Mon, 1 Apr 2019 16:51:49 +0000 (18:51 +0200)]
core: expose new clean operation on the bus

This adds CanClean() and Clean() as new methods on the Unit object that
initiate the cleaning operation.

5 years agocore: add type of resource string table
Lennart Poettering [Tue, 25 Jun 2019 09:31:57 +0000 (11:31 +0200)]
core: add type of resource string table

5 years agocore: hook up timer unit type with clean operation
Lennart Poettering [Mon, 1 Apr 2019 16:49:40 +0000 (18:49 +0200)]
core: hook up timer unit type with clean operation

timer units maintain state on disk (the persistent touch file), hence
let's expose cleaning it up generically with the new cleaning operation
for units.

This is a much simpler implementation as for the service unit type:
instead of forking out a worker process we just remove the touch file
directly. That should be OK since we only need to remove a single
(empty) file, instead of a recursive user-controlled directory tree.

Fixes: #4930

5 years agocore: hook up service unit type with the new clean operation
Lennart Poettering [Mon, 1 Apr 2019 16:48:20 +0000 (18:48 +0200)]
core: hook up service unit type with the new clean operation

The implementation is pretty straight-foward: when we get a request to
clean some type of resources we fork off a process doing that, and while
it is running we are in the "cleaning" state.

5 years agocore: add generic "clean" operation to units
Lennart Poettering [Tue, 25 Jun 2019 09:31:28 +0000 (11:31 +0200)]
core: add generic "clean" operation to units

This adds basic infrastructure to implement a "clean" operation for unit
types. This "clean" operation is supposed to remove on-disk resources of
units, and is supposed to be used in a later commit to clean our
RuntimeDirectory=, StateDirectory= and so on of service units.

Later commits will open this up to the bus, and hook up service units
with this.

This also adds a new generic ActiveState called UNIT_MAINTENANCE. It's
supposed to cover all kinds of "maintainance" state of units.
Specifically, this is supposed to cover the "cleaning" operations later
added for service units which might take a bit of time. This high-level,
generic, abstract state is called UNIT_MAINTENANCE instead of the
more specific "UNIT_CLEANING", since I think this should be kept open
for different operations possibly later on that could be nicely subsumed
under this (for example, maybe a recursive chown()ing operation could be
covered by this, and similar).

5 years agorm-rf: introduce new flag REMOVE_MISSING_OK
Lennart Poettering [Fri, 29 Mar 2019 15:13:03 +0000 (16:13 +0100)]
rm-rf: introduce new flag REMOVE_MISSING_OK

This new flag suppresses error if the top-level path specified doesn't
exist. This is useful since suppressing this on the caller side isn't
easy, since ENOENT migh be propagate for some reason from further inside
and we can't distuingish that.

While we are at it, also be a bit more careful witht the various
combinations of flags.

(Note that in some cases rm_rf() was already ignoring ENOENT from
unlink() or rmdir(), however that was pretty useless, since we always
open() the top-level path with O_DIRECTORY and if that hit ENOENT we
didn't ignore the failure).

5 years agosd-bus: when installing a match make sure not to apply it to already queued messages
Lennart Poettering [Fri, 29 Mar 2019 14:43:40 +0000 (15:43 +0100)]
sd-bus: when installing a match make sure not to apply it to already queued messages

This tweaks match installation a bit: the match callbacks are now only
called for messages read after the AddMatch() reply was received and
never anything already read before. Thus, installing a match gives you a
time guarantee: only messages received after it will be matched.

This is useful when listening to PropertiesChanged signals as an example
to ensure that only changes after the point the match was installed are
honoured, nothing before.

5 years agosd-bus: destroy AddMatch() reply slot in failure case too
Lennart Poettering [Fri, 29 Mar 2019 14:42:38 +0000 (15:42 +0100)]
sd-bus: destroy AddMatch() reply slot in failure case too

If AddMatch() doesn't work, let's destroy the slot for it too as soon as
we received the failure for it.

This way the mere existance of the slot tells us whether the AddMatch()
method call is still pending or is complete.

5 years agosd-bus: maintain a counter for incoming msgs
Lennart Poettering [Fri, 29 Mar 2019 14:40:56 +0000 (15:40 +0100)]
sd-bus: maintain a counter for incoming msgs

Let's count incoming messages and attach the current counter when we
first read them to the message objects. This allows us to nicely order
messages later on.

5 years agoMerge pull request #13018 from yuwata/network-tunnel-follow-up-13016
Lennart Poettering [Thu, 11 Jul 2019 10:10:39 +0000 (12:10 +0200)]
Merge pull request #13018 from yuwata/network-tunnel-follow-up-13016

network: drop assertions about Tunnel.family

5 years agotest-network: drop test_udev_driver as it is unstable
Yu Watanabe [Mon, 8 Jul 2019 12:08:10 +0000 (21:08 +0900)]
test-network: drop test_udev_driver as it is unstable

The test unexpectedly succeeds on KVM with sanitizer CI.
At least tentatively, let's drop the test.

5 years agoMerge pull request #13006 from yuwata/network-split-dhcp-12917
Lennart Poettering [Thu, 11 Jul 2019 08:28:03 +0000 (10:28 +0200)]
Merge pull request #13006 from yuwata/network-split-dhcp-12917

networkd: DHCPv6 - separate DHCPv6 options from DHCPv4 options

5 years agoMerge pull request #13010 from poettering/fsck-usr-wants
Yu Watanabe [Thu, 11 Jul 2019 06:13:51 +0000 (15:13 +0900)]
Merge pull request #13010 from poettering/fsck-usr-wants

generator: downgrade Requires= → Wants= of fsck from /usr mount unit

5 years agotest-network: add testcases Tunnel.Remote=any and Local=any
Yu Watanabe [Thu, 11 Jul 2019 02:39:27 +0000 (11:39 +0900)]
test-network: add testcases Tunnel.Remote=any and Local=any

5 years agonetwork: ip6tnl and vti6 does not support the case both Local= and Remote= are any
Yu Watanabe [Thu, 11 Jul 2019 02:05:15 +0000 (11:05 +0900)]
network: ip6tnl and vti6 does not support the case both Local= and Remote= are any

This partially revert feb0c8b86f05330c8c7581463b8adf35ea68e5a9.

This also drop assertions about Tunnel.family.

5 years agoMerge pull request #13013 from yuwata/network-xfrm-follow-ups
Yu Watanabe [Thu, 11 Jul 2019 06:08:13 +0000 (15:08 +0900)]
Merge pull request #13013 from yuwata/network-xfrm-follow-ups

network: follow-ups for XFRM netdevs and introduce AssignToLoopback= for Tunnel devices

5 years agotest-network: add test for Xfrm netdev
Yu Watanabe [Wed, 10 Jul 2019 14:54:26 +0000 (23:54 +0900)]
test-network: add test for Xfrm netdev

5 years agotest-network: add test for AssignToLoopback= setting
Yu Watanabe [Wed, 10 Jul 2019 14:53:30 +0000 (23:53 +0900)]
test-network: add test for AssignToLoopback= setting

5 years agonetwork: add AssignToLoopback= setting to [Tunnel] section
Yu Watanabe [Wed, 10 Jul 2019 14:49:17 +0000 (23:49 +0900)]
network: add AssignToLoopback= setting to [Tunnel] section

networkd does not manage loopback interface lo. So, previously, we have
no way to assign tunnel devices to lo.

5 years agonetwork: simplify the condition about xfrm
Yu Watanabe [Wed, 10 Jul 2019 14:48:37 +0000 (23:48 +0900)]
network: simplify the condition about xfrm

5 years agoMerge pull request #13011 from keszybz/auto-erase
Lennart Poettering [Wed, 10 Jul 2019 23:05:01 +0000 (01:05 +0200)]
Merge pull request #13011 from keszybz/auto-erase

Remove string_erase and friends

5 years agonetwork: support gre tunnel or friends with Local=any Remote=any
Yu Watanabe [Wed, 10 Jul 2019 16:37:24 +0000 (01:37 +0900)]
network: support gre tunnel or friends with Local=any Remote=any

Fixes #13014.

5 years agoMerge pull request #12755 from keszybz/short-identifiers
Lennart Poettering [Wed, 10 Jul 2019 22:00:51 +0000 (00:00 +0200)]
Merge pull request #12755 from keszybz/short-identifiers

Allow using unit names in status messages

5 years agoMerge pull request #12926 from keszybz/urlify-logs
Lennart Poettering [Wed, 10 Jul 2019 22:00:34 +0000 (00:00 +0200)]
Merge pull request #12926 from keszybz/urlify-logs

Urlify CONFIG_FILE and improve SYSTEMD_LOG_LOCATION

5 years agoMerge pull request #13009 from keszybz/efi-feature-xbootldr
Lennart Poettering [Wed, 10 Jul 2019 22:00:12 +0000 (00:00 +0200)]
Merge pull request #13009 from keszybz/efi-feature-xbootldr

sd-boot feature xbootldr

5 years agoMerge pull request #12965 from keszybz/auto-erase
Lennart Poettering [Wed, 10 Jul 2019 14:20:50 +0000 (16:20 +0200)]
Merge pull request #12965 from keszybz/auto-erase

_cleanup_(erase_and_freep)

5 years agoMerge pull request #13005 from keszybz/fix-gcc-warning
Lennart Poettering [Wed, 10 Jul 2019 14:20:31 +0000 (16:20 +0200)]
Merge pull request #13005 from keszybz/fix-gcc-warning

Fix two gcc warnings

5 years agotmpfiles: use log_syntax() for complaining about configuration file errors
Lennart Poettering [Wed, 10 Jul 2019 11:00:44 +0000 (13:00 +0200)]
tmpfiles: use log_syntax() for complaining about configuration file errors

In the light of #12926 I needed some log messages for testing. This
tmpfiles one came to mind, since it's frequently seen on typical Fedora
systems. Alas, they didn't actually use log_syntax, and thus weren't
recognizable by the new config file urlifaction code. Let's fix that.

5 years agogenerator: downgrade Requires= → Wants= of fsck from /usr mount unit
Lennart Poettering [Wed, 10 Jul 2019 14:18:28 +0000 (16:18 +0200)]
generator: downgrade Requires= → Wants= of fsck from /usr mount unit

Fixes #5099

5 years agocore: spaces rock
Lennart Poettering [Wed, 10 Jul 2019 14:18:05 +0000 (16:18 +0200)]
core: spaces rock

5 years agoMerge pull request #12863 from 1848/if_xfrm
Yu Watanabe [Wed, 10 Jul 2019 14:04:49 +0000 (23:04 +0900)]
Merge pull request #12863 from 1848/if_xfrm

Added support for xfrm interfaces

5 years agoFixed condition checked twice
1848 [Mon, 8 Jul 2019 15:10:26 +0000 (17:10 +0200)]
Fixed condition checked twice

5 years agoAdded support for xfrm interfaces
1848 [Mon, 8 Jul 2019 15:09:46 +0000 (17:09 +0200)]
Added support for xfrm interfaces

5 years agobootctl,sd-boot: define EFI_LOADER_FEATURE_XBOOTLDR
Zbigniew Jędrzejewski-Szmek [Tue, 2 Jul 2019 11:02:22 +0000 (13:02 +0200)]
bootctl,sd-boot: define EFI_LOADER_FEATURE_XBOOTLDR

It was added back in fa2a3bbdd8bfcc3402c2ad9e941eb3911971e09a, but we
forgot to add the feature define.

5 years agoboot,shared: share the definitions of EFI_LOADER_FEATURE macros
Zbigniew Jędrzejewski-Szmek [Tue, 2 Jul 2019 11:01:23 +0000 (13:01 +0200)]
boot,shared: share the definitions of EFI_LOADER_FEATURE macros

This means the the code needs to be kept compatible in the shared header,
but I think that still nicer than having two places to declare the same
things.

I added src/boot to -I, so that efi/foo.h needs to be used. This reduces
the potential for accidentally including the wrong header.

5 years agoMerge pull request #12939 from yuwata/lgtm-fixes
Lennart Poettering [Wed, 10 Jul 2019 12:57:14 +0000 (14:57 +0200)]
Merge pull request #12939 from yuwata/lgtm-fixes

make LGTM quiet

5 years agotest-strv: test strv_free_erase() a little bit
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 11:57:52 +0000 (13:57 +0200)]
test-strv: test strv_free_erase() a little bit

5 years agoRemove string_erase
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 11:54:50 +0000 (13:54 +0200)]
Remove string_erase

5 years agoshared/logs-show: urlify CONFIG_FILE in verbose mode
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jul 2019 18:20:23 +0000 (20:20 +0200)]
shared/logs-show: urlify CONFIG_FILE in verbose mode

Now all short-*, verbose, with-unit modes are handled. cat, export, json-* are
not, but those are usually used for post-processing, so I don't think it'd be
useful there.

5 years agoshared/logs-show: urlify CONFIG_FILE in short mode
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jul 2019 15:03:11 +0000 (17:03 +0200)]
shared/logs-show: urlify CONFIG_FILE in short mode

v2:
- check that the filename is terminated by ':', ' ', or EOS
- fix grep highlight overlap check

5 years agoRemove string_free_erase
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 11:48:55 +0000 (13:48 +0200)]
Remove string_free_erase

5 years agoUse unit->id instead of description in messages
Zbigniew Jędrzejewski-Szmek [Thu, 6 Jun 2019 15:33:59 +0000 (17:33 +0200)]
Use unit->id instead of description in messages

v2:
- rename unit_identifier to unit_status_string

5 years agoAdd config and kernel commandline option to use short identifiers
Zbigniew Jędrzejewski-Szmek [Thu, 6 Jun 2019 17:22:20 +0000 (19:22 +0200)]
Add config and kernel commandline option to use short identifiers

No functional change, just docs and configuration and parsing.

v2:
- change ShortIdentifiers=yes|no to StatusUnitFormat=name|description.

5 years agopid1: tiny simplification
Zbigniew Jędrzejewski-Szmek [Thu, 6 Jun 2019 15:33:25 +0000 (17:33 +0200)]
pid1: tiny simplification

v2:
- use empty_to_root()

5 years agosystemctl: allow "cat" on units with bad settings
Zbigniew Jędrzejewski-Szmek [Mon, 1 Jul 2019 13:31:08 +0000 (15:31 +0200)]
systemctl: allow "cat" on units with bad settings

That's precisely the state where 'cat' is particularly useful ;).

5 years agonetwork: fix memleak
Yu Watanabe [Tue, 9 Jul 2019 16:02:07 +0000 (01:02 +0900)]
network: fix memleak

set_put() does not return -EEXIST.

Fixes #12995 and oss-fuzz#15678.

5 years agoreply-password: define main through macro
Zbigniew Jędrzejewski-Szmek [Fri, 5 Jul 2019 09:36:51 +0000 (11:36 +0200)]
reply-password: define main through macro

5 years agoUse _cleanup(free_and_erasep) where appropriate
Zbigniew Jędrzejewski-Szmek [Fri, 5 Jul 2019 09:29:10 +0000 (11:29 +0200)]
Use _cleanup(free_and_erasep) where appropriate

Replaces #12959.

5 years agotest: add _cleanup_(erase_and_freep)
Zbigniew Jędrzejewski-Szmek [Fri, 5 Jul 2019 08:37:53 +0000 (10:37 +0200)]
test: add _cleanup_(erase_and_freep)

Based on the macro and test case by Lennart Poettering and
Topi Miettinen suggestion.

5 years agotest-network: add tests for UseDNS= in [DHCP] section
Yu Watanabe [Wed, 3 Jul 2019 02:55:40 +0000 (11:55 +0900)]
test-network: add tests for UseDNS= in [DHCP] section

5 years agotest-network: enable systemd-resolved.service
Yu Watanabe [Mon, 3 Jun 2019 22:05:07 +0000 (07:05 +0900)]
test-network: enable systemd-resolved.service

5 years agonetwork: rename [DHCP] section to [DHCPv4]
Yu Watanabe [Wed, 10 Jul 2019 08:33:05 +0000 (17:33 +0900)]
network: rename [DHCP] section to [DHCPv4]

To keep the backward compatibility broken by the previous commit.

5 years agonetworkd: silence bogus gcc warning about %s
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 08:30:12 +0000 (10:30 +0200)]
networkd: silence bogus gcc warning about %s

Fixes #12931.

In file included from ../src/basic/macro.h:558,
                 from ../src/basic/alloc-util.h:9,
                 from ../src/network/networkd-link.c:7:
../src/network/networkd-link.c: In function ‘link_sysctl_ipv6_enabled’:
../src/basic/log.h:107:9: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  107 |         log_internal_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/shared/log-link.h:21:25: note: in expansion of macro ‘log_internal’
   21 |                         log_internal(level, error, _FILE_, __LINE__, __func__, ##__VA_ARGS__); \
      |                         ^~~~~~~~~~~~
../src/shared/log-link.h:33:50: note: in expansion of macro ‘log_link_full’
   33 | #define log_link_warning_errno(link, error, ...) log_link_full(link, LOG_WARNING, error, ##__VA_ARGS__)
      |                                                  ^~~~~~~~~~~~~
../src/network/networkd-link.c:83:24: note: in expansion of macro ‘log_link_warning_errno’
   83 |                 return log_link_warning_errno(link, r,
      |                        ^~~~~~~~~~~~~~~~~~~~~~
../src/network/networkd-link.c:84:77: note: format string is defined here
   84 |                                               "Failed to read net.ipv6.conf.%s.disable_ipv6 sysctl property: %m",
      |                                                                             ^~
cc1: some warnings being treated as errors

5 years agoshared/dm-util: use strncpy_exact() to silence gcc
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jul 2019 08:22:48 +0000 (10:22 +0200)]
shared/dm-util: use strncpy_exact() to silence gcc

With gcc-9.1.1-2.fc31.x86_64 and -Doptimization=2:
../src/shared/dm-util.c: In function ‘dm_deferred_remove’:
../src/shared/dm-util.c:35:9: warning: ‘strncpy’ specified bound 128 equals destination size [-Wstringop-truncation]
   35 |         strncpy(dm.name, name, sizeof(dm.name));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

gcc is plain wrong here, because we checked strlen(name) a few lines above, so
there can be no truncation and even the terminator always fits. But let's avoid
the warning.

5 years agonetworkd: DHCPv6 - separate DHCPv6 options from DHCPv4 options
Susant Sahani [Tue, 9 Jul 2019 14:23:28 +0000 (19:53 +0530)]
networkd: DHCPv6 - separate DHCPv6 options from DHCPv4 options

Closes https://github.com/systemd/systemd/issues/12917

5 years agofuzzbuzz: rename fuzz.yaml to fuzzbuzz.yaml
Evgeny Vereshchagin [Wed, 10 Jul 2019 01:46:35 +0000 (03:46 +0200)]
fuzzbuzz: rename fuzz.yaml to fuzzbuzz.yaml

fuzz.yaml will stop working in a week

5 years agoimportd: Avoid need for fd translation table
Dave Reisner [Sat, 6 Jul 2019 16:20:53 +0000 (12:20 -0400)]
importd: Avoid need for fd translation table

Make use of curl_multi_assign to associate each IO sd_event_source with
a CURL object. This means we always get passed the right event source
and don't need to worry about looking up the associated CURL object,
particularly in the case where the FD has been closed on a REMOVE event.

5 years agonetwork: read sysctl value only once (#12990)
Yu Watanabe [Tue, 9 Jul 2019 07:56:50 +0000 (16:56 +0900)]
network: read sysctl value only once (#12990)

Follow-up for bafa9641446852f7fa15ca12d08a223d345c78ea.

When the value is changed, networkd needs to be restarted.

5 years agoutil: fix sign-compare warning
Yu Watanabe [Fri, 21 Jun 2019 03:56:54 +0000 (12:56 +0900)]
util: fix sign-compare warning

5 years agotest/udev-test.pl: cleanup if skipping test
Dan Streetman [Fri, 5 Jul 2019 15:24:55 +0000 (11:24 -0400)]
test/udev-test.pl: cleanup if skipping test

In Ubuntu CI, udev-test.pl is run from the debian/test/udev script,
in a test dir created for it; but udev-test.pl setup mounts a
dir, so if it doesn't cleanup/unmount before exiting, the test dir
autopkgtest created for it can't be removed, and autopkgtest
aborts the entire test suite, for example this output (from a
test run inside an armhf container):

autopkgtest [12:45:36]: test udev: [-----------------------
umount: test/tmpfs: no mount point specified.
mknod: test/tmpfs/dev/null: Operation not permitted
unable to create test/tmpfs/dev/null at ./udev-test.pl line 1611.
Failed to set up the environment, skipping the test at ./udev-test.pl line 1731.
autopkgtest [12:45:41]: test udev: -----------------------]
autopkgtest [12:45:44]: test udev:  - - - - - - - - - - results - - - - - - - - - -
udev                 FAIL non-zero exit status 77
rm: cannot remove '/tmp/autopkgtest.ocPFA6/autopkgtest_tmp/test/tmpfs': Device or resource busy
autopkgtest [12:46:22]: ERROR: "rm -rf /tmp/autopkgtest.ocPFA6/udev-artifacts /tmp/autopkgtest.ocPFA6/autopkgtest_tmp" failed with stderr "rm:

5 years agoMerge pull request #12992 from mrc0mmand/test-functions-fixes
Evgeny Vereshchagin [Mon, 8 Jul 2019 23:27:39 +0000 (02:27 +0300)]
Merge pull request #12992 from mrc0mmand/test-functions-fixes

Various test/test-functions fixes/improvements

5 years agopid1: fix serialization/deserialization of commmands with spaces
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 12:18:46 +0000 (14:18 +0200)]
pid1: fix serialization/deserialization of commmands with spaces

Fixes #12258.

This is enough to reproduce:
$ systemd-run bash -c 'sleep 10' && systemctl daemon-reload
would result in
Current command vanished from the unit file.

We would serialize as:
ExecStart 0 /usr/bin/bash /usr/bin/bash -c sleep 10000
which of course can't work.
Now we serialize as
ExecStart 0 /usr/bin/bash "/usr/bin/bash" "-c" "sleep 10".

5 years agonspawn: fix abort when we cannot execve
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 13:16:41 +0000 (15:16 +0200)]
nspawn: fix abort when we cannot execve

If execve failed, we would die in safe_close(), because master was already
closed by fdset_close_others() on line 3123. IIUC, we don't need to keep the
fd open after sending it, so let's just close it immediately.

Reproducer:
sudo build/systemd-nspawn -M rawhide fooooooo

Fixup for 3acc84ebd9aebe8cf1771b42644ebbfbecdfaa37.

5 years agoMerge pull request #12972 from intelfx/cryptsetup-enable-libcryptsetup-debug
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 22:47:06 +0000 (00:47 +0200)]
Merge pull request #12972 from intelfx/cryptsetup-enable-libcryptsetup-debug

cryptsetup: properly handle libcryptsetup debug logging

5 years agotest: install missing dependencies for CIs
Frantisek Sumsal [Mon, 8 Jul 2019 19:28:10 +0000 (21:28 +0200)]
test: install missing dependencies for CIs

5 years agotest: drop || return 1 expression which is incompatible with set -e
Frantisek Sumsal [Mon, 8 Jul 2019 19:11:32 +0000 (21:11 +0200)]
test: drop || return 1 expression which is incompatible with set -e

The `set -e` option is incompatible with a subshell/compound command,
which is followed by || <EXPR>. In such case, the -e option is ignored
in all affected subshells/functions (see man bash(1) for command `set`).

5 years agotest: be a little bit more verbose when installing service binaries
Frantisek Sumsal [Mon, 8 Jul 2019 19:10:21 +0000 (21:10 +0200)]
test: be a little bit more verbose when installing service binaries

5 years agotest: correctly handle installation of newly introduced binaries
Frantisek Sumsal [Mon, 8 Jul 2019 19:05:51 +0000 (21:05 +0200)]
test: correctly handle installation of newly introduced binaries

In certain cases we might attempt to install a binary which is already
present in the test image, yet it's missing from the host system.
In such cases, let's check if the binary indeed exists in the image
before doing any other chcecks. If it does, immediately return with
success.

This was discovered during installation of
/usr/lib/systemd/systemd-bless-boot, which was not present in Ubuntu CI
(as the installed systemd was from the Ubuntu repositories), and the
binary itself was already in the image thanks to `ninja install`.
However, during extraction of binaries from the systemd service files,
another attempt to install this binary was made, which failed due to
`find_binary` being unable to find it.

5 years agotest: make ASAN/UBSAN_OPTIONS overridable from the outside
Frantisek Sumsal [Mon, 8 Jul 2019 11:47:46 +0000 (13:47 +0200)]
test: make ASAN/UBSAN_OPTIONS overridable from the outside

This should allow us to tweak the ASAN_OPTIONS and UBSAN_OPTIONS env
variables for integration tests as well

5 years agoFUNDING: this needs to be yaml
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 14:55:31 +0000 (16:55 +0200)]
FUNDING: this needs to be yaml

5 years agoCreate FUNDING.yml
Zbigniew Jędrzejewski-Szmek [Mon, 8 Jul 2019 13:43:55 +0000 (15:43 +0200)]
Create FUNDING.yml

5 years agogrowfs: call crypt_set_debug_level() correctly, skip if not needed
Ivan Shapovalov [Sat, 6 Jul 2019 10:51:55 +0000 (13:51 +0300)]
growfs: call crypt_set_debug_level() correctly, skip if not needed

5 years agocryptsetup: enable libcryptsetup debug logging if we want it
Ivan Shapovalov [Sat, 6 Jul 2019 10:51:23 +0000 (13:51 +0300)]
cryptsetup: enable libcryptsetup debug logging if we want it

Even if we set a log callback that would accept debug messages, libcryptsetup
needs debug logging enabled explicitly for it to happen.

5 years agoMerge pull request #12970 from ddstreet/gh12969
Yu Watanabe [Mon, 8 Jul 2019 12:18:04 +0000 (21:18 +0900)]
Merge pull request #12970 from ddstreet/gh12969

src/network/networkd-dhcp4.c: set prefsrc for classless or static routes