chiark / gitweb /
7 years agobus-policy.c: use draw_special_char(DRAW_ARROW)
Daniel Buch [Sun, 8 Jun 2014 11:57:21 +0000 (13:57 +0200)]
bus-policy.c: use draw_special_char(DRAW_ARROW)

Lets allow LC_ALL=C without corrupted output

7 years agoFix spelling mistake, proces -> process
Colin Ian King [Fri, 6 Jun 2014 22:06:33 +0000 (23:06 +0100)]
Fix spelling mistake, proces -> process

7 years agonspawn: split long message into two lines
Zbigniew Jędrzejewski-Szmek [Wed, 28 May 2014 16:39:38 +0000 (12:39 -0400)]
nspawn: split long message into two lines

For names like /var/lib/container/something, the message
becomes quite long. Better to split it.

Also reword the message not to suggest that ^]^]^] only works
in the beginning.

7 years agobus-proxyd: do not free NULL items
Kay Sievers [Sat, 7 Jun 2014 14:22:28 +0000 (16:22 +0200)]
bus-proxyd: do not free NULL items

7 years agoRemove sysv parser from service.c
Thomas Hindoe Paaboel Andersen [Thu, 29 May 2014 19:51:50 +0000 (21:51 +0200)]
Remove sysv parser from service.c

Parsing sysv files was moved to the sysv-generator in the previous commit.
This patch removes the sysv parsing from serivce.c.

Note that this patch drops the following now unused sysv-specific info
from service dump:
"SysV Init Script has LSB Header: (yes/no)"
"SysVEnabled: (yes/no)"
"SysVRunLevels: (levels)"

7 years agoMove handling of sysv initscripts to a generator
Thomas Hindoe Paaboel Andersen [Thu, 22 May 2014 22:37:39 +0000 (00:37 +0200)]
Move handling of sysv initscripts to a generator

Reuses logic from service.c and the rc-local generator.

Note that this drops reading of chkconfig entirely. It also drops reading
runlevels from the LSB headers. The runlevels were only used to check for
runlevels outside of the normal 1-5 range and then add special dependencies
and settings. Special runlevels were dropped in the past so it seemed to be
unused code.

The generator does not know about non-generated units with a value set with
SysVStartPriority=. These are therefor not taken into account when converting
start priority to before/after.

7 years agocore: allow transient mount units
Tom Gundersen [Fri, 6 Jun 2014 13:10:20 +0000 (15:10 +0200)]
core: allow transient mount units

For now only What=, Options=, Type= are supported, and Where= is deduced
from the unit name.

7 years agofix warnings
Thomas Hindoe Paaboel Andersen [Fri, 6 Jun 2014 21:29:09 +0000 (23:29 +0200)]
fix warnings

Prevent use of uninitialized variable and removed a now unused
cleanup function for freeaddrinfo

7 years agobus-proxy: properly read user/group policy items
Lennart Poettering [Fri, 6 Jun 2014 17:52:50 +0000 (19:52 +0200)]
bus-proxy: properly read user/group policy items

7 years agobus: add basic dbus1 policy parser
Lennart Poettering [Fri, 6 Jun 2014 17:41:24 +0000 (19:41 +0200)]
bus: add basic dbus1 policy parser

Enforcement is still missing, but at least we can parse it now.

7 years agoupdate TODO
Lennart Poettering [Fri, 6 Jun 2014 16:38:43 +0000 (18:38 +0200)]
update TODO

7 years agosd-bus: don't allow creating message objects that are not attached to a bus
Lennart Poettering [Fri, 6 Jun 2014 16:30:01 +0000 (18:30 +0200)]
sd-bus: don't allow creating message objects that are not attached to a bus

It seems unnecessary to support this, and we rather should avoid
allowing this at all, so that people don't program against this
sloppily and we end up remarshalling all the time...

7 years agounits: pull in from systemd-timedated.service
Lennart Poettering [Fri, 6 Jun 2014 14:20:33 +0000 (16:20 +0200)]
units: pull in from systemd-timedated.service

After all, that's what we document for in
systemd.special(5), hence let's follow our own suggestion.

