platform/upstream/systemd.git
6 years agotest: add tests for mount_option_mangle()
Yu Watanabe [Thu, 15 Feb 2018 00:36:18 +0000 (09:36 +0900)]
test: add tests for mount_option_mangle()

6 years agomount-util: add mount_option_mangle()
Yu Watanabe [Thu, 15 Feb 2018 00:32:04 +0000 (09:32 +0900)]
mount-util: add mount_option_mangle()

This is used in the later commits.

6 years agocore: simplify DBus API for BindPaths=
Yu Watanabe [Wed, 21 Feb 2018 00:06:32 +0000 (09:06 +0900)]
core: simplify DBus API for BindPaths=

6 years agocore: fix DBus API for AppArmorProfile= and SmackProcessLabel=
Yu Watanabe [Tue, 13 Feb 2018 05:16:35 +0000 (14:16 +0900)]
core: fix DBus API for AppArmorProfile= and SmackProcessLabel=

6 years agocore/execute: clear bind_mounts
Yu Watanabe [Tue, 13 Feb 2018 05:22:23 +0000 (14:22 +0900)]
core/execute: clear bind_mounts

6 years agocore/execute: simplify compile_bind_mounts()
Yu Watanabe [Mon, 12 Feb 2018 07:16:58 +0000 (16:16 +0900)]
core/execute: simplify compile_bind_mounts()

It is not necessary to re-assign error code.

6 years agonspawn: fix indentation
Yu Watanabe [Mon, 12 Feb 2018 08:23:35 +0000 (17:23 +0900)]
nspawn: fix indentation

6 years agocore/namespace: remove unused argument
Yu Watanabe [Tue, 13 Feb 2018 05:21:13 +0000 (14:21 +0900)]
core/namespace: remove unused argument

6 years agocore/namespace: use free_and_replace()
Yu Watanabe [Mon, 12 Feb 2018 05:27:49 +0000 (14:27 +0900)]
core/namespace: use free_and_replace()

6 years agocore/namespace: fix comment
Yu Watanabe [Wed, 14 Feb 2018 04:29:13 +0000 (13:29 +0900)]
core/namespace: fix comment

6 years agocore/namespace: merge PRIVATE_VAR_TMP into PRIVATE_TMP
Yu Watanabe [Mon, 19 Feb 2018 06:19:41 +0000 (15:19 +0900)]
core/namespace: merge PRIVATE_VAR_TMP into PRIVATE_TMP

6 years agocore/namespace: make arguments const if possible
Yu Watanabe [Sat, 10 Feb 2018 10:24:57 +0000 (19:24 +0900)]
core/namespace: make arguments const if possible

