Sangjung Woo [Tue, 8 Sep 2015 06:09:40 +0000 (15:09 +0900)]
smack: bugfix the smack label of symlink when '--with-smack-run-label' is set
Even though systemd has its own smack label since
'--with-smack-run-label' configuration is set, the smack label of each
CGROUP root directory should have the star (i.e. *) label. This is
mainly because current Linux Kernel set the label in this way.
(Refer to smack_d_instantiate() in security/smack/smack_lsm.c)
However, if systemd has its own smack label and arg_join_controllers is
explicitly set or initialized by initialize_join_controllers() function,
current systemd creates the symlink in CGROUP root directory with its
own smack label as below.
lrwxrwxrwx. 1 root root System 11 Dec 31 16:00 cpu -> cpu,cpuacct
dr-xr-xr-x. 4 root root * 0 Dec 31 16:01 cpu,cpuacct
lrwxrwxrwx. 1 root root System 11 Dec 31 16:00 cpuacct -> cpu,cpuacct
This patch fixes that bug by copying the smack label from the origin.
Sangjung Woo [Tue, 8 Sep 2015 05:58:22 +0000 (14:58 +0900)]
smack: introduce new mac_smack_copy() function
This adds a new mac_smack_copy() function in order to read the smack
label from the source and apply it to the destination.
Daniel Mack [Wed, 9 Sep 2015 08:10:23 +0000 (10:10 +0200)]
importd: fix typos
Daniel Mack [Wed, 9 Sep 2015 08:08:44 +0000 (10:08 +0200)]
Merge pull request #1210 from poettering/import-fixes
cgroup fix, nspawn fix, plus change to download .nspawn files in importd
Daniel Mack [Wed, 9 Sep 2015 07:57:29 +0000 (09:57 +0200)]
Merge pull request #1207 from poettering/coccinelle-fixes
Coccinelle fixes
Lennart Poettering [Wed, 9 Sep 2015 06:36:20 +0000 (08:36 +0200)]
nspawn: add missing comma to gperf file
Lennart Poettering [Wed, 9 Sep 2015 06:31:11 +0000 (08:31 +0200)]
Merge pull request #1180 from evverx/dot-from-to-alias-handling
analyze: add alias handling for --{from,to}-pattern options of the dot command
Lennart Poettering [Tue, 8 Sep 2015 21:03:38 +0000 (23:03 +0200)]
tree-wide: drop {} from one-line if blocks
Patch via coccinelle.
Lennart Poettering [Tue, 8 Sep 2015 17:30:45 +0000 (19:30 +0200)]
tree-wide: make use of log_error_errno() return value
Turns this:
r = -errno;
log_error_errno(errno, "foo");
into this:
r = log_error_errno(errno, "foo");
and this:
r = log_error_errno(errno, "foo");
return r;
into this:
return log_error_errno(errno, "foo");
Lennart Poettering [Tue, 8 Sep 2015 17:14:10 +0000 (19:14 +0200)]
tree-wide: don't do assignments within if checks
Turn this:
if ((r = foo()) < 0) { ...
into this:
r = foo();
if (r < 0) { ...
Lennart Poettering [Tue, 8 Sep 2015 16:58:28 +0000 (18:58 +0200)]
tree-wide: drop redundant if checks before safe_close()
Replace this:
if (fd >= 0)
safe_close(fd);
by this:
safe_close(fd);
Lennart Poettering [Tue, 8 Sep 2015 16:53:19 +0000 (18:53 +0200)]
tree-wide: make more code use safe_close()
Replace this:
close(fd);
fd = -1;
write this:
fd = safe_close(fd);
Lennart Poettering [Tue, 8 Sep 2015 16:43:11 +0000 (18:43 +0200)]
tree-wide: use coccinelle to patch a lot of code to use mfree()
This replaces this:
free(p);
p = NULL;
by this:
p = mfree(p);
Change generated using coccinelle. Semantic patch is added to the
sources.
Lennart Poettering [Wed, 9 Sep 2015 06:05:53 +0000 (08:05 +0200)]
Merge pull request #1206 from davidmilburn/ata-by-path
udev: build by-path identifiers for ATA devices.
David Milburn [Tue, 8 Sep 2015 20:27:51 +0000 (15:27 -0500)]
udev: build by-path identifiers for ATA devices.
/dev/disk/by-path
total 0
lrwxrwxrwx. 1 root root 9 Sep 4 10:02 pci-0000:00:1f.2-ata-2 -> ../../sr0
lrwxrwxrwx. 1 root root 9 Sep 4 10:02 pci-0000:00:1f.2-ata-3 -> ../../sdd
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:00:1f.2-ata-3-part1 -> ../../sdd1
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:00:1f.2-ata-3-part2 -> ../../sdd2
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:00:1f.2-ata-3-part3 -> ../../sdd3
lrwxrwxrwx. 1 root root 9 Sep 4 10:02 pci-0000:03:00.0-ata-4 -> ../../sda
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:03:00.0-ata-4-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:03:00.0-ata-4-part2 -> ../../sda2
lrwxrwxrwx. 1 root root 9 Sep 4 10:02 pci-0000:08:00.0-ata-1 -> ../../sdc
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:08:00.0-ata-1-part1 -> ../../sdc1
lrwxrwxrwx. 1 root root 10 Sep 4 10:02 pci-0000:08:00.0-ata-1-part2 -> ../../sdc2
Lennart Poettering [Tue, 8 Sep 2015 21:20:22 +0000 (23:20 +0200)]
Merge pull request #1203 from mus65/fix-esp-options
gpt-auto: fix ESP options and description
Marius Thesing [Tue, 8 Sep 2015 19:25:05 +0000 (21:25 +0200)]
gpt-auto: fix ESP options and description
Since
59512f21 the parameters were passed in the wrong order, causing the
options to be interpreted as the description.
Also, while "false" was supposed to be passed for "rw", the ESP should actually
be mounted read-write. It just happened to be "true" since the description char*
was passed for "rw".
Lennart Poettering [Tue, 8 Sep 2015 16:25:56 +0000 (18:25 +0200)]
importd: for .raw and .tar images, try to download .nspawn settings file too
Lennart Poettering [Tue, 8 Sep 2015 16:15:50 +0000 (18:15 +0200)]
cgroups: make sure the "devices" controller's enum is named the same way as the controller in the kernel
Follow-up to
5bf8002a3a6723ce50331c024122078552fb600a.
Daniel Mack [Tue, 8 Sep 2015 13:53:56 +0000 (15:53 +0200)]
Merge pull request #1190 from poettering/rework-virt
basic: rework virtualization detection API
David Herrmann [Tue, 8 Sep 2015 12:03:22 +0000 (14:03 +0200)]
sd-login: fix sd_seat_get_active() to return ENODATA
This seems to be an oversight from:
707b66c66381c899d7ef640e158ffdd5bcff4deb
We have to return ENODATA instead of ENOENT if a requested entry is
non-present. Also fix the call-site in udev to check for these errors.
David Herrmann [Tue, 8 Sep 2015 11:31:57 +0000 (13:31 +0200)]
build: prepare for v226
Bump version info and update NEWS for the upcoming release.
David Herrmann [Tue, 8 Sep 2015 11:23:24 +0000 (13:23 +0200)]
Merge pull request #1201 from torstehu/fix-typo
treewide: fix typos
Daniel Mack [Tue, 8 Sep 2015 10:59:03 +0000 (12:59 +0200)]
Merge pull request #1192 from poettering/sd-bus-container
sd-bus: pass container bus errors up to calling process
Torstein Husebø [Tue, 8 Sep 2015 10:23:18 +0000 (12:23 +0200)]
treewide: fix typos
Lennart Poettering [Tue, 8 Sep 2015 09:16:53 +0000 (11:16 +0200)]
Merge pull request #1196 from evverx/systemctl-add-consists-of
systemctl: add ConsistsOf as the inverse of PartOf
Lennart Poettering [Tue, 8 Sep 2015 09:09:37 +0000 (11:09 +0200)]
Merge pull request #1198 from martinpitt/master
cgroup-util: fix devices controller
Martin Pitt [Tue, 8 Sep 2015 08:42:22 +0000 (10:42 +0200)]
cgroup-util: fix devices controller
Commit
efdb0237 accidentally changed the name of the "devices" cgroup
controller to "device".
Daniel Mack [Tue, 8 Sep 2015 08:40:39 +0000 (10:40 +0200)]
Merge pull request #1195 from poettering/nspawn-fixes
Various nspawn fixes
Evgeny Vereshchagin [Mon, 7 Sep 2015 23:35:58 +0000 (02:35 +0300)]
systemctl: add ConsistsOf as the inverse of PartOf
Lennart Poettering [Mon, 7 Sep 2015 23:37:04 +0000 (01:37 +0200)]
update TODO
Lennart Poettering [Mon, 7 Sep 2015 23:36:59 +0000 (01:36 +0200)]
NEWS: update contributors list
Lennart Poettering [Mon, 7 Sep 2015 23:22:46 +0000 (01:22 +0200)]
nspawn: also close uid shift socket in the parent
We should really close all parent sides of our child/parent socket
pairs.
Lennart Poettering [Mon, 7 Sep 2015 23:22:26 +0000 (01:22 +0200)]
nspawn: short reads do not set errno, hence don't try to print it
Lennart Poettering [Mon, 7 Sep 2015 23:17:47 +0000 (01:17 +0200)]
inspawn: switch from SOCK_DGRAM to SOCK_SEQPACKET for internal socketpairs
SOCK_DGRAM and SOCK_SEQPACKET have very similar semantics when used with
socketpair(). However, SOCK_SEQPACKET has the advantage of knowing a
hangup concept, since it is inherently connection-oriented.
Since we use socket pairs to communicate between the nspawn main process
and the nspawn child process, where the child might die abnormally it's
interesting to us to learn about this via hangups if the child side of
the pair is closed. Hence, let's switch to SOCK_SEQPACKET for these
internal communication sockets.
Fixes #956.
Lennart Poettering [Mon, 7 Sep 2015 23:17:15 +0000 (01:17 +0200)]
nspawn: properly propagate errors when we fail to set soemthing up
Daniel Mack [Mon, 7 Sep 2015 21:16:14 +0000 (23:16 +0200)]
Merge pull request #1193 from phomes/typos
man: typo fixes
Thomas Hindoe Paaboel Andersen [Mon, 7 Sep 2015 18:06:58 +0000 (20:06 +0200)]
man: typo fixes
Lennart Poettering [Mon, 7 Sep 2015 17:53:34 +0000 (19:53 +0200)]
machined: improve error message when trying to get a bus in bus-less containers
Now that we get useful error messages from sd-bus for container
connections, let's make use of this and report better errors back to
machined clients.
Fixes #685.
Lennart Poettering [Mon, 7 Sep 2015 17:52:11 +0000 (19:52 +0200)]
sd-bus: when connecting to a container AF_UNIX bus, return error
When forking of a child process for connecting to a container, pass
the preicse connection error to the calling process.
We already did this correctly for kdbus busses, let's do so for dbus1
busses, too.
Daniel Mack [Mon, 7 Sep 2015 17:08:39 +0000 (19:08 +0200)]
Merge pull request #1191 from poettering/nspawn-split
nspawn: split up nspawn.c into multiple smaller .c files
Lennart Poettering [Mon, 7 Sep 2015 16:56:54 +0000 (18:56 +0200)]
nspawn: sort and clean up included header list
Let's remove unnecessary inclusions, and order the list alphabetically
as suggested in CODING_STYLE now.
Lennart Poettering [Mon, 7 Sep 2015 16:47:34 +0000 (18:47 +0200)]
nspawn: remove nspawn.h, it's empty now
Lennart Poettering [Mon, 7 Sep 2015 16:42:14 +0000 (18:42 +0200)]
nspawn: split out --uid= logic into nspawn-setuid.[ch]
Lennart Poettering [Mon, 7 Sep 2015 16:36:05 +0000 (18:36 +0200)]
nspawn: split out machined registration code to nspawn-register.[ch]
Lennart Poettering [Mon, 7 Sep 2015 16:25:04 +0000 (18:25 +0200)]
nspawn: split out cgroup related calls into nspawn-cgroup.[ch]
Lennart Poettering [Mon, 7 Sep 2015 15:43:45 +0000 (17:43 +0200)]
nspawn: split out network related code to nspawn-network.[ch]
Lennart Poettering [Mon, 7 Sep 2015 14:52:24 +0000 (16:52 +0200)]
nspawn: split all port exposure code into nspawn-expose-port.[ch]
Lennart Poettering [Mon, 7 Sep 2015 13:59:52 +0000 (15:59 +0200)]
nspawn: split out mount related functions into a new nspawn-mount.c file
Daniel Mack [Mon, 7 Sep 2015 12:27:13 +0000 (14:27 +0200)]
Merge pull request #1189 from poettering/unit-start
unit: move "not supported" check after condition check in unit_start()
Lennart Poettering [Mon, 7 Sep 2015 12:08:24 +0000 (14:08 +0200)]
unit: move "not supported" check after condition check in unit_start()
Make sure we always check conditions before checking whether the unit
type is supported in unit_start(), since condition checks are "clean
errors", while "not supported" errors are fatal.
This cleans up the boot output of systemd in containers, where a lot of
NOTSUPP lines were shown befor this fix.
This partially reverts
8ff4d2ab0d4758e914aea6d86154d85f2b2c787f which
reorder the checks.
Lennart Poettering [Mon, 7 Sep 2015 11:42:47 +0000 (13:42 +0200)]
basic: rework virtualization detection API
Introduce a proper enum, and don't pass around string ids anymore. This
simplifies things quite a bit, and makes virtualization detection more
similar to architecture detection.
Daniel Mack [Mon, 7 Sep 2015 11:06:53 +0000 (13:06 +0200)]
NEWS: fix typos
Lennart Poettering [Mon, 7 Sep 2015 10:43:25 +0000 (12:43 +0200)]
update NEWS
Daniel Mack [Mon, 7 Sep 2015 10:28:34 +0000 (12:28 +0200)]
Merge pull request #1178 from poettering/gpt-auto-fixes
handle LUKS root partitions better in gpt-auto, plus other fixes
Lennart Poettering [Mon, 7 Sep 2015 09:12:27 +0000 (11:12 +0200)]
Merge pull request #1183 from dvdhrm/cpename
man: clarify wording of os-release.CPE_NAME
David Herrmann [Mon, 7 Sep 2015 09:02:40 +0000 (11:02 +0200)]
Merge pull request #1182 from martinpitt/master
tests: Skip test-cgroup-util test_mask_supported() when not running under systemd
David Herrmann [Mon, 7 Sep 2015 08:57:50 +0000 (10:57 +0200)]
man: clarify wording of os-release.CPE_NAME
We expect the CPE_NAME to be formatted in URI binding syntax. Make that
clear in the documentation. Furthermore, the CPE-spec has been taken over
by NIST, so adjust the links as well.
Reported by: Ben Harris <bjh21@cam.ac.uk>
Martin Pitt [Mon, 7 Sep 2015 06:09:13 +0000 (08:09 +0200)]
tests: Skip test-cgroup-util test_mask_supported() when not running under systemd
Commit
5f4c5fef6 introduced this new test case, but this does not work in
build chroots where cgroupfs is not mounted. So skip the test if systemd is not
running.
Daniel Mack [Mon, 7 Sep 2015 03:53:19 +0000 (05:53 +0200)]
Merge pull request #1181 from evverx/update-systemd-analyze-completion
shell-completion: update systemd-analyze bash-completion
Evgeny Vereshchagin [Mon, 7 Sep 2015 01:44:30 +0000 (04:44 +0300)]
shell-completion: update systemd-analyze bash-completion
* Change --no-man to --man (see
dad29df)
* --{from,to}-pattern require arg
Tom Gundersen [Mon, 7 Sep 2015 01:02:08 +0000 (03:02 +0200)]
Merge pull request #1179 from poettering/sd-event-sigchld-fix
sd-event: make sure to create a signal queue for the right signal
Tom Gundersen [Mon, 7 Sep 2015 00:59:08 +0000 (02:59 +0200)]
Merge pull request #1165 from poettering/nspawn-files
various fixes to the core, logind, machined, nspawn
Evgeny Vereshchagin [Sun, 6 Sep 2015 22:34:33 +0000 (01:34 +0300)]
analyze: add alias handling for --{from,to}-pattern options
`systemd-analyze dot --from-pattern default.target` works fine
Lennart Poettering [Sun, 6 Sep 2015 22:31:24 +0000 (00:31 +0200)]
sd-event: make sure to create a signal queue for the right signal
We should never access the "signal" part of the event source unless the
event source is actually for a signal. In this case it's a child pid
handler however, hence make sure to use the right signal.
This is a fix for PR #1177, which in turn was a fix for
9da4cb2be260ed123f2676cb85cb350c527b1492.
Lennart Poettering [Sun, 6 Sep 2015 22:06:49 +0000 (00:06 +0200)]
systemctl: a number of cleanups regarding error handling in systemctl
Lennart Poettering [Sun, 6 Sep 2015 21:06:05 +0000 (23:06 +0200)]
gpt-auto: minor simplificatin handling the no-auto GPT flag
Let's query the flags only once, and document why we ignore it for the
ESP.
Lennart Poettering [Sun, 6 Sep 2015 21:04:32 +0000 (23:04 +0200)]
gpt-auto: try to handle LUKS root partitions better
If the root file system is located on an encrypted root disk, we'll not
find the GPT partition table for it. Let's fix that by following the
slaves/ symlinks in /sys for the device. We only handle devices having
exactly one backing device.
Also see: #1167
Daniel Mack [Sun, 6 Sep 2015 22:11:25 +0000 (00:11 +0200)]
Merge pull request #1168 from poettering/readme-kernel-version
README: bump minimal required kernel version
Daniel Mack [Sun, 6 Sep 2015 22:11:09 +0000 (00:11 +0200)]
Merge pull request #1177 from phomes/sd-event-bug-fix
sd-event: fix call to event_make_signal_data
Lennart Poettering [Sun, 6 Sep 2015 22:08:12 +0000 (00:08 +0200)]
NEWS: add more content to both the 225 and 226 NEWS section
Thomas Hindoe Paaboel Andersen [Sun, 6 Sep 2015 20:06:45 +0000 (22:06 +0200)]
sd-event: fix call to event_make_signal_data
This looks like a typo from commit
9da4cb2b where it was added.
Lennart Poettering [Sun, 6 Sep 2015 19:07:01 +0000 (21:07 +0200)]
Merge pull request #1174 from mbiebl/remove-sphinx-leftover
build-sys: remove sphinx binary from configure summary
Lennart Poettering [Sun, 6 Sep 2015 19:05:49 +0000 (21:05 +0200)]
Merge pull request #1176 from piotrdrag/master
Updated Polish translation
Piotr Drąg [Sun, 6 Sep 2015 18:42:16 +0000 (20:42 +0200)]
Updated Polish translation
Michael Biebl [Sun, 6 Sep 2015 17:05:35 +0000 (19:05 +0200)]
build-sys: remove sphinx binary from configure summary
We no longer use sphinx as part of the build process so remove it from
the configure summary as well.
This is a leftover from commit
2799e519cabb6dfa99341b9a56ebd4dc2a4ec22a.
Lennart Poettering [Sun, 6 Sep 2015 13:58:20 +0000 (15:58 +0200)]
README: bump minimal required kernel version
We generally try to support 2y old kernels, which allows us bump the
minimal required version to 3.11 now.
Also, clarify that support for the unified cgroup hierarchy requires 4.2
or newer.
Lennart Poettering [Sun, 6 Sep 2015 10:34:09 +0000 (12:34 +0200)]
Merge pull request #1153 from evverx/dot-alias-handling
analyze: add "alias" handling to dot subcommand
Evgeny Vereshchagin [Sat, 5 Sep 2015 05:18:08 +0000 (08:18 +0300)]
analyze: add "alias" handling to dot subcommand
`systemd-analyze dot default.target` works fine
Lennart Poettering [Sun, 6 Sep 2015 00:00:05 +0000 (02:00 +0200)]
Merge pull request #1159 from AnchorCat/polkit-details/v2
Provide unit name and operation in manage-units polkit checks (v2)
Lennart Poettering [Sat, 5 Sep 2015 23:58:48 +0000 (01:58 +0200)]
Merge pull request #1162 from dvdhrm/bus-recursive-nodes
sd-bus: make introspection data non-recursive
Lennart Poettering [Sat, 5 Sep 2015 23:32:27 +0000 (01:32 +0200)]
units: make sure that .nspawn files override the default settings in systemd-nspawn@.service
Lennart Poettering [Sat, 5 Sep 2015 23:22:14 +0000 (01:22 +0200)]
nspawn: add new .nspawn files for container settings
.nspawn fiels are simple settings files that may accompany container
images and directories and contain settings otherwise passed on the
nspawn command line. This provides an efficient way to attach execution
data directly to containers.
Lennart Poettering [Sat, 5 Sep 2015 23:30:08 +0000 (01:30 +0200)]
Merge pull request #1161 from dvdhrm/include-order2
CODING_STYLE: mandate alphabetical include order (v2)
Kay Sievers [Sat, 5 Sep 2015 21:06:31 +0000 (23:06 +0200)]
Merge pull request #1160 from dvdhrm/bus-user
sd-bus: derive uid from cgroup if possible
Lennart Poettering [Sat, 5 Sep 2015 18:24:52 +0000 (20:24 +0200)]
machine: make sure to call unlockpt() even for local host pty connections
This fixes breakage for local host pty handling, introduced in
395745ba533ac91fe118f43ec83f13a752c0b473.
Fixes #1139
Lennart Poettering [Sat, 5 Sep 2015 18:24:08 +0000 (20:24 +0200)]
logind: make scope of wall message handling smaller
Lennart Poettering [Sat, 5 Sep 2015 18:21:46 +0000 (20:21 +0200)]
unit: make unit_can_start() more accurate
This funciton is exposed via CanStart on the bus, and should be as
accurate as possible. Hence: make sure to return false for units of unit
types not supported on the system, and for unit types where
configuration failed to load.
Also see #1105.
Lennart Poettering [Sat, 5 Sep 2015 18:21:08 +0000 (20:21 +0200)]
core: don't use uninitialized errno
Lennart Poettering [Sat, 5 Sep 2015 18:20:24 +0000 (20:20 +0200)]
machine: clarify that /var/lib/containers is legacy
David Herrmann [Sat, 5 Sep 2015 17:43:29 +0000 (19:43 +0200)]
sd-bus: make introspection data non-recursive
Currently, our introspection data looks like this:
<node>
<interface name="org.freedesktop.DBus.Peer">
...
</interface>
<interface name="org.freedesktop.DBus.Introspectable">
...
</interface>
<interface name="org.freedesktop.DBus.Properties">
...
</interface>
<node name="org"/>
<node name="org/freedesktop"/>
<node name="org/freedesktop/login1"/>
<node name="org/freedesktop/login1/user"/>
<node name="org/freedesktop/login1/user/self"/>
<node name="org/freedesktop/login1/user/_1000"/>
<node name="org/freedesktop/login1/seat"/>
<node name="org/freedesktop/login1/seat/self"/>
<node name="org/freedesktop/login1/seat/seat0"/>
<node name="org/freedesktop/login1/session"/>
<node name="org/freedesktop/login1/session/self"/>
<node name="org/freedesktop/login1/session/c1"/>
</node>
(ordered alphabetically for better visibility)
This is grossly incorrect. The spec says that we're allowed to return
non-directed children, however, it does not allow us to return data
recursively in multiple parents. If we return "org", then we must not
return anything else that starts with "org/".
It is unclear, whether we can include child-nodes as a tree. Moreover, it
is usually not what the caller wants. Hence, this patch changes sd-bus to
never return introspection data recursively. Instead, only a single
child-layer is returned.
This patch relies on enumerators to never return hierarchies. If someone
registers an enumerator via sd_bus_add_enumerator, they better register
sub-enumerators if they support *TRUE* hierarchies. Each enumerator is
treated as a single layer and not filtered.
Enumerators are still allowed to return nested data. However, that data
is still required to be a single hierarchy. For instance, returning
"/org/foo" and "/com/bar" is fine, but including "/com" or "/org" in that
dataset is not.
This should be the default for enumerators and I see no reason to filter
in sd-bus. Moreover, filtering that data-set would require to sort the
strv by path and then do prefix-filtering. This is O(n log n), which
would be fine, but still better to avoid.
Fixes #664.
David Herrmann [Sat, 5 Sep 2015 16:29:14 +0000 (18:29 +0200)]
TODO: update networkd section
Remove two freshly implemented features, and add TSO support as a new
one.
David Herrmann [Sat, 5 Sep 2015 11:03:59 +0000 (13:03 +0200)]
CODING_STYLE: mandate alphabetical include order
systemd-internal headers must not rely on include order. That means, they
either must contain forward-declarations of used types/functions, or they
must include all dependencies on their own. Therefore, there is no reason
to mandate an include order on the call-side.
However, global includes should always be ordered first. We don't want
local definitions to leak into global includes, possible changing their
behavior. Apparently, namespacing is a complex problem that people are
incapable of implementing properly..
Apart from "global before local", there is no reason to mandate a random
include order (which we happen to do right now). Instead, mandate
alphabetical ordering. The current rules do not have any benefit at all.
They neither reduce include-complexity, nor allow easy auditing of
include files. But with alphabetical ordering, we get duplicate-detection
for free, it gets *much much* easier to figure out whether a header is
already included, and it is trivial to add new headers.
David Herrmann [Sat, 5 Sep 2015 15:54:30 +0000 (17:54 +0200)]
sd-bus: derive uid from cgroup if possible
Whenever we run in a user context, sd_bus_{default_user,open_user}() and
friends should always connect to the user-bus of the current context,
instead of deriving the uid from getuid(). This allows us running
programs via sudo/su, without the nasty side-effect of accidentally
connecting to the root user-bus.
This patch enforces the idea of making su/sudo *not* opening sessions by
default. That is, all they do is raising privileges, but keeping
everything set as before. You can still use su/sudo to open real sessions
by requesting a login-session (or loading pam_systemd otherwise).
However, in this case XDG_RUNTIME_DIR= will not be set (as usual in these
cases), hence, you will not be able to connect to *any* user-bus.
Long story short: With this patch applied, both:
- ./busctl --user
- sudo ./busctl --user
..will successfully connect to the user-bus of the local user.
Fixes #390.
Michael Chapman [Sat, 5 Sep 2015 14:07:17 +0000 (00:07 +1000)]
core: pass details to polkit for some unit actions
The following details are passed:
- unit: the primary name of the unit upon which the action was
invoked (i.e. after resolving any aliases);
- verb: one of 'start', 'stop', 'reload', 'restart', 'try-restart',
'reload-or-restart', 'reload-or-try-restart', 'kill',
'reset-failed', or 'set-property', corresponding to the
systemctl verb used to invoke the action.
Typical use of these details in a polkit policy rule might be:
// Allow alice to manage example.service;
// fall back to implicit authorization otherwise.
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "example.service" &&
subject.user == "alice") {
return polkit.Result.YES;
}
});
We also supply a custom polkit message that includes the unit's name and
the requested operation.
Michael Chapman [Sat, 5 Sep 2015 14:07:16 +0000 (00:07 +1000)]
bus-util: support details in CheckAuthorization calls
Extra details for an action can be supplied when calling polkit's
CheckAuthorization method. Details are a list of key/value string pairs.
Custom policy can use these details when making authorization decisions.
David Herrmann [Sat, 5 Sep 2015 13:20:21 +0000 (15:20 +0200)]
Merge pull request #1140 from poettering/sd-event-signals
A variety of sd-event, sd-login and cgroup fixes
Lennart Poettering [Fri, 4 Sep 2015 07:57:51 +0000 (09:57 +0200)]
sd-login: minor header commenting improvements
Lennart Poettering [Fri, 4 Sep 2015 07:54:14 +0000 (09:54 +0200)]
sd-login: add new sd_pid_get_cgroup() API
This adds a new sd_pid_get_cgroup() call to sd-login which may be used
to query the control path of a process. This is useful for programs when
making use of delegation units, in order to figure out which subtree has
been delegated.
In light of the unified control group hierarchy this is finally safe to
do, hence let's add a proper API for it, to make it easier to use this.
Daniel Mack [Sat, 5 Sep 2015 12:33:56 +0000 (14:33 +0200)]
Merge pull request #1157 from dvdhrm/logind-wallfix
login: fix NULL-deref on wall_message