7 years agoman: fix references to sd_journal_cutoff_realtime_usec
Mantas Mikulėnas [Mon, 2 Jun 2014 13:47:15 +0000 (16:47 +0300)]
man: fix references to sd_journal_cutoff_realtime_usec

7 years agoupdate TODO
Lennart Poettering [Fri, 6 Jun 2014 12:51:07 +0000 (14:51 +0200)]
update TODO

7 years agonamespace: cover /boot with ProtectSystem= again
Lennart Poettering [Fri, 6 Jun 2014 12:48:51 +0000 (14:48 +0200)]
namespace: cover /boot with ProtectSystem= again

Now that we properly exclude autofs mounts from ProtectSystem= we can
include it in the effect of ProtectSystem= again.

7 years agounits: fix minor typo
Lennart Poettering [Fri, 6 Jun 2014 12:30:09 +0000 (14:30 +0200)]
units: fix minor typo

7 years agonamespace: beef up read-only bind mount logic
Lennart Poettering [Fri, 6 Jun 2014 09:42:25 +0000 (11:42 +0200)]
namespace: beef up read-only bind mount logic

Instead of blindly creating another bind mount for read-only mounts,
check if there's already one we can use, and if so, use it. Also,
recursively mark all submounts read-only too. Also, ignore autofs mounts
when remounting read-only unless they are already triggered.

7 years agonamespace: also include /root in ProtectHome=
Lennart Poettering [Thu, 5 Jun 2014 19:37:40 +0000 (21:37 +0200)]
namespace: also include /root in ProtectHome=

/root can't really be autofs, and is also a home, directory, so cover it
with ProtectHome=.

7 years agonamespace: when setting up an inaccessible mount point, unmounting everything below
Lennart Poettering [Thu, 5 Jun 2014 19:35:35 +0000 (21:35 +0200)]
namespace: when setting up an inaccessible mount point, unmounting everything below

This has the benefit of not triggering any autofs mount points

7 years agoumount: modernizations
Lennart Poettering [Thu, 5 Jun 2014 19:35:15 +0000 (21:35 +0200)]
umount: modernizations

7 years agoutil: fix fd_cloexec(), fd_nonblock()
Lennart Poettering [Thu, 5 Jun 2014 17:38:00 +0000 (19:38 +0200)]
util: fix fd_cloexec(), fd_nonblock()

7 years agocore: introduce new Restart=on-abnormal setting
Lennart Poettering [Thu, 5 Jun 2014 16:42:52 +0000 (18:42 +0200)]
core: introduce new Restart=on-abnormal setting

