platform/upstream/systemd.git
4 years agotests: modify enter_cgroup_subroot() to return the new path
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:57:25 +0000 (16:57 +0100)]
tests: modify enter_cgroup_subroot() to return the new path

4 years agotests: get rid of test-helper.[ch] completely
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:55:28 +0000 (16:55 +0100)]
tests: get rid of test-helper.[ch] completely

I don't think there's any particular reason to keep those functions in a separate
file.

4 years agotests: make is_run_on_travis_ci() static
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:40:11 +0000 (16:40 +0100)]
tests: make is_run_on_travis_ci() static

This is a pretty specific hack, so let's just define it close to the one
place where it is used.

4 years agotests: make manager_skip_test() not a macro and move to tests.h
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:37:15 +0000 (16:37 +0100)]
tests: make manager_skip_test() not a macro and move to tests.h

There is nothing magic in it.

4 years agocore: split out one more function
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:19:43 +0000 (16:19 +0100)]
core: split out one more function

4 years agocore: also split out helper to handle static device nodes
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 15:09:28 +0000 (16:09 +0100)]
core: also split out helper to handle static device nodes

4 years agocore: move bpf devices implementation to bpf-devices.[ch] and rename
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 14:51:28 +0000 (15:51 +0100)]
core: move bpf devices implementation to bpf-devices.[ch] and rename

The naming of the functions was a complete mess: the most specific functions
which don't know anything about cgroups had "cgroup_" prefix, while more
general functions which took a node path and a cgroup for reporting had no
prefix. Let's use "bpf_devices_" for the latter group, and "bpf_prog_*" for the
rest.

The main goal of this move is to split the implementation from the calling code
and add unit tests in a later patch.

4 years agocore: rename CGROUP_AUTO/STRICT/CLOSED to CGROUP_DEVICE_POLICY_…
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 14:12:23 +0000 (15:12 +0100)]
core: rename CGROUP_AUTO/STRICT/CLOSED to CGROUP_DEVICE_POLICY_…

The old names were very generic, and when used without context it wasn't at all
clear that they are about the devices policy.

4 years agotests: move memlock helper to shared code
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 13:58:28 +0000 (14:58 +0100)]
tests: move memlock helper to shared code

4 years agotest-bpf-firewall: do not mlock() a large amount of memory
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 11:03:23 +0000 (12:03 +0100)]
test-bpf-firewall: do not mlock() a large amount of memory

64MB is not that much, but let's not be greedy, esp. because we may run
many things in parallel.

Also, rlim_cur should never be higher than rlim_max, so let's simplify our
code.

4 years agotest-bpf: rename to test-bpf-firewall
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 10:58:55 +0000 (11:58 +0100)]
test-bpf: rename to test-bpf-firewall

Let's make the name better reflect its scope.

4 years agobpf: return normally from whitelist_major()
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 10:24:17 +0000 (11:24 +0100)]
bpf: return normally from whitelist_major()

All callers do (void) anyway, so we can just use normal return here.

4 years agobpf: do not bother adding device patterns after whitelisting the full class
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 10:17:08 +0000 (11:17 +0100)]
bpf: do not bother adding device patterns after whitelisting the full class

This seems to have been unintentional.

4 years agobpf: refactor how we create device major:minor whitelists
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 10:13:20 +0000 (11:13 +0100)]
bpf: refactor how we create device major:minor whitelists

No functional change intended except for minor adjustments to error messages.

4 years agocore: constify bpf program arrays
Zbigniew Jędrzejewski-Szmek [Fri, 8 Nov 2019 07:55:54 +0000 (08:55 +0100)]
core: constify bpf program arrays

In cases where the programs were modified after being initially declared,
reorder operations so that the declaration is already in final form.

4 years agoMerge pull request #13904 from keur/job_mode_triggering
Zbigniew Jędrzejewski-Szmek [Thu, 7 Nov 2019 07:36:26 +0000 (08:36 +0100)]
Merge pull request #13904 from keur/job_mode_triggering

Job mode triggering

4 years agocore: change top-level drop-in from -.service.d to service.d
Anita Zhang [Tue, 5 Nov 2019 02:29:55 +0000 (18:29 -0800)]
core: change top-level drop-in from -.service.d to service.d

Discussed in #13743, the -.service semantic conflicts with the
existing root mount and slice names, making this feature not
uniformly extensible to all types. Change the name to be
<type>.d instead.

Updating to this format also extends the top-level dropin to
unit types.