6 years agomeson: Multi-lines string should use ''' with meson (#8225)
Alexis Jeandet [Tue, 20 Feb 2018 01:36:41 +0000 (02:36 +0100)]
meson: Multi-lines string should use ''' with meson (#8225)

This breaks with latest version of meson:
https://hephaistos.lpp.polytechnique.fr/teamcity/viewLog.html?buildId=11653&buildTypeId=mesonbuild_SystemdNightly&tab=buildLog&state=1059#_state=1059&guest=true

6 years agoMerge pull request #8223 from jwrdegoede/hwdb-keyboard-touchpad-toggle
Yu Watanabe [Tue, 20 Feb 2018 01:34:53 +0000 (10:34 +0900)]
Merge pull request #8223 from jwrdegoede/hwdb-keyboard-touchpad-toggle

hwdb: 60-keyboard add mapping for the touchpad-toggle hotkey on 2 laptops

6 years agohwdb: Logitech M305 Wireless Optical Mouse dpi data (#8217)
Daniel Mouritzen [Tue, 20 Feb 2018 01:33:10 +0000 (02:33 +0100)]
hwdb: Logitech M305 Wireless Optical Mouse dpi data (#8217)

Closes #8208

6 years agohwdb: Add quirk to fix mapping of T-bao Tbook air touchpad toggle key
Hans de Goede [Mon, 19 Feb 2018 17:24:09 +0000 (18:24 +0100)]
hwdb: Add quirk to fix mapping of T-bao Tbook air touchpad toggle key

The touchpad toggle key (Fn + Esc) on the T-bao Tbook air sends CTRL +
META + scancode 0x76 without this quirk. With this quirk it sends CTRL +
META + F21, with F21 mapping to XF86TouchpadToggle, which is what we want.

Note that the CTRL + META modifiers being send together with the F21 are
still somewhat unusual, userspace will need to be thought to deal with
this as there is nothing we can do about this at the hwdb level. Note at
least one other laptop also sends CTRL + META + F21 instead of just F21.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agohwdb: Add quirk to fix mapping of VIOS LTH17 touchpad toggle key
Hans de Goede [Mon, 19 Feb 2018 17:11:30 +0000 (18:11 +0100)]
hwdb: Add quirk to fix mapping of VIOS LTH17 touchpad toggle key

The touchpad toggle key (Fn + F6) on the VIOS LTH17 sends CTRL + META + F24
without this quirk. With this quirk it sends CTRL + META + F21, with F21
mapping to XF86TouchpadToggle, which is what we want.

Note that the CTRL + META modifiers being send together with the F21 are
still somewhat unusual, userspace will need to be thought to deal with
this as there is nothing we can do about this at the hwdb level. Note at
least one other laptop also sends CTRL + META + F21 instead of just F21.

6 years agoMerge pull request #8199 from keszybz/small-things
Lennart Poettering [Mon, 19 Feb 2018 15:55:10 +0000 (16:55 +0100)]
Merge pull request #8199 from keszybz/small-things

Sundry small cleanups

6 years agotests: add a simple test for utf8_n_codepoints()
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 09:34:00 +0000 (10:34 +0100)]
tests: add a simple test for utf8_n_codepoints()

6 years agoSome comment adjustments
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 09:27:47 +0000 (10:27 +0100)]
Some comment adjustments

Follow up for review of #8184.

6 years agocore: drop obsolete comment
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 09:23:16 +0000 (10:23 +0100)]
core: drop obsolete comment

https://github.com/systemd/systemd/pull/8125#pullrequestreview-96894581

6 years agopid1: do not initialize join_controllers by default
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 09:17:46 +0000 (10:17 +0100)]
pid1: do not initialize join_controllers by default

We're moving towards unified cgroup hierarchy where this is not necessary.
This makes main.c a bit simpler.

6 years agoMove config_parse_join_controllers to shared, add test
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 08:56:29 +0000 (09:56 +0100)]
Move config_parse_join_controllers to shared, add test

config_parse_join_controllers would free the destination argument on failure,
which is contrary to our normal style, where failed parsing has no effect.
Moving it to shared also allows a test to be added.

6 years agoshared/conf-parser: define a macro for the repeating argument set
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 08:29:57 +0000 (09:29 +0100)]
shared/conf-parser: define a macro for the repeating argument set

The arguments have to be indentical everywhere, so let's use a macro to
make things more readable. But only in the headers, in the .c files let's
keep them verbose so that it's easy to see the argument list.

6 years agotest-process-util: one more (void)
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 06:03:13 +0000 (07:03 +0100)]
test-process-util: one more (void)

6 years agoAdd some handling to remaining unlinkat calls
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 06:00:22 +0000 (07:00 +0100)]
Add some handling to remaining unlinkat calls