Restart=on-abnormal is similar to Restart=on-failure, but avoids
restarts on unclean exit codes (but still doing restarts on all
obviously unclean exits, such as timeouts, signals, coredumps, watchdog

Also see:

7 years agoupdate TODO
Lennart Poettering [Thu, 5 Jun 2014 15:31:03 +0000 (17:31 +0200)]
update TODO

7 years agosd-daemon: introduce sd_pid_notify() and sd_pid_notifyf()
Lennart Poettering [Thu, 5 Jun 2014 15:05:18 +0000 (17:05 +0200)]
sd-daemon: introduce sd_pid_notify() and sd_pid_notifyf()

sd_pid_notify() operates like sd_notify(), however operates on a
different PID (for example the parent PID of a process).

Make use of this in systemd-notify, so that message are sent from the
PID specified with --pid= rather than the usually shortlived PID of
systemd-notify itself.

This should increase the likelyhood that PID 1 can identify the cgroup
that the notification message was sent from properly.

7 years agoupdate TODO
Lennart Poettering [Thu, 5 Jun 2014 14:13:22 +0000 (16:13 +0200)]
update TODO

7 years agosocket-proxyd: port to asynchronous name resolution using sd-resolve
Lennart Poettering [Thu, 5 Jun 2014 14:12:48 +0000 (16:12 +0200)]
socket-proxyd: port to asynchronous name resolution using sd-resolve

7 years agoupdate TODO
Lennart Poettering [Thu, 5 Jun 2014 11:53:44 +0000 (13:53 +0200)]
update TODO

7 years agobus: make use of sd_bus_try_close() in exit-on-idle services
Lennart Poettering [Thu, 5 Jun 2014 11:31:25 +0000 (13:31 +0200)]
bus: make use of sd_bus_try_close() in exit-on-idle services

7 years agosd-event: restore correct timeout behaviour
Lennart Poettering [Thu, 5 Jun 2014 11:43:30 +0000 (13:43 +0200)]
sd-event: restore correct timeout behaviour

7 years agoupdate TODO
Lennart Poettering [Thu, 5 Jun 2014 10:23:41 +0000 (12:23 +0200)]
update TODO

7 years agokdbus: when uploading bus name policy, resolve users/groups out-of-process
Lennart Poettering [Thu, 5 Jun 2014 10:24:03 +0000 (12:24 +0200)]
kdbus: when uploading bus name policy, resolve users/groups out-of-process

It's not safe invoking NSS from PID 1, hence fork off worker processes
that upload the policy into the kernel for busnames.

7 years agocore: don't include /boot in effect of ProtectSystem=
Lennart Poettering [Thu, 5 Jun 2014 08:03:26 +0000 (10:03 +0200)]
core: don't include /boot in effect of ProtectSystem=

This would otherwise unconditionally trigger any /boot autofs mount,
which we probably should avoid.

ProtectSystem= will now only cover /usr and (optionally) /etc, both of
which cannot be autofs anyway.

ProtectHome will continue to cover /run/user and /home. The former
cannot be autofs either. /home could be, however is frequently enough
used (unlikey /boot) so that it isn't too problematic to simply trigger
it unconditionally via ProtectHome=.

7 years agosocket: add SocketUser= and SocketGroup= for chown()ing sockets in the file system
Lennart Poettering [Thu, 5 Jun 2014 07:55:53 +0000 (09:55 +0200)]
socket: add SocketUser= and SocketGroup= for chown()ing sockets in the file system

This is relatively complex, as we cannot invoke NSS from PID 1, and thus
need to fork a helper process temporarily.

7 years agocore: make sure we properly parse ProtectHome= and ProtectSystem=
Lennart Poettering [Wed, 4 Jun 2014 21:03:37 +0000 (23:03 +0200)]
core: make sure we properly parse ProtectHome= and ProtectSystem=

7 years agoycm: update flag blacklist
Dave Reisner [Wed, 4 Jun 2014 19:03:08 +0000 (15:03 -0400)]
ycm: update flag blacklist

-Wdate-time isn't known to clang, and it seems to cause errors in

7 years agonetworkd: link - intialize mac address
Tom Gundersen [Wed, 4 Jun 2014 19:29:08 +0000 (21:29 +0200)]
networkd: link - intialize mac address

Otherwise .netwrok matching on MAC address will not work.

Based on patch by Dave Reisner, and bug originally reported by Max Pray.

7 years agoupdate TODO
Lennart Poettering [Wed, 4 Jun 2014 16:58:05 +0000 (18:58 +0200)]
update TODO

7 years agocore: rename ReadOnlySystem= to ProtectSystem= and add a third value for also mountin...
Lennart Poettering [Wed, 4 Jun 2014 16:07:55 +0000 (18:07 +0200)]
core: rename ReadOnlySystem= to ProtectSystem= and add a third value for also mounting /etc read-only

Also, rename ProtectedHome= to ProtectHome=, to simplify things a bit.

With this in place we now have two neat options ProtectSystem= and
ProtectHome= for protecting the OS itself (and optionally its
configuration), and for protecting the user's data.

7 years agohwdb: fix case-sensitive match
Kay Sievers [Wed, 4 Jun 2014 15:55:14 +0000 (17:55 +0200)]
hwdb: fix case-sensitive match

7 years agobuild-sys: accommodate gcc-4.9.0 link-time optimization (LTO) changes
John [Wed, 4 Jun 2014 15:45:42 +0000 (17:45 +0200)]
build-sys: accommodate gcc-4.9.0 link-time optimization (LTO) changes

systemd fails to build (symbols not found/resolved during cgls link step)
under gcc-4.9.0 due to link-time optimization (lto) changes, in particular
from gcc-4.9.0/NEWS:

  + When using a linker plugin, compiling with the -flto option
    now generates slim objects files (.o) which only contain
    intermediate language representation for LTO. Use
    -ffat-lto-objects to create files which contain additionally
    the object code. To generate static libraries suitable for LTO
    processing, use gcc-ar and gcc-ranlib; to list symbols from a
    slim object file use gcc-nm. (Requires that ar, ranlib and nm
    have been compiled with plugin support.)

Both -flto and -ffat-lto-objects are now needed when building and linking
against static libs w/LTO.

7 years agoupdate TODO
Lennart Poettering [Wed, 4 Jun 2014 15:31:31 +0000 (17:31 +0200)]
update TODO

7 years agocore: provide /dev/ptmx as symlink in PrivateDevices= execution environments
Lennart Poettering [Wed, 4 Jun 2014 15:21:18 +0000 (17:21 +0200)]
core: provide /dev/ptmx as symlink in PrivateDevices= execution environments

7 years agocore: make sure PrivateDevices= makes /dev/log available
Lennart Poettering [Wed, 4 Jun 2014 14:59:13 +0000 (16:59 +0200)]
core: make sure PrivateDevices= makes /dev/log available

Now that we moved the actual syslog socket to
/run/systemd/journal/dev-log we can actually make /dev/log a symlink to
it, when PrivateDevices= is used, thus making syslog available to
services using PrivateDevices=.

7 years agoinitctl: move /dev/initctl fifo into /run, replace it by symlink
Lennart Poettering [Wed, 4 Jun 2014 14:53:15 +0000 (16:53 +0200)]
initctl: move /dev/initctl fifo into /run, replace it by symlink

With this change we have no fifos/sockets remaining in /dev.

7 years agojournald: move /dev/log socket to /run
Lennart Poettering [Wed, 4 Jun 2014 14:37:02 +0000 (16:37 +0200)]
journald: move /dev/log socket to /run

This way we can make the socket also available for sandboxed apps that
have their own private /dev. They can now simply symlink the socket from

7 years agoudev: guard REREADPT by exclusive lock instead of O_EXCL
Kay Sievers [Wed, 4 Jun 2014 14:21:19 +0000 (16:21 +0200)]
udev: guard REREADPT by exclusive lock instead of O_EXCL

7 years agosocket: add new Symlinks= option for socket units
Lennart Poettering [Wed, 4 Jun 2014 14:19:00 +0000 (16:19 +0200)]
socket: add new Symlinks= option for socket units

With Symlinks= we can manage one or more symlinks to AF_UNIX or FIFO
nodes in the file system, with the same lifecycle as the socket itself.

This has two benefits: first, this allows us to remove /dev/log and
/dev/initctl from /dev, thus leaving only symlinks, device nodes and
directories in the /dev tree. More importantly however, this allows us
to move /dev/log out of /dev, while still making it accessible there, so
that PrivateDevices= can provide /dev/log too.

7 years agoudev: make sure we always get "change" for the disk
Kay Sievers [Wed, 4 Jun 2014 13:17:15 +0000 (15:17 +0200)]
udev: make sure we always get "change" for the disk

The kernel will return 0 for REREADPT when no partition table
is found, we have to send out "change" ourselves.

7 years agoudev: guard REREADP logic with open(O_ECXL)
Kay Sievers [Wed, 4 Jun 2014 12:09:31 +0000 (14:09 +0200)]
udev: guard REREADP logic with open(O_ECXL)

7 years agoudev: try first re-reading the partition table
Kay Sievers [Wed, 4 Jun 2014 11:30:24 +0000 (13:30 +0200)]
udev: try first re-reading the partition table

mounted partitions:
  # dd if=/dev/zero of=/dev/sda bs=1 count=1
  UDEV  [4157.369250] change   .../0:0:0:0/block/sda (block)
  UDEV  [4157.375059] change   .../0:0:0:0/block/sda/sda1 (block)
  UDEV  [4157.397088] change   .../0:0:0:0/block/sda/sda2 (block)
  UDEV  [4157.404842] change   .../0:0:0:0/block/sda/sda4 (block)

unmounted partitions:
  # dd if=/dev/zero of=/dev/sdb bs=1 count=1
  UDEV  [4163.450217] remove   .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block)
  UDEV  [4163.593167] change   .../target6:0:0/6:0:0:0/block/sdb (block)
  UDEV  [4163.713982] add      .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block)