4 years agoMerge pull request #13960 from keszybz/meson-loop-fix
Anita Zhang [Wed, 6 Nov 2019 19:44:09 +0000 (11:44 -0800)]
Merge pull request #13960 from keszybz/meson-loop-fix

meson: remove strange dep that causes meson to enter infinite loop

4 years agoman: fix option typo in pam_systemd man page
Dominique Martinet [Wed, 6 Nov 2019 06:32:17 +0000 (07:32 +0100)]
man: fix option typo in pam_systemd man page

The session= option does not exist, XDG_SESSION_TYPE overrides the type=
option.

4 years agomeson: remove strange dep that causes meson to enter infinite loop
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2019 11:44:39 +0000 (12:44 +0100)]
meson: remove strange dep that causes meson to enter infinite loop

The value is obviously bogus, but didn't seem to cause problems so far.
With meson-0.52.0, it causes a hang. The number of aliases is always rather
small (usually just one or two, possibly up to a dozen in a few cases), so
even if this causes some looping, it is strange that it has such a huge impact.
But let's just remove it.

Fixes #13742.

Tested with meson-0.52.0-1.module_f31+6771+f5d842eb.noarch,
meson-0.51.1-1.fc29.noarch.

4 years agoman: save pull-raw example file without underscores
Anita Zhang [Wed, 6 Nov 2019 00:04:27 +0000 (16:04 -0800)]
man: save pull-raw example file without underscores

Destination file needs to be a valid hostname and underscores
are not valid hostname characters.

Closes #13542

4 years agoman: small grammatical/word choice fixes to crypttab man page
Anita Zhang [Wed, 6 Nov 2019 00:20:42 +0000 (16:20 -0800)]
man: small grammatical/word choice fixes to crypttab man page

Closes #13608

4 years agoMerge pull request #13936 from keszybz/format-table-uninhibited
Anita Zhang [Tue, 5 Nov 2019 23:03:15 +0000 (15:03 -0800)]
Merge pull request #13936 from keszybz/format-table-uninhibited

Output tables at full width if piped

4 years agoMerge pull request #13944 from yuwata/network-split-struct-prefix
Anita Zhang [Tue, 5 Nov 2019 23:02:01 +0000 (15:02 -0800)]
Merge pull request #13944 from yuwata/network-split-struct-prefix

network: split struct Prefix into Prefix and RoutePrefix

4 years agosd-device-enumerator: do not return error when a device is removed
Yu Watanabe [Tue, 5 Nov 2019 14:02:31 +0000 (23:02 +0900)]
sd-device-enumerator: do not return error when a device is removed

Fixes #13814.

4 years agoman: Document --job-mode=triggering switch
Kevin Kuehler [Fri, 1 Nov 2019 08:47:37 +0000 (01:47 -0700)]
man: Document --job-mode=triggering switch

4 years agocore: Add triggering job mode
Kevin Kuehler [Fri, 1 Nov 2019 07:54:03 +0000 (00:54 -0700)]
core: Add triggering job mode

When used with systemctl stop, follows TRIGGERED_BY dependencies and
adds them to the same transaction.

Fixes: #3043

4 years agoshared/format-table: disable ellipsization when piped
Zbigniew Jędrzejewski-Szmek [Mon, 4 Nov 2019 13:59:31 +0000 (14:59 +0100)]
shared/format-table: disable ellipsization when piped

Fixes #13461.

Before:
$ systemd-inhibit --no-pager
WHO            UID  USER    PID   COMM           WHAT                                  WHY          MODE
ModemManager   0    root    1093  ModemManager   sleep                                 ModemManage… delay
NetworkManager 0    root    1400  NetworkManager sleep                                 NetworkMana… delay
UPower         0    root    5141  upowerd        sleep                                 Pause devic… delay
zbyszek        1000 zbyszek 10036 gsd-power      handle-lid-switch                     External mo… block
zbyszek        1000 zbyszek 10035 gsd-media-keys handle-power-key:handle-suspend-key:… GNOME handl… block
zbyszek        1000 zbyszek 10035 gsd-media-keys sleep                                 GNOME handl… delay
zbyszek        1000 zbyszek 10036 gsd-power      sleep                                 GNOME needs… delay