Coverity now started warning about this ("Calling unlinkat without checking
return value (as is done elsewhere 12 out of 15 times).", and it is right:
most of the time we should at list print a log message so people can figure
out something is wrong when this happens.

v2:
- use warning level in journald too (this is unlikely to happen ever, so it
  should be safe to something that is visible by default).

6 years agobootspec: accept tab as the separataor in sd-boot config (#8165)
Yu Watanabe [Mon, 19 Feb 2018 13:26:01 +0000 (22:26 +0900)]
bootspec: accept tab as the separataor in sd-boot config (#8165)

In the parse logic `line_get_key_value()` in sd-boot treats spaces
and tabs are valid spacing between key and value in the line.
So, let's use the same logic for `bootctl` and the others which read
sd-boot configs.

Fixes #8154.

6 years agomeson: apply defaults if /etc/login.defs doesn't exist
Caio Marcelo de Oliveira Filho [Mon, 19 Feb 2018 02:33:16 +0000 (18:33 -0800)]
meson: apply defaults if /etc/login.defs doesn't exist

Apply defaults for system_{uid,gid}_max even if the /etc/login.defs file
doesn't exist (e.g. in Clear Linux with no changes).

awk returns an empty string in case the file doesn't exist, causing meson to
fail in to_int(). So set the default if output is empty. This makes the BEGIN{}
blocks unnecessary, so remove them.

6 years agojob: truncate unit description
Iago López Galeiras [Fri, 16 Feb 2018 13:32:44 +0000 (14:32 +0100)]
job: truncate unit description

The comment above says we're truncating the string but that's not true,
an assert will fail in xsprintf if the description is longer than
LINE_MAX.

Let's use snprintf instead of xsprintf to make sure it's truncated.
We'll cast its result to void to tell static checkers we're fine with
truncation.

6 years agopo: update Serbian translation
Марко М. Костић (Marko M. Kostić) [Sun, 18 Feb 2018 21:04:22 +0000 (22:04 +0100)]
po: update Serbian translation

6 years agomeson: use multiline string syntax (#8214)
Caio Marcelo de Oliveira Filho [Mon, 19 Feb 2018 09:37:19 +0000 (01:37 -0800)]
meson: use multiline string syntax (#8214)

The single quote working with multiple lines is likely to be unintended. With
current versions of meson, it also causes error messages after it to report the
wrong line number. Use the documented syntax instead.

6 years agoMerge pull request #8202 from keszybz/avoid-msgmerge
Michael Biebl [Sun, 18 Feb 2018 18:56:50 +0000 (19:56 +0100)]
Merge pull request #8202 from keszybz/avoid-msgmerge

Replace msgmerge use by gettext-domain= references

6 years agomeson: fix systemd-pot target when polkit-devel is not installed
Zbigniew Jędrzejewski-Szmek [Sun, 18 Feb 2018 16:39:08 +0000 (17:39 +0100)]
meson: fix systemd-pot target when polkit-devel is not installed

To successfully extract strings from our .policy files, gettext needs
polkit.{its,loc} files provided by policykit-devel. When that package is not
installed, systemd-pot would fail to extract strings:

[0/1] Running external command systemd-pot.
xgettext: warning: file 'src/core/org.freedesktop.systemd1.policy.in.in' extension 'policy' is unknown; will try C
xgettext: warning: file 'src/hostname/org.freedesktop.hostname1.policy.in' extension 'policy' is unknown; will try C
...

We now don't need the .its and .loc files for normal building, but they are
still useful when generating the .pot file, because that way we avoid the
dependency on sufficiently new polkit. We just need to tell i18n to pass their
location to xgettext.

6 years agol10n: Update POTFILES.in and POTFILES.skip
Michael Biebl [Fri, 16 Feb 2018 13:25:32 +0000 (14:25 +0100)]
l10n: Update POTFILES.in and POTFILES.skip

We no longer use .in suffixes for .policy files.

Follow-up for commit 9b3cff199dd3827a9f2df9a7f5874d6ef18880f2 and
70886abbde59a45cfabe0769c0cdb3af1e5f7790.

6 years agotests: reset _found at the end of each iteration (#8195)
Evgeny Vereshchagin [Fri, 16 Feb 2018 13:26:26 +0000 (16:26 +0300)]
tests: reset _found at the end of each iteration (#8195)

This makes `inst_rules` really print all rules it skips.

6 years agomkosi: remove intltool from deps
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 20:38:15 +0000 (21:38 +0100)]
mkosi: remove intltool from deps

intltool is unnecessary since c81217920effddc93fb780cf8f9eb699d6fe1319.
But we still need gettext, because we use msgformat to generate .mo files.
(I tried to make meson depend on it, at least in Fedora:
 https://bugzilla.redhat.com/show_bug.cgi?id=1545926, but that didn't fly,
 and in Debian at least meson also has no dependency on the tools used by
 its i18n module, so we need to add our own dependency anyway.)

Closes #8192.

6 years agomeson: drop unnecessary "transformation" of policy files
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 11:48:55 +0000 (12:48 +0100)]
meson: drop unnecessary "transformation" of policy files

Those files don't contain any @variables@, so the configuration step was just
copying them to build/. Let's avoid that, and fix their suffixes while at it.

6 years agomeson: drop double .in suffix for o.fd.systemd1.policy file
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 11:37:42 +0000 (12:37 +0100)]
meson: drop double .in suffix for o.fd.systemd1.policy file

This file is now undergoing just one transformation, so drop the unnecessary
suffix.

6 years agoGettextize policy files
Gunnar Hjalmarsson [Thu, 15 Feb 2018 20:21:58 +0000 (21:21 +0100)]
Gettextize policy files

* Don't merge translations into the files
* Add gettext-domain="systemd" to description and message

Closes #8162, replaces #8118.

6 years agologin,user-sessions: always warn when we fail to remove nologin file
Zbigniew Jędrzejewski-Szmek [Fri, 16 Feb 2018 05:58:33 +0000 (06:58 +0100)]
login,user-sessions: always warn when we fail to remove nologin file

This usually is very annoying to users who then cannot log in, so
make sure we always warn if that happens (selinux, or whatever other reason).

This reverts a790812cb349c5cef95d1b4a20fc80ca08d3a145.

6 years agotest/test-functions: Debian/Ubuntu, now ship 95-dm-notify.rules, copy it
Dimitri John Ledkov [Wed, 14 Feb 2018 20:34:55 +0000 (20:34 +0000)]
test/test-functions: Debian/Ubuntu, now ship 95-dm-notify.rules, copy it

This fixes cryptsetup tests on recent Ubuntu/Debian systems (current
development series).

Bug-Launchpad: https://launchpad.net/bugs/1749432

6 years agoMerge pull request #8175 from keszybz/gc-cleanup
Lennart Poettering [Thu, 15 Feb 2018 16:47:37 +0000 (17:47 +0100)]
Merge pull request #8175 from keszybz/gc-cleanup

Garbage collection cleanup

6 years agoMerge pull request #8188 from keszybz/coverity-fixes
Lennart Poettering [Thu, 15 Feb 2018 16:23:03 +0000 (17:23 +0100)]
Merge pull request #8188 from keszybz/coverity-fixes

Coverity fixes

6 years agoMerge pull request #8150 from poettering/memory-accounting-by-default
Lennart Poettering [Thu, 15 Feb 2018 16:22:36 +0000 (17:22 +0100)]
Merge pull request #8150 from poettering/memory-accounting-by-default

pid1: turn memory accounting on by default now

6 years agoMerge pull request #8184 from poettering/color-ask-pw
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 16:14:59 +0000 (17:14 +0100)]
Merge pull request #8184 from poettering/color-ask-pw

Trivial merge conflict resolved locally.

6 years agoMerge pull request #8125 from poettering/cgroups-migrate
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 15:15:45 +0000 (16:15 +0100)]
Merge pull request #8125 from poettering/cgroups-migrate

Trivial merge conflict resolved locally.

6 years agomachined: change check_gc to may_gc everywhere
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 12:15:45 +0000 (13:15 +0100)]
machined: change check_gc to may_gc everywhere

6 years agologind: change check_gc to may_gc everywhere
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 12:14:35 +0000 (13:14 +0100)]
logind: change check_gc to may_gc everywhere

