1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00
Commit Graph

34513 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
4ee35e4e53
Merge pull request #9721 from yuwata/fix-resolve-memleak
Fix resolve memleak
2018-07-26 14:22:15 +02:00
Lennart Poettering
c9177eb8ec
Merge pull request #9719 from poettering/sleep-fixes
require the kernel image to still exist before allowing hibernation
2018-07-26 14:03:18 +02:00
Zbigniew Jędrzejewski-Szmek
7426028b7a
Merge pull request #9720 from yuwata/fix-9702
Fix DynamicUser=yes with static User= whose UID and GID are different
2018-07-26 11:42:00 +02:00
Lennart Poettering
007d5b1f40 hwbd: whitespace fix-up
A correction for 505707490a.
2018-07-26 11:01:29 +02:00
Lennart Poettering
904865b8c2 sleep-config: library code should not log beyond LOG_DEBUG 2018-07-26 11:01:29 +02:00
Lennart Poettering
edda44605f sleep: offer hibernation only if the kernel image still exists
This makes hibernation unavailable if the kernel image we are currently
running was removed. This is supposed to be superficial protection
against hibernating a system we can never return from because the kernel
has been updated and the kernel we currently run is not available
anymore.

We look at a couple of places for the kernel, which should cover all
distributions I know off. Should I have missed a path I am sure people
will quickly notice and we can add more places to check. (or maybe
convince those distros to stick their kernels at a standard place)
2018-07-26 11:01:29 +02:00
Lennart Poettering
7474f15b2d sleep-config: eat up errors only after debug logging about them 2018-07-26 11:01:29 +02:00
Lennart Poettering
3dea6886c2 sleep-config: partitions can't be deleted, only files can
This fixes something I think was basically a typo introduced in
db69869f26.
2018-07-26 11:01:29 +02:00
Yu Watanabe
52588e0bda resolve: use structured initialization and use new() instead of new0() 2018-07-26 17:45:34 +09:00
Yu Watanabe
c0df8f834a resolve: fix memleak 2018-07-26 17:45:34 +09:00
Zbigniew Jędrzejewski-Szmek
82296b3e07
Merge pull request #9684 from yuwata/fix-9672
timedate, locale: fix barrier to suppress multiple function calls
2018-07-26 10:42:50 +02:00
Andrew Jorgensen
411ae92b40 shared/sleep-config: exclude zram devices from hibernation candidates
On a host with sufficiently large zram but with no actual swap, logind will
respond to CanHibernate() with yes. With this patch, it will correctly respond
no, unless there are other swap devices to consider.
2018-07-26 10:19:04 +02:00
Zbigniew Jędrzejewski-Szmek
54fe2ce1b9
Merge pull request #9504 from poettering/nss-deadlock
some nss deadlock love
2018-07-26 10:16:25 +02:00
Zbigniew Jędrzejewski-Szmek
cf6e28f3cb
Merge pull request #9484 from poettering/permille-everywhere
Permille everywhere
2018-07-26 10:13:56 +02:00
Zbigniew Jędrzejewski-Szmek
be0135c252
Merge pull request #9620 from poettering/type-exec
add new Type=exec service type
2018-07-26 09:34:11 +02:00
Yu Watanabe
9f82d685f3 test: add tests for DynamicUser= with static User= whose UID and GID are different 2018-07-26 16:32:10 +09:00
Yu Watanabe
25a1df7c65 core: fix gid when DynamicUser=yes with static User=
When DynamicUser=yes and static User= are set, and the user has
different uid and gid, then as the storage socket for the dynamic
user does not contains gid, we need to obtain gid.

Follow-up for 9ec655cbbd.

Fixes #9702.
2018-07-26 15:38:18 +09:00
Yu Watanabe
3af0a96c0f timedate: defer the property changed signal until job of starting/stopping NTP service is finished
Before this, the property changed signal is emitted immediately after
StartUnit/StopUnit method is called. So, the running state of the NTP
client service may not updated.
This makes the timing of emitting property changed signal is deferred
until job of starting/stopping NTP client service is completed.