7 years agosocket: optionally remove sockets/FIFOs in the file system after use
Lennart Poettering [Wed, 4 Jun 2014 11:10:43 +0000 (13:10 +0200)]
socket: optionally remove sockets/FIFOs in the file system after use

7 years agoudev: link-config - fix mem leak
Tom Gundersen [Wed, 4 Jun 2014 10:34:23 +0000 (12:34 +0200)]
udev: link-config - fix mem leak

Reported by Kay.

7 years agoudev: synthesize "change' events for partitions when tools change the disk
Kay Sievers [Wed, 4 Jun 2014 10:16:28 +0000 (12:16 +0200)]
udev: synthesize "change' events for partitions when tools change the disk

This should make sure that fdisk-like programs will automatically
cause an update of all partitions, just like mkfs-like programs cause
an update of the partition.

7 years agoREADME: mention new required user systemd-bus-proxy
Lennart Poettering [Wed, 4 Jun 2014 09:17:32 +0000 (11:17 +0200)]
README: mention new required user systemd-bus-proxy

7 years agofsck: disable "-l" option for now
Kay Sievers [Wed, 4 Jun 2014 09:14:48 +0000 (11:14 +0200)]
fsck: disable "-l" option for now

7 years agoudevd: inotify - modernizations
Kay Sievers [Wed, 4 Jun 2014 09:05:45 +0000 (11:05 +0200)]
udevd: inotify - modernizations