6 years agopid1: also show gc status for jobs like we do for units
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 23:52:21 +0000 (00:52 +0100)]
pid1: also show gc status for jobs like we do for units

6 years agopid1: rename job_check_gc to job_may_gc
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 23:39:06 +0000 (00:39 +0100)]
pid1: rename job_check_gc to job_may_gc

The reasoning is the same as for unit_can_gc.

v2:
- rename can_gc to may_gc

6 years agopid1: properly remove references to the unit from gc queue during final cleanup
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 22:57:43 +0000 (23:57 +0100)]
pid1: properly remove references to the unit from gc queue during final cleanup

When various references to the unit were dropped during cleanup in unit_free(),
add_to_gc_queue() could be called on this unit. If the unit was previously in
the gc queue (at the time when unit_free() was called on it), this wouldn't
matter, because it'd have in_gc_queue still set even though it was already
removed from the queue. But if it wasn't set, then the unit could be added to
the queue. Then after unit_free() would deallocate the unit, we would be left
with a dangling pointer in gc_queue.

A unit could be added to the gc queue in two places called from unit_free():
in the job_install calls, and in unit_ref_unset(). The first was OK, because
it was above the LIST_REMOVE(gc_queue,...) call, but the second was not, because
it was after that. Move the all LIST_REMOVE() calls down.