7 inhibitors listed.
$ systemd-inhibit --no-pager|grep suspend
$ systemd-inhibit --no-pager|cat
WHO            UID  USER    PID   COMM           WHAT                WHY   MODE
ModemManager   0    root    1093  ModemManager   sleep               Mode… delay
NetworkManager 0    root    1400  NetworkManager sleep               Netw… delay
UPower         0    root    5141  upowerd        sleep               Paus… delay
zbyszek        1000 zbyszek 10036 gsd-power      handle-lid-switch   Exte… block
zbyszek        1000 zbyszek 10035 gsd-media-keys handle-power-key:h… GNOM… block
zbyszek        1000 zbyszek 10035 gsd-media-keys sleep               GNOM… delay
zbyszek        1000 zbyszek 10036 gsd-power      sleep               GNOM… delay

After:
$ build/systemd-inhibit --no-pager
(same as above)

$ build/systemd-inhibit --no-pager|grep suspend
zbyszek        1000 zbyszek 10035 gsd-media-keys handle-power-key:handle-suspend-key:handle-hibernate-key GNOME handling keypresses                                   block
$ build/systemd-inhibit --no-pager|cat
WHO            UID  USER    PID   COMM           WHAT                                                     WHY                                                         MODE
ModemManager   0    root    1093  ModemManager   sleep                                                    ModemManager needs to reset devices                         delay
NetworkManager 0    root    1400  NetworkManager sleep                                                    NetworkManager needs to turn off networks                   delay
UPower         0    root    5141  upowerd        sleep                                                    Pause device polling                                        delay
zbyszek        1000 zbyszek 10036 gsd-power      handle-lid-switch                                        External monitor attached or configuration changed recently block
zbyszek        1000 zbyszek 10035 gsd-media-keys handle-power-key:handle-suspend-key:handle-hibernate-key GNOME handling keypresses                                   block
zbyszek        1000 zbyszek 10035 gsd-media-keys sleep                                                    GNOME handling keypresses                                   delay
zbyszek        1000 zbyszek 10036 gsd-power      sleep                                                    GNOME needs to lock the screen                              delay

7 inhibitors listed.

Note that this affect all tools that use format-table.c: machinectl, busctl,
loginctl, systemd-analyze, networkctl, portablectl.

4 years agonetwork: split struct Prefix into Prefix and RoutePrefix
Yu Watanabe [Tue, 5 Nov 2019 13:31:20 +0000 (22:31 +0900)]
network: split struct Prefix into Prefix and RoutePrefix

4 years agoMerge pull request #13939 from yuwata/network-fix-memleak-and-13938
Yu Watanabe [Tue, 5 Nov 2019 11:16:06 +0000 (20:16 +0900)]
Merge pull request #13939 from yuwata/network-fix-memleak-and-13938

network: fix memleak and invalid free function

4 years agojournal: refresh cached credentials of stdout streams
Lorenz Bauer [Mon, 4 Nov 2019 16:35:46 +0000 (16:35 +0000)]
journal: refresh cached credentials of stdout streams

journald assumes that getsockopt(SO_PEERCRED) correctly identifies the
process on the remote end of the socket. However, this is incorrect
according to man 7 socket:

    The returned  credentials  are  those that were in effect at the
    time of the call to connect(2) or socketpair(2).

This becomes a problem when a new process inherits the stdout stream
from a parent. First, log messages from the child process will
be attributed to the parent. Second, the struct ucred used by journald
becomes invalid as soon as the parent exits. Further sendmsg calls then
fail with ENOENT. Logs for the child process then vanish from the journal.

Fix this by using recvmsg on the stdout stream, and refreshing the cached
struct ucred if SCM_CREDENTIALS indicate a new process.

Fixes #13708

4 years agohwdb: add XKB_FIXED_MODEL to the keyboard hwdb
Sebastian Wick [Thu, 31 Oct 2019 13:27:24 +0000 (14:27 +0100)]
hwdb: add XKB_FIXED_MODEL to the keyboard hwdb

Chromebook keyboards have a top row which generates f1-f10 key codes but
the keys have media symbols printed on them. A simple scan code to key
code mapping to the correct media keys makes the f1-f10 inaccessible. To
properly use the keyboard a custom key code to symbol mapping in xbk is
required (a variant of the chromebook xkb model is already upstream).
Other devices have similar problems.
This commit makes it possible to specify which xkb model should be used
for a specific device by setting XKB_FIXED_MODEL.

4 years agoMerge pull request #13935 from poettering/bootctl-random-seed-mkdir
Anita Zhang [Tue, 5 Nov 2019 06:57:12 +0000 (22:57 -0800)]
Merge pull request #13935 from poettering/bootctl-random-seed-mkdir