Fixes #9672.
2018-07-26 12:13:35 +09:00
Yu Watanabe
65d3426677 locale: increment reference count of sd_bus_message 2018-07-26 12:13:35 +09:00
Yu Watanabe
2770af85ac timedate: increment reference count of sd_bus_message
The commit 5d280742b6 introduces a
barrier to suppress calling context_update_ntp_status() multiple times.
However, it just stores the address of sd_bus_message object. So,
when an address is reused on the subsequent message, then the status
of NTP clients are not updated.

This makes the stored message object is referenced by the context
object. So, the subsequent message is on cirtainly different address.
2018-07-26 12:13:35 +09:00
Lennart Poettering
fcb9751296 NEWS: add entry about Type=exec and announce that systemd-run is going to default to it in 241 2018-07-25 22:48:11 +02:00
Lennart Poettering
0e1f17561f test: add test for Type=exec 2018-07-25 22:48:11 +02:00
Lennart Poettering
79905a246d man: document the new Type=exec type
And while we are at it, let's rearrange and extend the Type=
documentation a bit. Let's make it an itemized list, and let's add a
paragraph explaining which type best to use.
2018-07-25 22:48:11 +02:00
Lennart Poettering
5686391b00 core: introduce new Type=exec service type
Users are often surprised that "systemd-run" command lines like
"systemd-run -p User=idontexist /bin/true" will return successfully,
even though the logs show that the process couldn't be invoked, as the
user "idontexist" doesn't exist. This is because Type=simple will only
wait until fork() succeeded before returning start-up success.

This patch adds a new service type Type=exec, which is very similar to
Type=simple, but waits until the child process completed the execve()
before returning success. It uses a pipe that has O_CLOEXEC set for this
logic, so that the kernel automatically sends POLLHUP on it when the
execve() succeeded but leaves the pipe open if not. This means PID 1
waits exactly until the execve() succeeded in the child, and not longer
and not shorter, which is the desired functionality.

Making use of this new functionality, the command line
"systemd-run -p User=idontexist -p Type=exec /bin/true" will now fail,
as expected.
2018-07-25 22:48:11 +02:00
Lennart Poettering
ce0d60a7c4 execute: use our usual syntax for defining bit masks 2018-07-25 22:48:11 +02:00
Lennart Poettering
25b583d7ff core: swap order of "n_storage_fds" and "n_socket_fds" parameters
When process fd lists to pass to activated programs we always place the
socket activation fds first, and the storage fds last. Irritatingly in
almost all calls the "n_storage_fds" parameter (i.e. the number of
storage fds to pass) came first so far, and the "n_socket_fds" parameter
second. Let's clean this up, and specify the number of fds in the order
the fds themselves are passed.

(Also, let's fix one more case where "unsigned" was used to size an
array, while we should use "size_t" instead.)
2018-07-25 22:48:11 +02:00
Lennart Poettering
a8c9b7a0fc sd-login: let's also make sd-login understand ".host"
if sd-bus and machined grok it, then sd-login should grok it too.
2018-07-25 22:48:11 +02:00
Lennart Poettering
1e5057b904 sd-bus: allow connecting to the pseudo-container ".host"
machined exposes the pseudo-container ".host" as a reference to the host
system, and this means "machinectl login .host" and "machinectl shell
.host" get your a login/shell on the host. systemd-run currently doesn't
allow that. Let's fix that, and make sd-bus understand ".host" as an
alias for connecting to the host system.
2018-07-25 22:48:11 +02:00
Lennart Poettering
7bd4bcf740 update TODO 2018-07-25 22:48:11 +02:00
Zbigniew Jędrzejewski-Szmek
f11fc3fa73
Merge pull request #9667 from poettering/pam_systemd-fixes
pam_systemd fixes
2018-07-25 22:26:46 +02:00
Mario Hros
597f0cec79 hwdb: Add accel mount matrix for Lenovo Miix 3-830 2018-07-25 20:37:44 +02:00
Mario Hros
505707490a hwdb: Add information on where to find identifiers 2018-07-25 20:37:44 +02:00
Lennart Poettering
f806dfd345 tree-wide: increase granularity of percent specifications all over the place to permille
We so far had various placed we'd parse percentages with
parse_percent(). Let's make them use parse_permille() instead, which is
downward compatible (as it also parses percent values), and increases
the granularity a bit. Given that on the wire we usually normalize
relative specifications to something like UINT32_MAX anyway changing
from base-100 to base-1000 calculations can be done easily without
breaking compat.