6 years agopid1: free basic unit information at the very end, before freeing the unit
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 23:01:05 +0000 (00:01 +0100)]
pid1: free basic unit information at the very end, before freeing the unit

We would free stuff like the names of the unit first, and then recurse
into other structures to remove the unit from there. Technically this
was OK, since the code did not access the name, but this makes debugging
harder. And if any log messages are added in any of those functions, they
are likely to access u->id and such other basic information about the unit.
So let's move the removal of this "basic" information towards the end
of unit_free().

6 years agopid1: fix collection of cycles of units which reference one another
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 13:37:11 +0000 (14:37 +0100)]
pid1: fix collection of cycles of units which reference one another

A .socket will reference a .service unit, by registering a UnitRef with the
.service unit. If this .service unit has the .socket unit listed in Wants or
Sockets or such, a cycle will be created. We would not free this cycle
properly, because we treated any unit with non-empty refs as uncollectable. To
solve this issue, treats refs with UnitRef in u->refs_by_target similarly to
the refs in u->dependencies, and check if the "other" unit is known to be
needed. If it is not needed, do not treat the reference from it as preventing
the unit we are looking at from being freed.

6 years agopid1: include the source unit in UnitRef
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 12:12:43 +0000 (13:12 +0100)]
pid1: include the source unit in UnitRef

No functional change.

The source unit manages the reference. It allocates the UnitRef structure and
registers it in the target unit, and then the reference must be destroyed
before the source unit is destroyed. Thus, is should be OK to include the
pointer to the source unit, it should be live as long as the reference exists.

v2:
- rename refs to refs_by_target

6 years agopid1: rename unit_check_gc to unit_may_gc
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 09:50:13 +0000 (10:50 +0100)]
pid1: rename unit_check_gc to unit_may_gc

"check" is unclear: what is true, what is false? Let's rename to "can_gc" and
revert the return value ("positive" values are easier to grok).

v2:
- rename from unit_can_gc to unit_may_gc

6 years agocoredump: accept hostname on command line (#8033)
Jakub Filak [Thu, 15 Feb 2018 11:12:46 +0000 (12:12 +0100)]
coredump: accept hostname on command line (#8033)

This commint adds a new command line parameter to sytemd-coredump. The
parameter should be mappend to core_pattern's placeholder %h - hostname.

The field _HOSTNAME holds the name from the kernel's namespaces which might be
different then the one comming from process' namespaces.

It is true that the real hostname is usually available in the field
COREDUMP_ENVIRON (environment variables) but I believe it is more reliable to
use the value passed by kernel.

----

The length of iovec is no longer static and hence I corrected the declarations
of the functions set_iovec_field and set_iovec_field_free.

Thank you @yuwata and @poettering!

6 years agomeson: add -Dmemory-accounting-default=true|false
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 10:43:08 +0000 (11:43 +0100)]
meson: add -Dmemory-accounting-default=true|false

This makes it easy to set the default for distributions and users which want to
default to off because they primarily use older kernels.

6 years agoudevadm: fix fd leak on oom
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 09:30:46 +0000 (10:30 +0100)]
udevadm: fix fd leak on oom

Unlikely, but let's be correct.

CID #1386003.

6 years agodhcp6: fix uninitialized variable in returning from client_parse_message() (#8187)
Thomas Haller [Thu, 15 Feb 2018 09:49:55 +0000 (10:49 +0100)]
dhcp6: fix uninitialized variable in returning from client_parse_message() (#8187)

Compiler warns about this with -Werror=maybe-uninitialized.

Fixes: 3bc424a3cc0bacc688ec2f4f93a5560fb4ca393b

6 years agonspawn: make sure we don't leak the fd in chase_symlinks_and_update
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 09:18:25 +0000 (10:18 +0100)]
nspawn: make sure we don't leak the fd in chase_symlinks_and_update

No callers use CHASE_OPEN right now, but let's be defensive.

6 years agocore: move very long argument to a separate statement
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 09:10:01 +0000 (10:10 +0100)]
core: move very long argument to a separate statement