bootctl: create leading dirs when "bootctl random-seed" is called if …

4 years agosd-radv: fix memleak
Yu Watanabe [Tue, 5 Nov 2019 04:30:00 +0000 (13:30 +0900)]
sd-radv: fix memleak

4 years agotest: add testcase for issue #13938
Yu Watanabe [Tue, 5 Nov 2019 01:49:07 +0000 (10:49 +0900)]
test: add testcase for issue #13938

4 years agonetwork: fix memleak in route_prefix_free()
Yu Watanabe [Tue, 5 Nov 2019 01:46:44 +0000 (10:46 +0900)]
network: fix memleak in route_prefix_free()

4 years agonetwork: fix typo
Yu Watanabe [Tue, 5 Nov 2019 01:42:19 +0000 (10:42 +0900)]
network: fix typo

4 years agonetwork: fix invalid cleanup function
Yu Watanabe [Tue, 5 Nov 2019 01:39:15 +0000 (10:39 +0900)]
network: fix invalid cleanup function

4 years agonetwork: fix memleak
Yu Watanabe [Tue, 5 Nov 2019 00:39:44 +0000 (09:39 +0900)]
network: fix memleak

4 years agonetwork: use fix invalid free function
Yu Watanabe [Tue, 5 Nov 2019 00:36:39 +0000 (09:36 +0900)]
network: use fix invalid free function

Fixes #13938.

4 years agocore, job: fix breakage of ordering dependencies by systemctl reload command
HATAYAMA Daisuke [Mon, 28 Oct 2019 10:35:24 +0000 (19:35 +0900)]
core, job: fix breakage of ordering dependencies by systemctl reload command

Currently, systemctl reload command breaks ordering dependencies if it's
executed when its target service unit is in activating state.

For example, prepare A.service, B.service and C.target as follows:

    # systemctl cat A.service B.service C.target
    # /etc/systemd/system/A.service
    [Unit]
    Description=A

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/echo A1
    ExecStart=/usr/bin/sleep 60
    ExecStart=/usr/bin/echo A2
    ExecReload=/usr/bin/echo A reloaded
    RemainAfterExit=yes

    # /etc/systemd/system/B.service
    [Unit]
    Description=B
    After=A.service

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/echo B
    RemainAfterExit=yes

    # /etc/systemd/system/C.target
    [Unit]
    Description=C
    Wants=A.service B.service

Start them.

    # systemctl daemon-reload
    # systemctl start C.target

Then, we have:

    # LANG=C journalctl --no-pager -u A.service -u B.service -u C.target -b
    -- Logs begin at Mon 2019-09-09 00:25:06 EDT, end at Thu 2019-10-24 22:28:47 EDT. --
    Oct 24 22:27:47 localhost.localdomain systemd[1]: Starting A...
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: Child 967 belongs to A.service.
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: Main process exited, code=exited, status=0/SUCCESS
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: Running next main command for state start.
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: Passing 0 fds to service
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: About to execute: /usr/bin/sleep 60
    Oct 24 22:27:47 localhost.localdomain systemd[1]: A.service: Forked /usr/bin/sleep as 968
    Oct 24 22:27:47 localhost.localdomain systemd[968]: A.service: Executing: /usr/bin/sleep 60
    Oct 24 22:27:52 localhost.localdomain systemd[1]: A.service: Trying to enqueue job A.service/reload/replace
    Oct 24 22:27:52 localhost.localdomain systemd[1]: A.service: Merged into running job, re-running: A.service/reload as 1288
    Oct 24 22:27:52 localhost.localdomain systemd[1]: A.service: Enqueued job A.service/reload as 1288
    Oct 24 22:27:52 localhost.localdomain systemd[1]: A.service: Unit cannot be reloaded because it is inactive.
    Oct 24 22:27:52 localhost.localdomain systemd[1]: A.service: Job 1288 A.service/reload finished, result=invalid
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Passing 0 fds to service
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: About to execute: /usr/bin/echo B
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Forked /usr/bin/echo as 970
    Oct 24 22:27:52 localhost.localdomain systemd[970]: B.service: Executing: /usr/bin/echo B
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Failed to send unit change signal for B.service: Connection reset by peer
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Changed dead -> start
    Oct 24 22:27:52 localhost.localdomain systemd[1]: Starting B...
    Oct 24 22:27:52 localhost.localdomain echo[970]: B
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Child 970 belongs to B.service.
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Main process exited, code=exited, status=0/SUCCESS
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Changed start -> exited
    Oct 24 22:27:52 localhost.localdomain systemd[1]: B.service: Job 1371 B.service/start finished, result=done
    Oct 24 22:27:52 localhost.localdomain systemd[1]: Started B.
    Oct 24 22:27:52 localhost.localdomain systemd[1]: C.target: Job 1287 C.target/start finished, result=done
    Oct 24 22:27:52 localhost.localdomain systemd[1]: Reached target C.
    Oct 24 22:27:52 localhost.localdomain systemd[1]: C.target: Failed to send unit change signal for C.target: Connection reset by peer
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Child 968 belongs to A.service.
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Main process exited, code=exited, status=0/SUCCESS
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Running next main command for state start.
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Passing 0 fds to service
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: About to execute: /usr/bin/echo A2
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Forked /usr/bin/echo as 972
    Oct 24 22:28:47 localhost.localdomain systemd[972]: A.service: Executing: /usr/bin/echo A2
    Oct 24 22:28:47 localhost.localdomain echo[972]: A2
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Child 972 belongs to A.service.
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Main process exited, code=exited, status=0/SUCCESS
    Oct 24 22:28:47 localhost.localdomain systemd[1]: A.service: Changed start -> exited