7 years agobus-proxy: drop priviliges if we can
Lennart Poettering [Wed, 4 Jun 2014 07:55:40 +0000 (09:55 +0200)]
bus-proxy: drop priviliges if we can

Either become uid/gid of the client we have been forked for, or become
the "systemd-bus-proxy" user if the client was root. We retain
CAP_IPC_OWNER so that we can tell kdbus we are actually our own client.

7 years agoremove ReadOnlySystem and ProtectedHome from udevd and logind
Kay Sievers [Tue, 3 Jun 2014 23:41:15 +0000 (01:41 +0200)]
remove ReadOnlySystem and ProtectedHome from udevd and logind

logind needs access to /run/user/, udevd fails during early boot
with these settings

7 years agocore: add new ReadOnlySystem= and ProtectedHome= settings for service units
Lennart Poettering [Tue, 3 Jun 2014 21:41:44 +0000 (23:41 +0200)]
core: add new ReadOnlySystem= and ProtectedHome= settings for service units

ReadOnlySystem= uses fs namespaces to mount /usr and /boot read-only for
a service.

ProtectedHome= uses fs namespaces to mount /home and /run/user
inaccessible or read-only for a service.

This patch also enables these settings for all our long-running services.

Together they should be good building block for a minimal service
sandbox, removing the ability for services to modify the operating
system or access the user's private data.

7 years agonetworkd: split runtime config dir from state dir
Tom Gundersen [Tue, 3 Jun 2014 16:57:47 +0000 (18:57 +0200)]
networkd: split runtime config dir from state dir

Configuration will be in

root:root /run/systemd/network

and state will be in

systemd-network:systemd-network /run/systemd/netif

This matches what we do for logind's seat/session state.

7 years agoudev: exclude device-mapper from block device ownership event locking
Kay Sievers [Tue, 3 Jun 2014 14:49:38 +0000 (16:49 +0200)]
udev: exclude device-mapper from block device ownership event locking

7 years agoshared: capability - don't loop over the cap bits if they are all unset
Tom Gundersen [Tue, 3 Jun 2014 09:46:25 +0000 (11:46 +0200)]
shared: capability - don't loop over the cap bits if they are all unset

7 years agoshared: allow drop_priviliges to drop all privs
Tom Gundersen [Tue, 3 Jun 2014 09:06:14 +0000 (11:06 +0200)]
shared: allow drop_priviliges to drop all privs

7 years agoudev: always close lock file descriptor
Kay Sievers [Tue, 3 Jun 2014 08:46:51 +0000 (10:46 +0200)]
udev: always close lock file descriptor

7 years agosd-dhcp-client: allways request broadcast
Camilo Aguilar [Wed, 28 May 2014 18:43:37 +0000 (14:43 -0400)]
sd-dhcp-client: allways request broadcast

On systems which cannot receive unicast packets until its IP stack has been configured
we need to request broadcast packets. We are currently not able to reliably detect when
this is necessary, so set it unconditionally for now.