I like compact, but this was a bit too much.

6 years agosd-dhcp6: fix check if serverid is set
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 08:37:44 +0000 (09:37 +0100)]
sd-dhcp6: fix check if serverid is set

Ever since the initial implementation in 631bbe71298ec892f77f44f94feb612646fe6853,
client_parse_message() was supposed to check that the message contains exactly
one serverid. The check that no more than one is given was implemented
correctly, but the check that at least one is given was not. Simplify the whole
thing by making dhcp6_lease_get_serverid() return an error if the id is not
set, and do not require the arguments to be present if the contents of the id
are not needed.

6 years agolibsystemd-network: unitialized return value
Zbigniew Jędrzejewski-Szmek [Thu, 15 Feb 2018 08:20:36 +0000 (09:20 +0100)]
libsystemd-network: unitialized return value

r will *usually* be set, but for some packets it might not.

CID #1385308.

6 years agomkosi: add pcre2 to our build deps, as we can now link to it
Lennart Poettering [Wed, 14 Feb 2018 18:56:24 +0000 (19:56 +0100)]
mkosi: add pcre2 to our build deps, as we can now link to it

6 years agoask-password-api: many fixes to ask_password_tty()
Lennart Poettering [Wed, 14 Feb 2018 17:41:37 +0000 (18:41 +0100)]
ask-password-api: many fixes to ask_password_tty()

A couple of fixes:

1. always bzero_explicit() away what we remove from the passphrase
   buffer. The UTF-8 code assumes the string remains NUL-terminated, and
   we hence should enforce that. memzero() would do too here, but let's
   be paranoid after all this is key material.

2. when clearing '*' characters from string, do so counting UTF-8
   codepoints properly. We already have code in place to count UTF-8
   codepoints when generating '*' characters, hence we should take the
   same care when clearing them again.

3. Treat NUL on input as an alternative terminator to newline or EOF.

4. When removing characters from the password always also reset the
   "codepoint" index properly.

6 years agoutf8: add utf8_n_codepoints() for counting complete utf8 codepoints in a string
Lennart Poettering [Wed, 14 Feb 2018 17:41:03 +0000 (18:41 +0100)]
utf8: add utf8_n_codepoints() for counting complete utf8 codepoints in a string

6 years agoterminal-util: make resolve_dev_console() less weird
Lennart Poettering [Wed, 14 Feb 2018 16:30:37 +0000 (17:30 +0100)]
terminal-util: make resolve_dev_console() less weird

Let's normalize the behaviour: return a negative errno style error code,
and return the resolved string directly as argument.

6 years agoterminal-util: modernize get_kernel_consoles() a bit
Lennart Poettering [Wed, 14 Feb 2018 13:56:17 +0000 (14:56 +0100)]
terminal-util: modernize get_kernel_consoles() a bit

Also, make sure when we run in a container, we don't use the data from
/sys at all, but immediately fall back to /dev/console itself.

6 years agotty-ask-password-agent: reenable color for boot-time password prompt
Lennart Poettering [Wed, 14 Feb 2018 13:30:30 +0000 (14:30 +0100)]
tty-ask-password-agent: reenable color for boot-time password prompt

The password prompt used to be highlighted, and that was a good thing.
Let's fix things to make the prompt highlighted again.

Fixes: #3853

6 years agoterminal-util: add some explanatory comments
Lennart Poettering [Wed, 14 Feb 2018 13:28:17 +0000 (14:28 +0100)]
terminal-util: add some explanatory comments

6 years agoupdate TODO
Lennart Poettering [Wed, 14 Feb 2018 13:28:00 +0000 (14:28 +0100)]
update TODO

6 years agoprocess: shortcut getenv_for_pid() for our own process
Lennart Poettering [Wed, 14 Feb 2018 13:27:31 +0000 (14:27 +0100)]
process: shortcut getenv_for_pid() for our own process