The issue occurs not only in reload command, i.e.:

  - reload
  - try-restart
  - reload-or-restart
  - reload-or-try-restart commands

The cause of this issue is that job_type_collapse() doesn't take care of the
activating state.

Fixes: #10464

4 years agojournalctl: allow running vacuum on remote journals, too
Jan Kundrát [Sat, 2 Nov 2019 15:42:01 +0000 (16:42 +0100)]
journalctl: allow running vacuum on remote journals, too

Right now the `systemd-journal-remote` service does not constrain its
resource usage (I just run out of space on my 100GB partition, for
example). This patch does not change that, but it at least makes it
possible to run something like:

  journalctl --directory /var/log/journal/remote --rotate --vacuum-size=90G

fixes #2376

Co-authored-by: Mike Auty <ikelos@gentoo.org>
4 years agobootctl: create leading dirs when "bootctl random-seed" is called if needed
Lennart Poettering [Mon, 4 Nov 2019 13:25:57 +0000 (14:25 +0100)]
bootctl: create leading dirs when "bootctl random-seed" is called if needed

Prompted by: #13603

4 years agoMerge pull request #13906 from yuwata/drop-missing-take2
Zbigniew Jędrzejewski-Szmek [Mon, 4 Nov 2019 12:41:37 +0000 (13:41 +0100)]
Merge pull request #13906 from yuwata/drop-missing-take2

tree-wide: drop xxx.h when xxx-util.h is included

4 years agosd-boot: Skip adding boot entries when the loader does not exist
Jan Janssen [Fri, 1 Nov 2019 11:31:07 +0000 (12:31 +0100)]
sd-boot: Skip adding boot entries when the loader does not exist

4 years agoallow an empty DefaultInstance= in configuration files
Jérémy Rosen [Fri, 1 Nov 2019 23:03:54 +0000 (00:03 +0100)]
allow an empty DefaultInstance= in configuration files

It is currently possible to override the DefaultInstance via drop-ins but
not remove it completely. Allow to do that by specifying an empty
DefaultInstance=

4 years agoman/systemd.net-naming-scheme: fix typo
Jan Synacek [Mon, 4 Nov 2019 09:43:05 +0000 (10:43 +0100)]
man/systemd.net-naming-scheme: fix typo

4 years agoutil: drop unnecessary headers from util.c
Yu Watanabe [Sun, 3 Nov 2019 15:40:37 +0000 (00:40 +0900)]
util: drop unnecessary headers from util.c

4 years agotree-wide: drop double newline
Yu Watanabe [Fri, 1 Nov 2019 09:33:24 +0000 (18:33 +0900)]
tree-wide: drop double newline

4 years agotree-wide: drop input.h when missing_input.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:28:32 +0000 (18:28 +0900)]
tree-wide: drop input.h when missing_input.h is included

4 years agotree-wide: drop stdio.h when stdio-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:27:33 +0000 (18:27 +0900)]
tree-wide: drop stdio.h when stdio-util.h is included

4 years agotree-wide: drop signal.h when signal-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:27:01 +0000 (18:27 +0900)]
tree-wide: drop signal.h when signal-util.h is included

