Commit graph

29526 commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek 5993d46a1a bus-util: replace non-printable values with [unprintable]
Like I said in the previous commit, such values do not seem to appear in normal
use, but it's pretty hard to prove that all paths to assign values properly
check that they contain no spaces. So just in case some slip through, replace
values with spaces (in case of single-valued properties) or spaces and newlines
(in case of array proprties) with "[unprintable]". We were already doing it
in case of properties which we didn't know how to print, so this fits in well.
The advantage is the previous code which used escaping that a) this is easier
to spot, b) does not mess up printing of properties which were properly escaped
already.

v2:
- add comments
2017-07-03 09:30:57 -04:00
Franck Bui 9e7bc4dc3a automount: don't lstat(2) upon umount request (#6086)
When umounting an NFS filesystem, it is not safe to lstat(2) the mountpoint at
all as that can block indefinitely if the NFS server is down.

umount() will not block, but lstat() will.

This patch therefore removes the call to lstat(2) and defers the handling of
any error to the child process which will issue the umount call.
2017-07-03 14:48:21 +02:00
Zbigniew Jędrzejewski-Szmek 0004f698df Parse "timeout=0" as infinity in various generators (#6264)
This extends 2d79a0bbb9 to the kernel
command line parsing.

The parsing is changed a bit to only understand "0" as infinity. If units are
specified, parse normally, e.g. "0s" is just 0. This makes it possible to
provide a zero timeout if necessary.

Simple test is added.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1462378.
2017-07-03 14:29:32 +02:00
Lennart Poettering 131d5e148e Merge pull request #6235 from mbiebl/var-log-lastlog
tmpfiles: create /var/log/lastlog if it does not exist
2017-07-03 11:47:30 +02:00
Lennart Poettering e634bca681 Merge pull request #6233 from keszybz/man-locale-vconsole
Small doc updates for 00-keyboard.conf, vconsole.conf, locale.conf
2017-07-03 11:40:42 +02:00
Lennart Poettering 7c34a0a306 git-contrib: drop weird non-breaking spaces
For some reason git shortlog spits out non-breaking spaces, let's remove
that, as for our purposes (inclusion in NEWS) we really want breaking
(i.e. normal) spaces.
2017-07-03 11:22:38 +02:00
Lennart Poettering db8e1324b8 resolved: downgrade log messages about switching DNS servers
As suggested in:

496ae8c84b (commitcomment-22819483)

Let's drop some noise from the logs, as switching between DNS servers is
definitely useful for debugging, but shouldn't get more attention that
that.
2017-07-03 11:20:04 +02:00
Lennart Poettering 184d2c1576 NEWS: tweak contributors list a bit
Let's add more .mailmap entries to clean up GitHub's mess.
2017-07-03 11:19:20 +02:00
Lennart Poettering 3dad4f0666 Merge pull request #6257 from keszybz/unnecessary-job-log
core: do not print color console message about gc-ed jobs
2017-07-03 10:48:28 +02:00
Lennart Poettering 323318a496 Merge pull request #6218 from poettering/v234-pre
preparation for v234
2017-07-03 10:43:00 +02:00
Peter Hutterer 0e4959973f udev: define BTN_DPAD_RIGHT if not present (#6267)
Regression introduced in commit b876bc0 when building on systemds with a pre
3.11 headers (RHEL7 and derivatives).

All the DPAD defines were introduced in the same kernel commit
d09bbfd2a8408a9954, we don't need a separate ifdef check for right.

Fixes #6240
2017-07-03 10:03:22 +02:00
Zbigniew Jędrzejewski-Szmek 0a5706d143 nspawn: wait for the scope to be created (#6261)
Fixes #6253.
2017-07-03 07:59:49 +02:00
Zbigniew Jędrzejewski-Szmek f518ee04d7 man: add zypper instructions for systemd-nspawn
v2:
- add -c and update the list of packages
v3:
- link to a man page on mankier.com
2017-07-02 19:11:48 -04:00
hadess ff434e21f2 hwdb: Add SNES Mouse plugged through Retrode 2 (#6263)
Note that this will only work with the new "hid-retrode" driver in the
upcoming 4.12 kernel as otherwise the mouse events and the 4 joypad
ports are bundled into a single event node.
2017-07-03 06:59:44 +10:00
Zbigniew Jędrzejewski-Szmek bd68e99bd0 Be slightly more verbose in error message
Including the full path is always useful.

Also use PID_FMT in one more place.
2017-07-02 12:03:56 -04:00
Zbigniew Jędrzejewski-Szmek c23218ae25 core/loopback-setup: make log messages nicer
Under nspawn, systemd would print:

Got address error code: Operation not permitted
Got address error code: Operation not permitted
Got start error code: Operation not permitted

which is quite unclear out of context. Change that to:

Failed to add address 127.0.0.1 to loopback interface: Operation not permitted
Failed to add address ::1 to loopback interface: Operation not permitted
Failed to bring loopback interface up: Operation not permitted
2017-07-02 12:03:56 -04:00
Zbigniew Jędrzejewski-Szmek 047d7219fd core: do not print color console message about gc-ed jobs
This is just a cosmetic issue.

Garbage collection of jobs (especially the ones that we create automatically)
is something of an internal implementation detail and should not be made
visible to the users. But it's probably still useful to log this in the
journal, so the code is rearranged to skip one of the messages if we log to the
console and the journal separately, and to keep the message if we log
everything to the console.

Fixes #6254.
2017-07-01 19:10:48 -04:00
Zbigniew Jędrzejewski-Szmek 3dfbc968e8 Revert "bus: when dumping string property values escape the chars we use as end-of-line and end-of-item marks"
This reverts commit 27e9c5af81.

Property values already use escaping, so escaping them a second time is
confusing. It also should be mostly unnecessary: we take care to make property
values only contains strings which (after the initial escaping) are printable
and parseable without any futher escaping.

Before revert:
$ systemctl list-dependencies 'dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device'
dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device
● ├─dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.swap
● └─systemd-cryptsetup@luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.service
$ systemctl show -p Wants,Requires 'dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device'
Requires=systemd-cryptsetup@luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.service
Wants=dev-mapper-luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.swap

Difference between systemctl show before revert and now:
-Slice=system-systemd\x5cx2dcryptsetup.slice
+Slice=system-systemd\x2dcryptsetup.slice

-Id=systemd-cryptsetup@luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.service
+Id=systemd-cryptsetup@luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.service

-Names=systemd-cryptsetup@luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.service
+Names=systemd-cryptsetup@luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.service

-Requires=system-systemd\x5cx2dcryptsetup.slice
+Requires=system-systemd\x2dcryptsetup.slice

-BindsTo=dev-mapper-luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.device dev-disk-by\x5cx2duuid-8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.device
+BindsTo=dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device dev-disk-by\x2duuid-8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device

-RequiredBy=dev-mapper-luks\x5cx2d8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.device cryptsetup.target
+RequiredBy=dev-mapper-luks\x2d8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device cryptsetup.target

-WantedBy=dev-disk-by\x5cx2duuid-8db85dcf\x5cx2d6230\x5cx2d4e88\x5cx2d940d\x5cx2dba176d062b31.device
+WantedBy=dev-disk-by\x2duuid-8db85dcf\x2d6230\x2d4e88\x2d940d\x2dba176d062b31.device
2017-07-01 16:54:25 -04:00
Zbigniew Jędrzejewski-Szmek 9f09a95a7e NEWS: mention that logind is restartable 2017-06-30 13:36:42 -04:00
Zbigniew Jędrzejewski-Szmek 44abc32307 mailmap: some additions for recent commits 2017-06-30 13:23:32 -04:00
Zbigniew Jędrzejewski-Szmek 74d8f1c55b Merge pull request #6194 from keszybz/urandom-magic
Fall back to /dev/urandom less and other random number improvements.
2017-06-30 13:05:56 -04:00
Susant Sahani 9432a05c54 ethtool: fix half-duplex / full-duplex confusion (#6209)
The values that we used for half-duplex and full-duplex in ethtool_set_glinksettings were
reversed wrt. what the kernel uses.
2017-06-30 12:55:21 -04:00
NeilBrown ca5b440aa7 core/automount: revise the "fun fact" comments. (#6245)
Fun fact 1 suggests that a "close()" is needed, but that close() has long since been
removed.  So the comment in now meaningless and possibly confusing.

Fun fact 2 refers to a bug that has been fixed in Linux prior to v4.12

Commit: 9fa4eb8e490a ("autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL")

so revise the comment so that no-one goes pointlessly looking for the bug.
2017-06-30 12:51:33 -04:00
Zbigniew Jędrzejewski-Szmek fa0c9e6315 man: add more detail about quoting in ExecStart lines
Fixes #624.
2017-06-30 10:00:13 -04:00
Lars Karlitski 78c1edd1ef man: fix spelling error of sd_bus_error_set_const (#6246) 2017-06-30 11:57:13 +02:00
hramrach b876bc09b1 Include dpad buttons in joystick detection (#6240)
Since f472d466ec ("Remove BTN_DPAD_* keys from ID_INPUT_KEY test
    (#5701)") dpad buttons are excluded from keyboard keys for keyboard
detection.

Include them in joystick buttons for joystick detection.
2017-06-30 10:23:58 +10:00
Michael Biebl aff804febc tmpfiles: create /var/log/lastlog if it does not exist
Create /var/log/lastlog the same way we create utmp and wtmp.
This is useful for stateless systems where /var is volatile and a
missing /var/log/lastlog otherwise creates error messages like

Jun 27 20:00:00 huron sshd[1234]: lastlog_openseek: Couldn't stat /var/log/lastlog: No such file or directory

Fixes #6234
2017-06-29 08:01:37 +02:00
AsciiWolf 16a5d4128f units: use https for the freedesktop url (#6227) 2017-06-28 22:54:12 -04:00
Zbigniew Jędrzejewski-Szmek 8968e36f21 man: mention localed and localectl in locale.conf(5) and vconsole.conf(5)
Fixes #295.

(We cannot add a comment to either of those files because they are documented
to "only support variable assignments", so it's better to add an explanation
in the man page instead.)
2017-06-28 22:47:55 -04:00
Zbigniew Jędrzejewski-Szmek ad29b8897e localed: improve the comment in 00-keyboard.conf 2017-06-28 22:37:02 -04:00
Zbigniew Jędrzejewski-Szmek 2b015ea4b2 man: describe the relationship between nss-myhostname and nss-resolved
Fixes #1605.
2017-06-28 20:43:37 -04:00
Zbigniew Jędrzejewski-Szmek 1f3e486fa7 Revert "resolved: drop unnecessary comparison (#6220)"
This reverts commit d718d20225.
2017-06-28 16:01:18 -04:00
Yu Watanabe 6f6165bf7d systemd-mount: support unmounting loop devices by backing files (#6211)
This makes `systemd-umount` or `systemd-mount -u` support unmounting
loop devices by the corresponding backing files, like
`systemd-mount --umount /tmp/foo.img /tmp/bar.img`

Fixes #6206.
2017-06-28 14:19:38 -04:00
Lennart Poettering 0d787d5ff8 Only drop the capabilities from the bounding set if we are running as PID1 (#6204)
The CapabilityBoundingSet option only makes sense if we are running as
PID1.

The system.conf.d(5) manpage, already states that the CapabilityBoundingSet
option:
  Controls which capabilities to include in the capability bounding set
  for PID 1 and its children.

https://github.com/systemd/systemd/issues/6080
2017-06-28 13:29:45 -04:00
Lennart Poettering 1f47f5504c udev: never ask libblkid for detecting superblocks with bad checksums (#6215)
Previously, we'd ask liblkid to also tell us about recognized
superblocks with bad checksums. We'd then log about them and ignore
them. This however created ambuigity problems, see #6110: the
BLKID_SUBLKS_BADCSUM is not as innocent as it appears.

This patch drops bad checksum handling and we ignore all such superblocks
entirely again, as it was the status quo ante
d47f6ca5f9 (where this was snuck in).

Ideally, libblkid would be changed to avoid this ambiguity problems for
bad checksums, but that's not going to happen any time soon, according
to @karelzak.

Fixes: #6110
2017-06-28 13:27:40 -04:00
Lennart Poettering cd2dfc6fae nspawn: register a scope for the unit if --register=no is specified (#6166)
Previously, only when --register=yes was set (the default) the invoked
container would get its own scope, created by machined on behalf of
nspawn. With this change if --register=no is set nspawn will still get
its own scope (which is a good thing, so that --slice= and --property=
take effect), but this is not done through machined but by registering a
scope unit directly in PID 1.

Summary:

--register=yes             → allocate a new scope through machined (the default)
--register=yes --keep-unit → use the unit we are already running in an register with machined
--register=no              → allocate a new scope directly, but no machined
--register=no --keep-unit  → do not allocate nor register anything

Fixes: #5823
2017-06-28 13:22:46 -04:00
Lennart Poettering 694859b5e7 sd-bus: never augment creds when we are operating on remote connections (#6217)
It's not always clear when something is a remote connection, hence only
flag the obvious cases as local.

Fixes: #6207
2017-06-28 13:20:16 -04:00
Stefan Schweter 56892b0b36 man: update reference for binfmt documentation (#6223) 2017-06-28 13:18:37 -04:00
Zbigniew Jędrzejewski-Szmek d718d20225 resolved: drop unnecessary comparison (#6220)
mtu is always greater than UDP_PACKET_HEADER_SIZE at this point.
Pointed out by Benjamin Robin.
2017-06-28 18:24:37 +02:00
Michael Biebl 1943fd9f40 Merge pull request #6222 from keszybz/input-id-rules-installation
build-sys: fix installation of new 60-input-id.rules
2017-06-28 17:40:12 +02:00
Zbigniew Jędrzejewski-Szmek 43af16c99c build-sys: fix installation of new 60-input-id.rules
Fixup for 38887d1bd5.
2017-06-28 11:19:33 -04:00
Zbigniew Jędrzejewski-Szmek 2416f73be1 tests: add test-random-util
In case you're wondering: 16 aligns in a nice pyramid.
2017-06-28 10:34:45 -04:00
Zbigniew Jędrzejewski-Szmek f0d09059bd basic/random-util: do not fall back to /dev/urandom if getrandom() returns short
During early boot, we'd call getrandom(), and immediately fall back to
reading from /dev/urandom unless we got the full requested number of bytes.
Those two sources are the same, so the most likely result is /dev/urandom
producing some pseudorandom numbers for us, complaining widely on the way.

Let's change our behaviour to be more conservative:
- if the numbers are only used to initialize a hash table, a short read is OK,
  we don't really care if we get the first part of the seed truly random and
  then some pseudorandom bytes. So just do that and return "success".

- if getrandom() returns -EAGAIN, fall back to rand() instead of querying
  /dev/urandom again.

  The idea with those two changes is to avoid generating a warning about
  reading from an /dev/urandom when the kernel doesn't have enough entropy.

- only in the cases where we really need to make the best effort possible
  (sd_id128_randomize and firstboot password hashing), fall back to
  /dev/urandom.

When calling getrandom(), drop the checks whether the argument fits in an int —
getrandom() should do that for us already, and we call it with small arguments
only anyway.

Note that this does not really change the (relatively high) number of random
bytes we request from the kernel. On my laptop, during boot, PID 1 and all
other processes using this code through libsystemd request:
  74780 bytes with high_quality_required == false
    464 bytes with high_quality_required == true
and it does not eliminate reads from /dev/urandom completely. If the kernel was
short on entropy and getrandom() would fail, we would fall back to /dev/urandom
for those 464 bytes.

When falling back to /dev/urandom, don't lose the short read we already got,
and just read the remaining bytes.

If getrandom() syscall is not available, we fall back to /dev/urandom same
as before.

Fixes #4167 (possibly partially, let's see).
2017-06-28 10:32:02 -04:00
Zbigniew Jędrzejewski-Szmek 6a06b1a5d9 basic/random-util: use most of the pseudorandom bytes from rand()
The only implementation that we care about — glibc — provides us
with 31 bits of entropy. Let's use 24 bits of that, instead of throwing
all but 8 away.
2017-06-28 10:24:53 -04:00
Lennart Poettering 980cb558dc Merge pull request #6214 from keszybz/resolved-packet-size
Resolved packet size
2017-06-28 09:10:56 +02:00
Zbigniew Jędrzejewski-Szmek f62c9e50ba Merge pull request #6099 from hramrach/master
Enable mapping button events on keyboard.
2017-06-27 19:07:23 -04:00
Zbigniew Jędrzejewski-Szmek f9ce1a4a41 Merge pull request #6202 from poettering/condition-first-boot-doc
some documentation updates
2017-06-27 18:34:18 -04:00
Lennart Poettering eca2995c51 Merge pull request #6210 from poettering/input-mask
logind: make use of EVIOCSMASK input ioctl to mask out events we aren…
2017-06-27 23:24:21 +02:00
Lennart Poettering 96f925c239 update hwdb in preparation for v234 2017-06-27 23:14:53 +02:00
Lennart Poettering 4309172946 build-sys: bump versions in prepare for v234 2017-06-27 23:11:26 +02:00