This is set on all packets, but the DHCP server will only broadcast the packets that are
necessary, and unicast the rest.

For more information please refer to this thread in CoreOS:

[tomegun: rephrased commit message]

7 years agoresolved: run as unpriviliged "systemd-resolve" user
Tom Gundersen [Sun, 1 Jun 2014 21:01:20 +0000 (22:01 +0100)]
resolved: run as unpriviliged "systemd-resolve" user

This service is not yet network facing, but let's prepare nonetheless.
Currently all caps are dropped, but some may need to be kept in the

7 years agoconfigure: networkd no longer requires kmod
Tom Gundersen [Mon, 2 Jun 2014 23:05:13 +0000 (01:05 +0200)]
configure: networkd no longer requires kmod

Reported by Samuli Suominen.

7 years agonetworkd: drop CAP_SYS_MODULE
Tom Gundersen [Mon, 2 Jun 2014 19:50:50 +0000 (21:50 +0200)]
networkd: drop CAP_SYS_MODULE

Rely on modules being built-in or autoloaded on-demand.

As networkd is a network facing service, we want to limits its capabilities,
as much as possible. Also, we may not have CAP_SYS_MODULE in a container,
and we want networkd to work the same there.

Module autoloading does not always work, but should be fixed by the kernel
patch f98f89a0104454f35a: 'net: tunnels - enable module autoloading', which
is currently in net-next and which people may consider backporting if they
want tunneling support without compiling in the modules.

Early adopters may also use a module-load.d snippet and order
systemd-modules-load.service before networkd to force the module
loading of tunneling modules.

This sholud fix the various build issues people have reported.

7 years agonetworkd: introduce vti tunnel
Susant Sahani [Fri, 23 May 2014 06:37:46 +0000 (12:07 +0530)]
networkd: introduce vti tunnel

This patch enables vti tunnel support.

example conf:

file : vti.netdev





Add more attributes for vti tunnel

7 years agonetworkd: sit-tunnel add support for pmtudisc
Susant Sahani [Thu, 22 May 2014 06:29:19 +0000 (11:59 +0530)]
networkd: sit-tunnel add support for pmtudisc

This patch adds path of mtu discovery for sit tunnel.
To enable/disable DiscoverPathMTU is introduced.

Example configuration

file: sit.netdev


By default pmtudisc is turned on , if DiscoverPathMTU
is missing from the config. To turn it off
DiscoverPathMTU=0 needs to be set.

7 years agonetworkd: introduce gre tunnel
Susant Sahani [Thu, 22 May 2014 10:35:03 +0000 (16:05 +0530)]
networkd: introduce gre tunnel

This patch enables gre tunnel support.

example conf:

file : gre.netdev





Add more attributes for gre tunnel

7 years agonetworkd-netdev: fix white space
Susant Sahani [Wed, 21 May 2014 09:55:30 +0000 (15:25 +0530)]
networkd-netdev: fix white space

7 years agonetworkd: introduce veth device support
Susant Sahani [Wed, 21 May 2014 08:31:04 +0000 (14:01 +0530)]
networkd: introduce veth device support

This patch adds veth device support to networkd.

Example conf:

File: veth.netdev



7 years agoresolved: move resolv.conf to resolved's runtime dir
Tom Gundersen [Mon, 2 Jun 2014 13:13:30 +0000 (15:13 +0200)]
resolved: move resolv.conf to resolved's runtime dir

7 years agotmpfiles: systemd.conf - fix ownership of network directories
Tom Gundersen [Mon, 2 Jun 2014 13:05:05 +0000 (15:05 +0200)]
tmpfiles: systemd.conf - fix ownership of network directories

7 years agokeyboard: add Plantronics .Audio mute button
Zbigniew Jędrzejewski-Szmek [Sun, 1 Jun 2014 18:01:23 +0000 (14:01 -0400)]
keyboard: add Plantronics .Audio mute button

7 years agoREADME: document the new "systemd-network" user we require for systemd-networkd
Lennart Poettering [Sun, 1 Jun 2014 07:35:19 +0000 (09:35 +0200)]
README: document the new "systemd-network" user we require for systemd-networkd