4 years agotree-wide: drop mman.h when missing_mman.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:26:26 +0000 (18:26 +0900)]
tree-wide: drop mman.h when missing_mman.h is included

4 years agotree-wide: drop magic.h when missing_magic.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:24:45 +0000 (18:24 +0900)]
tree-wide: drop magic.h when missing_magic.h is included

4 years agotree-wide: drop stat.h or statfs.h when stat-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:23:26 +0000 (18:23 +0900)]
tree-wide: drop stat.h or statfs.h when stat-util.h is included

4 years agotree-wide: drop socket.h when socket-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:22:48 +0000 (18:22 +0900)]
tree-wide: drop socket.h when socket-util.h is included

4 years agotree-wide: drop mntent.h when fstab-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:21:33 +0000 (18:21 +0900)]
tree-wide: drop mntent.h when fstab-util.h is included

4 years agotree-wide: drop libkmod.h when module-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:20:59 +0000 (18:20 +0900)]
tree-wide: drop libkmod.h when module-util.h is included

4 years agotree-wide: drop blkid.h when blkid-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:20:31 +0000 (18:20 +0900)]
tree-wide: drop blkid.h when blkid-util.h is included

4 years agotree-wide: drop acl.h when acl-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:19:54 +0000 (18:19 +0900)]
tree-wide: drop acl.h when acl-util.h is included

4 years agotree-wide: drop pwd.h and grp.h when user-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:18:31 +0000 (18:18 +0900)]
tree-wide: drop pwd.h and grp.h when user-util.h is included

4 years agotree-wide: drop time.h when time-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:17:53 +0000 (18:17 +0900)]
tree-wide: drop time.h when time-util.h is included

4 years agotree-wide: drop capability.h when capability-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:17:16 +0000 (18:17 +0900)]
tree-wide: drop capability.h when capability-util.h is included

4 years agotree-wide: drop sched.h when missing_sched.h is included
Yu Watanabe [Fri, 1 Nov 2019 09:16:18 +0000 (18:16 +0900)]
tree-wide: drop sched.h when missing_sched.h is included

4 years agotree-wide: drop gcrypt.h when gcrypt-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 08:57:13 +0000 (17:57 +0900)]
tree-wide: drop gcrypt.h when gcrypt-util.h is included

4 years agotree-wide: drop locale.h when locale-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 08:56:33 +0000 (17:56 +0900)]
tree-wide: drop locale.h when locale-util.h is included

4 years agotree-wide: drop glob.h when glob-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 08:56:05 +0000 (17:56 +0900)]
tree-wide: drop glob.h when glob-util.h is included

4 years agotree-wide: drop dirent.h when dirent-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 08:55:16 +0000 (17:55 +0900)]
tree-wide: drop dirent.h when dirent-util.h is included

4 years agotree-wide: drop alloca.h when alloc-util.h is included
Yu Watanabe [Fri, 1 Nov 2019 08:46:59 +0000 (17:46 +0900)]
tree-wide: drop alloca.h when alloc-util.h is included

4 years agotree-wide: drop string.h when string-util.h or friends are included
Yu Watanabe [Fri, 1 Nov 2019 08:44:54 +0000 (17:44 +0900)]
tree-wide: drop string.h when string-util.h or friends are included

4 years agoMerge pull request #13899 from poettering/in-gid-tweak
Yu Watanabe [Sun, 3 Nov 2019 13:54:32 +0000 (22:54 +0900)]
Merge pull request #13899 from poettering/in-gid-tweak

user-util: tweak to in_gid()

4 years agoMerge pull request #13909 from poettering/env-copy-pid
Yu Watanabe [Sun, 3 Nov 2019 13:46:42 +0000 (22:46 +0900)]
Merge pull request #13909 from poettering/env-copy-pid

Fixes for the "saved_env" copy logic

4 years agonspawn: respect quiet on capabilities warning
Justin Trudell [Fri, 1 Nov 2019 19:00:16 +0000 (12:00 -0700)]
nspawn: respect quiet on capabilities warning

4 years agofs-util: let's avoid unnecessary strerror()
Lennart Poettering [Fri, 1 Nov 2019 10:43:34 +0000 (11:43 +0100)]
fs-util: let's avoid unnecessary strerror()

strerror() is not thread safe. Let's avoid it where it is easy hence.

(Ideally we'd not use it at all anymore, but that's sometimes a bit
nasty, not in this case though, where it is very easy to avoid)