This commit doesn't document this change in the man pages. While
allowing more precise specifcations permille is not as commonly
understood as perent I guess, hence let's keep this out of the docs for
now.
2018-07-25 16:14:45 +02:00
Lennart Poettering
8cbc92d597 parse-util: in parse_permille() check negative earlier
If 'v' is negative, it's wrong to add the decimal to it, as we'd
actually need to subtract it in this case. But given that we don't want
to allow negative vaues anyway, simply check earlier whether what we
have parsed so far was negative, and react to that before adding the
decimal to it.
2018-07-25 16:14:45 +02:00
Lennart Poettering
b115f33cc6 man: update pam_systemd to reflect recent changes
1. Document the new desktop= parameter

2. Clarify that we set XDG_SESSION_DESKTOP, XDG_SESSION_CLASS,
   XDG_SESSION_TYPE if we have the data, and don't just read it.
2018-07-25 16:09:33 +02:00
Lennart Poettering
d487e2d68d pam_systemd: cast calls whose result we knowingly ignore to (void) 2018-07-25 16:09:33 +02:00
Lennart Poettering
36a4dbae4b pam_systemd: reduce append_session_cg_weight() indentation level a bit by moving to early exit 2018-07-25 16:09:33 +02:00
Lennart Poettering
f7b8b5c4fb pam_systemd: move socket_from_display() from util.[ch] to pam_systemd.c
It's highly specific, kinda legacy (X11…) and only used at one place,
let's move this out of the common code, and into pam_systemd.c where it
is used.
2018-07-25 16:09:33 +02:00
Lennart Poettering
e37e5ed32e pam_systemd: sort includes properly 2018-07-25 16:09:33 +02:00
Lennart Poettering
b2f74f079d pam_systemd: always set XDG_SESSION_{CLASS|TYPE|DESKTOP}
We likely get the data from the env block, but we might also determine
it from elsewhere (such as PAM module parameters). Let's set the env
vars on the env block explicitly, so that they are available always, and
apps can rely on it.
2018-07-25 16:09:33 +02:00
Lennart Poettering
d6baaa6978 pam_systemd: simplify code which with we set environment variables
Let's shorten things a bit by splitting out common code in a new
function.
2018-07-25 16:09:33 +02:00
Lennart Poettering
5fdfbbd505 pam_systemd: tiny coding style fix 2018-07-25 16:09:33 +02:00
Lennart Poettering
f5cb2820fd pam_systemd: also make $XDG_SESSION_DESKTOP configurable via PAM module command line
Let's make this symmetric with XDG_SESSION_CLASS and XDG_SESSION_TYPE,
so that PAM stacks can configure this easily without involving env vars,
in case there are PAM session managers which only support a single
desktop anyway.
2018-07-25 16:09:33 +02:00
Lennart Poettering
0ecc1c9d7c pam_systemd: simplify how we process env vars
Let's introduce a single unified getenv() implementation for the various
fields we need.

No change in behaviour.
2018-07-25 16:09:33 +02:00
Lennart Poettering
2b2b7228bf pam_systemd: drop setting DBUS_SESSION_BUS_ADDRESS
Since D-Bus 1.9.14 (2015-03-02) dbus looks in $XDG_RUNTIME_DIR/bus for
the system bus on its own, hence we can finally drop setting this
environment variable. gdbus since glib 2.45.3 (June 2015) also supports
it.
2018-07-25 16:09:33 +02:00
Lennart Poettering
1acfbbff46 man: document that pam_systemd actually sets XDG_SEAT and XDG_VTNR
The old wording is not clear regarding whether the env var will be
updated or just a fallbacked is used.
2018-07-25 16:07:27 +02:00
Lennart Poettering
d68c0833ea man: document CPUAffinity= in system.conf in more detail
Fixes: #9692
2018-07-25 16:01:28 +02:00
Zbigniew Jędrzejewski-Szmek
2b5107e162 core/main: use return log_*_errno more 2018-07-25 14:48:07 +02:00
Lennart Poettering
9fb96abdfd networkd: fix overflow check
Fixes: #9591
2018-07-25 14:13:10 +02:00
Lennart Poettering
e5b3ace969 units: make sure user@.service runs with dbus still up
Fixes: #9565
2018-07-25 14:12:09 +02:00