7 years agonetworkd: run as unpriviliged "systemd-network" user
Lennart Poettering [Sun, 1 Jun 2014 07:12:00 +0000 (09:12 +0200)]
networkd: run as unpriviliged "systemd-network" user

This allows us to run networkd mostly unpriviliged with the exception of
CAP_NET_* and CAP_SYS_MODULE. I'd really like to get rid of the latter

7 years agounits: remove CAP_SYS_PTRACE capability from hostnamed/networkd
Lennart Poettering [Sun, 1 Jun 2014 06:54:09 +0000 (08:54 +0200)]
units: remove CAP_SYS_PTRACE capability from hostnamed/networkd

The ptrace capability was only necessary to detect virtualizations
environments. Since we changed the logic to determine this to not
require priviliges, there's no need to carry the CAP_SYS_PTRACE
capability anymore.

7 years agotimesyncd: split privilege dropping code out of timesyncd so that we can make use...
Lennart Poettering [Sun, 1 Jun 2014 06:49:33 +0000 (08:49 +0200)]
timesyncd: split privilege dropping code out of timesyncd so that we can make use of it from other daemons too

This is preparation to make networkd work as unpriviliged user.

7 years agotty-ask-password-agent: Do tell what directory we failed to open
Cristian Rodríguez [Thu, 29 May 2014 18:17:37 +0000 (14:17 -0400)]
tty-ask-password-agent: Do tell what directory we failed to open

7 years agoudev-builtin-keyboard: do tell on which device EVIOCSKEYCODE failed.
Cristian Rodríguez [Fri, 30 May 2014 17:16:56 +0000 (13:16 -0400)]
udev-builtin-keyboard: do tell on which device EVIOCSKEYCODE failed.

I am getting

"Error calling EVIOCSKEYCODE (scan code 0xc022d, key code 418): Invalid
argument", the error message does not tell on which specific device the
problem is, add that info.

7 years agoutil: ignore_file should not allow files ending with '~'
Thomas Hindoe Paaboel Andersen [Sat, 31 May 2014 19:36:23 +0000 (21:36 +0200)]
util: ignore_file should not allow files ending with '~'

ignore_file currently allows any file ending with '~' while it
seems that the opposite was intended:

7 years agounits: use KillMode=mixed for systemd-nspawn@.service
Jonathan Liu [Wed, 28 May 2014 15:17:25 +0000 (01:17 +1000)]
units: use KillMode=mixed for systemd-nspawn@.service

This causes the container to shut down cleanly when the service is

7 years agofsck: include device name in the message about missing fsck
Zbigniew Jędrzejewski-Szmek [Tue, 27 May 2014 03:03:11 +0000 (23:03 -0400)]
fsck: include device name in the message about missing fsck

7 years agovirt: rework container detection logic
Lennart Poettering [Wed, 28 May 2014 10:37:11 +0000 (18:37 +0800)]
virt: rework container detection logic

Instead of accessing /proc/1/environ directly, trying to read the
$container variable from it, let's make PID 1 save the contents of that
variable to /run/systemd/container. This allows us to detect containers
without the need for CAP_SYS_PTRACE, which allows us to drop it from a
number of daemons and from the file capabilities of systemd-detect-virt.

Also, don't consider chroot a container technology anymore. After all,
we don't consider file system namespaces container technology anymore,
and hence chroot() should be considered a container even less.

7 years agobuild-sys: use glibc's xattr support instead of requiring libattr
Kay Sievers [Wed, 28 May 2014 09:36:40 +0000 (17:36 +0800)]
build-sys: use glibc's xattr support instead of requiring libattr

7 years agoNEWS: mention that we need a new user systemd-timesync v213
Lennart Poettering [Wed, 28 May 2014 01:43:43 +0000 (09:43 +0800)]
NEWS: mention that we need a new user systemd-timesync

7 years agoNEWS: update NEWS file according to most recent changes in git
Lennart Poettering [Wed, 28 May 2014 01:39:55 +0000 (09:39 +0800)]
NEWS: update NEWS file according to most recent changes in git

7 years agohostnamed: Fix the way that static and transient host names interact
Stef Walter [Wed, 12 Feb 2014 08:46:31 +0000 (09:46 +0100)]
hostnamed: Fix the way that static and transient host names interact