Follow-up for: 27c3112dcbd1b5f171c36c32550d9c6331375b0b

4 years agoMerge pull request #13916 from ddstreet/test-network
Yu Watanabe [Sun, 3 Nov 2019 12:42:15 +0000 (21:42 +0900)]
Merge pull request #13916 from ddstreet/test-network

test-network: minor changes to work better on Debian/Ubuntu autopkgtest

4 years agonspawn: mangle slice name
Lennart Poettering [Fri, 1 Nov 2019 10:21:05 +0000 (11:21 +0100)]
nspawn: mangle slice name

It's user-facing, parsed from the command line and we typically mangle
in these cases, let's do so here too. (In particular as the identical
switch for systemd-run already does it.)

4 years agobasic/signal-util: drop unnecessary parens
Zbigniew Jędrzejewski-Szmek [Wed, 30 Oct 2019 13:36:05 +0000 (14:36 +0100)]
basic/signal-util: drop unnecessary parens

4 years agoMerge pull request #13905 from poettering/cpuset-fixes
Lennart Poettering [Fri, 1 Nov 2019 22:44:36 +0000 (23:44 +0100)]
Merge pull request #13905 from poettering/cpuset-fixes

fixes to the cpuset cgroup logic

4 years agotest-network: Remove/replace non-capturing group regex
Dan Streetman [Thu, 31 Oct 2019 16:19:23 +0000 (12:19 -0400)]
test-network: Remove/replace non-capturing group regex

The systemd-networkd-tests.py has some regex that uses non-capturing
groups, but there is no need to use that with assertRegex; the
groups aren't referenced so it doesn't matter if it's capturing or
non-capturing.  However, there are a few places where optional groups
should have been used instead, so this changes that.

Specifically, groups like this:
(?:whatever |)
should actually be:
(whatever )?

Additionally, this is specifically needed for these tests to run on
Debian systems, because this assertRegex:
'Link File: (?:/usr)/lib/systemd/network/99-default.link'
needs to be:
'Link File: (/usr)?/lib/systemd/network/99-default.link'

4 years agotest: check /usr/lib and /lib for systemd binaries
Dan Streetman [Thu, 31 Oct 2019 10:44:20 +0000 (06:44 -0400)]
test: check /usr/lib and /lib for systemd binaries

Fedora uses /usr/lib while Debian uses /lib; find the right location

4 years agotest/test-network/systemd-networkd-tests.py: suppress stderr for functionality checks
Dan Streetman [Thu, 31 Oct 2019 10:07:33 +0000 (06:07 -0400)]
test/test-network/systemd-networkd-tests.py: suppress stderr for functionality checks

4 years agomkosi: Find hostname command on Arch Linux
Kevin Kuehler [Thu, 31 Oct 2019 22:41:32 +0000 (15:41 -0700)]
mkosi: Find hostname command on Arch Linux

exec-specifier.service: Executing: /usr/bin/sh -c 'test mkosi-7d5e81c7b81c42338d060a6b98edd44a = $(hostname)'
/usr/bin/sh: hostname: command not found
/usr/bin/sh: line 0: test: mkosi-7d5e81c7b81c42338d060a6b98edd44a: unary operator expected
Received SIGCHLD from PID 7389 (sh).
Child 7389 (sh) died (code=exited, status=2/INVALIDARGUMENT)

gettext provides the hostname binary, but puts it in
/usr/lib/gettext/hostname, which is not part of the default $PATH. Using
inetutils instead puts the binary in /usr/bin/hostname.

4 years agoupdate TODO
Lennart Poettering [Fri, 1 Nov 2019 12:07:51 +0000 (13:07 +0100)]
update TODO

4 years agostatic-destruct: add missing closing '(' in comment
Lennart Poettering [Fri, 1 Nov 2019 10:31:20 +0000 (11:31 +0100)]
static-destruct: add missing closing '(' in comment

4 years agopid1: rework environment block copy logic
Lennart Poettering [Fri, 1 Nov 2019 10:26:05 +0000 (11:26 +0100)]
pid1: rework environment block copy logic