6 years agoman: make systemd-socket-activate point to systemd-run (#8151)
Lucas Werkmeister [Wed, 14 Feb 2018 13:11:24 +0000 (14:11 +0100)]
man: make systemd-socket-activate point to systemd-run (#8151)

Now that systemd-run also supports socket units, it makes sense to link
to that command from the systemd-socket-activate manpage.

6 years agoAllow timers to trigger timers (#8043)
Boucman [Wed, 14 Feb 2018 13:10:07 +0000 (14:10 +0100)]
Allow timers to trigger timers (#8043)

Unlike any other unit type, it makes sense for a timer to start another
timer. It is an easy way to crate logical "and" between time conditions

for instance, every day but no less than 5' after boot can easily be
implemented by a OnBootSec triggering an OnCalendar.

This is particulary usefull with Persistant timers which tend to all fire
together at startup

6 years agomeson: factor out daemon/event/id128 sources into variables (#8170)
Davide Cavalca [Wed, 14 Feb 2018 13:08:50 +0000 (05:08 -0800)]
meson: factor out daemon/event/id128 sources into variables (#8170)

6 years agopo: update Polish translation (#8169)
Piotr Drąg [Wed, 14 Feb 2018 13:06:14 +0000 (14:06 +0100)]
po: update Polish translation (#8169)

6 years agoMerge pull request #8144 from poettering/journal-inotify-fixes
Zbigniew Jędrzejewski-Szmek [Wed, 14 Feb 2018 12:52:17 +0000 (13:52 +0100)]
Merge pull request #8144 from poettering/journal-inotify-fixes

various journal fixes

6 years agoman: link latest FHS spec in file-hierarchy(7) (#8178)
Jan Synacek [Wed, 14 Feb 2018 10:34:47 +0000 (11:34 +0100)]
man: link latest FHS spec in file-hierarchy(7) (#8178)

6 years agopo: update French translation
Sylvain Plantefève [Tue, 13 Feb 2018 19:45:54 +0000 (20:45 +0100)]
po: update French translation

6 years agomailmap: one more person
Zbigniew Jędrzejewski-Szmek [Wed, 14 Feb 2018 08:34:46 +0000 (09:34 +0100)]
mailmap: one more person

For a083b4875e8dec5ce5379d8bc437d750cd338c37.

6 years agoask-password: pretty flags enum definition a bit
Lennart Poettering [Tue, 13 Feb 2018 23:13:26 +0000 (00:13 +0100)]
ask-password: pretty flags enum definition a bit

6 years agotty-ask-password-agent: don't open terminal multiple times
Lennart Poettering [Tue, 13 Feb 2018 23:10:00 +0000 (00:10 +0100)]
tty-ask-password-agent: don't open terminal multiple times

We already have the terminal open, hence pass the fd we got to
ask_password_tty(), so that it doesn't have to reopen it a second time.

This is mostly an optimization, but it has the nice benefit of making us
independent from RLIMIT_NOFILE issues and so on, as we don't need to
allocate another fd needlessly.

6 years agoask-password: derive pollfd array from enum
Lennart Poettering [Tue, 13 Feb 2018 23:02:23 +0000 (00:02 +0100)]
ask-password: derive pollfd array from enum

It's prettier that way!

6 years agoask-password: round up when determining sleep time
Lennart Poettering [Tue, 13 Feb 2018 22:57:57 +0000 (23:57 +0100)]
ask-password: round up when determining sleep time

We should rather sleep to much than too little. This otherwise might
result in a busy loop, because we slept too little and then recheck
again coming to the conclusion we need to go to sleep again, and so on.

6 years agoask-password: let's use structure initialization properly
Lennart Poettering [Tue, 13 Feb 2018 22:57:40 +0000 (23:57 +0100)]
ask-password: let's use structure initialization properly

6 years agoask-password: let's (void) cast where appropriate
Lennart Poettering [Tue, 13 Feb 2018 22:57:13 +0000 (23:57 +0100)]
ask-password: let's (void) cast where appropriate

6 years agoask-password: bypass clean-up if we don't need it
Lennart Poettering [Tue, 13 Feb 2018 22:56:57 +0000 (23:56 +0100)]
ask-password: bypass clean-up if we don't need it

6 years agoask-password: don't use ttyfd if it is not set
Lennart Poettering [Tue, 13 Feb 2018 22:55:58 +0000 (23:55 +0100)]
ask-password: don't use ttyfd if it is not set

6 years agotty-ask-password-agent: show right TTY path in error message
Lennart Poettering [Tue, 13 Feb 2018 22:55:19 +0000 (23:55 +0100)]
tty-ask-password-agent: show right TTY path in error message

6 years agotty-ask-password-agent: assing sendto() result to a ssize_t variable, not an int
Lennart Poettering [Tue, 13 Feb 2018 22:53:59 +0000 (23:53 +0100)]
tty-ask-password-agent: assing sendto() result to a ssize_t variable, not an int

We should be careful with these types, and if we do convert between
"int" and "ssize_t" we should do so explicitly rather than implicitly.
Otherwise this just looks like a bug.

6 years agoterminal-util: minor, trivial fixes and improvements
Lennart Poettering [Tue, 13 Feb 2018 22:53:34 +0000 (23:53 +0100)]
terminal-util: minor, trivial fixes and improvements

6 years agoterminal-util: when making /dev/null or the console stdio, forget cached terminal...
Lennart Poettering [Tue, 13 Feb 2018 22:50:26 +0000 (23:50 +0100)]
terminal-util: when making /dev/null or the console stdio, forget cached terminal features

Let's forget all relevant terminal features we learnt when we make a
console or /dev/null stdin/stdout/stderr.

Also, while we are at it, let's drop the various _unlikely_ and
_likely_ annotiations around the terminal feature caches. In many cases
we call the relevant functions only once in which cases the annotations
are likely to do just harm and no good. After all we can't know if the
specific code will call us just once or many times...

6 years agoterminal-util: rework acquire_terminal()
Lennart Poettering [Tue, 13 Feb 2018 20:24:37 +0000 (21:24 +0100)]
terminal-util: rework acquire_terminal()

This modernizes acquire_terminal() in a couple of ways:

1. The three boolean arguments are replaced by a flags parameter, that
   should be more descriptive in what it does.

2. We now properly handle inotify queue overruns

3. We use _cleanup_ for closing the fds now, to shorten the code quite a
   bit.

Behaviour should not be altered by this.

6 years agotty-ask-password-agent: make code a tiny bit shorter
Lennart Poettering [Tue, 13 Feb 2018 18:17:17 +0000 (19:17 +0100)]
tty-ask-password-agent: make code a tiny bit shorter

6 years agomanager: avoid infinite loop for unexpected waitid() error (#8168)
Alan Jenkins [Tue, 13 Feb 2018 18:04:31 +0000 (18:04 +0000)]
manager: avoid infinite loop for unexpected waitid() error (#8168)

I think if we log the error as being _ignored_, we should also consider
the event as handled and clear it.  This was the behaviour prior to
575b300b (PR #7968).

I don't think we particularly wanted to change behaviour and keep retrying.
Sometimes that's useful, other times you cause more problems by filling the
logs.

Plus a nearby typo fix.

6 years agoanalyze: fix typo in error message
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 09:03:09 +0000 (10:03 +0100)]
analyze: fix typo in error message

6 years agotest-strv: add a simple test for strv_free_free()
Zbigniew Jędrzejewski-Szmek [Tue, 13 Feb 2018 07:57:31 +0000 (08:57 +0100)]
test-strv: add a simple test for strv_free_free()

6 years agol10n: update POTFILES.in (#8163)
AsciiWolf [Tue, 13 Feb 2018 03:05:22 +0000 (04:05 +0100)]
l10n: update POTFILES.in (#8163)

6 years agotmpfiles: age root-owned read-only files, by default (#7917)
itsbill [Mon, 12 Feb 2018 14:47:08 +0000 (09:47 -0500)]
tmpfiles: age root-owned read-only files, by default (#7917)

[zj: The note in NEWS was added in 82c8e3e6503a40684cf265842bb1c26a8f7681b5
and released as part of systemd-237.]

6 years agoupdate TODO
Lennart Poettering [Wed, 7 Feb 2018 22:03:13 +0000 (23:03 +0100)]
update TODO