It is almost always incorrect to allow DHCP or other sources of
transient host names to override an explicitly configured static host

This commit changes things so that if a static host name is set, this
will override the transient host name (eg: provided via DHCP). Transient
host names can still be used to provide host names for machines that have
not been explicitly configured with a static host name.

The exception to this rule is if the static host name is set to
"localhost". In those cases we act as if no
static host name has been explicitly set.

As discussed elsewhere, systemd may want to have an fd based ownership
of the transient name. That part is not included in this commit.

7 years agobuild-sys: bump package and library version
Lennart Poettering [Tue, 27 May 2014 11:02:22 +0000 (19:02 +0800)]
build-sys: bump package and library version

7 years agotest-dhcp-option: fix memleak
Tom Gundersen [Sun, 25 May 2014 15:34:17 +0000 (17:34 +0200)]
test-dhcp-option: fix memleak

7 years agoanalyze/run: use bus_open_transport_systemd instead of bus_open_transport
Thomas Bächler [Fri, 21 Feb 2014 10:55:24 +0000 (11:55 +0100)]
analyze/run: use bus_open_transport_systemd instead of bus_open_transport

Both systemd-analyze and systemd-run only access org.freedesktop.systemd1
on the bus. This patch allows using systemd-run --user and systemd-analyze
--user even if the user session's bus is not properly integrated with the
systemd user unit. and other reports...

7 years agoDo not unescape unit names in [Install] section
Michal Sekletar [Mon, 26 May 2014 18:09:45 +0000 (20:09 +0200)]
Do not unescape unit names in [Install] section

7 years agoudev: keyboard - also hook into "change" events
Kay Sievers [Mon, 26 May 2014 01:30:21 +0000 (09:30 +0800)]
udev: keyboard - also hook into "change" events

Re-apply the keymaps when "udevadm trigger" is called. Hooking into
"add" only would just remove all keymap content from the udev database
instead of applying the new config.

7 years agokeymap: Asus EeePC touchpad toggle key
Martin Pitt [Sun, 25 May 2014 10:16:35 +0000 (12:16 +0200)]
keymap: Asus EeePC touchpad toggle key

Originally is KEY_TOUCHPAD_TOGGLE, but can't handle the big key events,
so use the F21 convention.

7 years agokeymap: Add Lenovo Enhanced USB Keyboard
Martin Pitt [Sun, 25 May 2014 09:57:22 +0000 (11:57 +0200)]
keymap: Add Lenovo Enhanced USB Keyboard

7 years agotimesysnc: reword network watching messages, and move resolver errors to debug
Kay Sievers [Sun, 25 May 2014 05:40:17 +0000 (13:40 +0800)]
timesysnc: reword network watching messages, and move resolver errors to debug

7 years agonspawn: make nspawn robust to container failure
Djalal Harouni [Sat, 24 May 2014 13:58:55 +0000 (14:58 +0100)]
nspawn: make nspawn robust to container failure

nspawn and the container child use eventfd to wait and notify each other
that they are ready so the container setup can be completed.

However in its current form the wait/notify event ignore errors that
may especially affect the child (container).

On errors the child will jump to the "child_fail" label and terminate
with _exit(EXIT_FAILURE) without notifying the parent. Since the eventfd
is created without the "EFD_NONBLOCK" flag, this leaves the parent
blocking on the eventfd_read() call. The container can also be killed
at any moment before execv() and the parent will not receive

We can fix this by using cheap mechanisms, the new high level eventfd
API and handle SIGCHLD signals:

* Keep the cheap eventfd and EFD_NONBLOCK flag.

* Introduce eventfd states for parent and child to sync.
Child notifies parent with EVENTFD_CHILD_SUCCEEDED on success or
EVENTFD_CHILD_FAILED on failure and before _exit(). This prevents the
parent from waiting on an event that will never come.

* If the child is killed before execv() or before notifying the parent,
we install a NOP handler for SIGCHLD which will interrupt blocking calls
with EINTR. This gives a chance to the parent to call wait() and
terminate in main().

* If there are no errors, parent will block SIGCHLD, restore default
handler and notify child which will do execv(), then parent will pass
control to process_pty() to do its magic.

This was exposed in part by:

Reported-by: Tobias Hunger