This reworks the logic introduced in
a5cede8c24fddda9b73f142e09b18b49adde1b9c (#13693).

First of all, let's move this out of util.c, since only PID 1 really
needs this, and there's no real need to have it in util.c.

Then, fix freeing of the variable. It previously relied on
STATIC_DESTRUCTOR_REGISTER() which however relies on static_destruct()
to be called explicitly. Currently only the main-func.h macros do that,
and PID 1 does not. (It might be worth investigating whether to do that,
but it's not trivial.) Hence the freeing wasn't applied.

Finally, an OOM check was missing, add it in.

4 years agocgroup: add missing OOM check, and shorten code a bit
Lennart Poettering [Fri, 1 Nov 2019 09:22:03 +0000 (10:22 +0100)]
cgroup: add missing OOM check, and shorten code a bit

cpu_set_to_range_string() can fail due to OOM. Handle that.

unit_write_settingf() exists, use it instead of formatting a string
beforehand.

cpu_set_add_all() can fail due to OOM. Let's avoid it if we don't have
to use it, just copy over the cpuset directly.

4 years agocpuset: fix indentation and log about OOM we otherwise ignore
Lennart Poettering [Fri, 1 Nov 2019 09:21:53 +0000 (10:21 +0100)]
cpuset: fix indentation and log about OOM we otherwise ignore

4 years agocgroup: add some basic OOM safety where it was missing
Lennart Poettering [Fri, 1 Nov 2019 09:21:35 +0000 (10:21 +0100)]
cgroup: add some basic OOM safety where it was missing

4 years agoNEWS: mention NetworkEmulatorDuplicateRate= setting
Yu Watanabe [Fri, 1 Nov 2019 02:46:00 +0000 (11:46 +0900)]
NEWS: mention NetworkEmulatorDuplicateRate= setting

4 years agoMerge pull request #13888 from ssahani/qdisc
Yu Watanabe [Fri, 1 Nov 2019 02:44:10 +0000 (11:44 +0900)]
Merge pull request #13888 from ssahani/qdisc

tc qdisc: netem add support to duplicate packets.

4 years agonetwork: DHCP server remove duplicate free
Susant Sahani [Thu, 31 Oct 2019 20:55:48 +0000 (21:55 +0100)]
network: DHCP server remove duplicate free

4 years agoFix CID 1406578: Resource leaks (RESOURCE_LEAK)
Susant Sahani [Thu, 31 Oct 2019 13:25:16 +0000 (14:25 +0100)]
Fix CID 1406578:  Resource leaks  (RESOURCE_LEAK)

** CID 1406578:  Resource leaks  (RESOURCE_LEAK)
/src/libsystemd-network/sd-dhcp-server.c: 155 in sd_dhcp_raw_option_new()

4 years agotest: add really basic in_gid() test
Lennart Poettering [Thu, 31 Oct 2019 19:28:49 +0000 (20:28 +0100)]
test: add really basic in_gid() test

4 years agouser-util: tweak to in_gid()
Lennart Poettering [Thu, 31 Oct 2019 19:27:34 +0000 (20:27 +0100)]
user-util: tweak to in_gid()

Let's make this robust towards parallel updates to group lists. This is
not going to happen IRL, but it makes me sleep better at night: let's
iterate a couple of times in case the list is updated while we are at
it.

Follow-up for: f5e0b942af1e86993c21f4e5c84342bb10403dac

4 years agoMerge pull request #13895 from jsynacek/master
Anita Zhang [Thu, 31 Oct 2019 18:39:08 +0000 (11:39 -0700)]
Merge pull request #13895 from jsynacek/master

sd-dhcp: fix resource leak

4 years agoMerge pull request #13891 from yuwata/basic-drop-missing
Anita Zhang [Thu, 31 Oct 2019 18:35:58 +0000 (11:35 -0700)]
Merge pull request #13891 from yuwata/basic-drop-missing

tree-wide: drop missing.h

4 years agoMerge pull request #13892 from keur/mkosi_arch
Anita Zhang [Thu, 31 Oct 2019 18:22:37 +0000 (11:22 -0700)]
Merge pull request #13892 from keur/mkosi_arch

Fix mkosi on Arch Linux

4 years agoUpdate to Fedora31
Jóhann B. Guðmundsson [Thu, 31 Oct 2019 14:51:41 +0000 (14:51 +0000)]
Update to Fedora31

4 years agosd-dhcp: fix resource leak
Jan Synacek [Thu, 31 Oct 2019 13:37:43 +0000 (14:37 +0100)]
sd-dhcp: fix resource leak

CID#1406578

4 years agotc: qdisc remove some duplicate code
Susant Sahani [Wed, 30 Oct 2019 18:13:33 +0000 (19:13 +0100)]
tc: qdisc remove some duplicate code