chiark / gitweb /
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:30:10 +0000 (18:30 -0400)]
systemd-python: export sd_journal_get_usage
Zbigniew Jędrzejewski-Szmek [Fri, 22 Mar 2013 00:55:17 +0000 (20:55 -0400)]
efivars: fix return code
Was returning 1 on read error.
Zbigniew Jędrzejewski-Szmek [Thu, 21 Mar 2013 23:20:41 +0000 (19:20 -0400)]
shutdownd: shut up bogus gcc warning
This one is fake. But let's kill it, avoiding two condition checks
in the process.
src/shutdownd/shutdownd.c: In function 'when_wall':
src/shutdownd/shutdownd.c:182:44: warning: 'sub' may be used uninitialized in this function [-Wmaybe-uninitialized]
return elapse > sub ? elapse - sub : 1;
^
Zbigniew Jędrzejewski-Szmek [Thu, 21 Mar 2013 23:10:50 +0000 (19:10 -0400)]
bootchart: fix two unitialized memory frees
The new gcc isn't bad!
In file included from src/bootchart/svg.c:36:0:
src/bootchart/svg.c: In function 'svg_ps_bars':
./src/shared/util.h:524:13: warning: 'enc_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
free(*(void**) p);
^
src/bootchart/svg.c:821:37: note: 'enc_name' was declared here
char _cleanup_free_*enc_name;
^
CC src/udev/mtd_probe/mtd_probe-probe_smartmedia.o
XSLT man/systemd.unit.5
In file included from src/bootchart/svg.c:36:0:
src/bootchart/svg.c: In function 'svg_pss_graph':
./src/shared/util.h:524:13: warning: 'enc_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
free(*(void**) p);
^
src/bootchart/svg.c:395:37: note: 'enc_name' was declared here
char _cleanup_free_*enc_name;
^
Zbigniew Jędrzejewski-Szmek [Thu, 21 Mar 2013 23:06:55 +0000 (19:06 -0400)]
initctl: fix return from unitialized memory in error path
src/initctl/initctl.c: In function 'server_init':
src/initctl/initctl.c:282:13: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
int r;
^
Zbigniew Jędrzejewski-Szmek [Thu, 21 Mar 2013 18:53:12 +0000 (18:53 +0000)]
build-sys: use _FORTIFY_SOURCE with new gcc level -Og
Lennart Poettering [Fri, 22 Mar 2013 02:36:58 +0000 (03:36 +0100)]
bus: implicitly collect ucred/label information
Lennart Poettering [Fri, 22 Mar 2013 02:34:29 +0000 (03:34 +0100)]
bus: also finish connection before returning from sd_bus_get_unique_name()
Lennart Poettering [Fri, 22 Mar 2013 01:32:34 +0000 (02:32 +0100)]
bus: when parsing enforce maximum container depth
Lennart Poettering [Fri, 22 Mar 2013 01:20:39 +0000 (02:20 +0100)]
bus: fix uninitialized variable
Lennart Poettering [Fri, 22 Mar 2013 01:20:21 +0000 (02:20 +0100)]
bus: validate the hello response properly
Lennart Poettering [Fri, 22 Mar 2013 01:19:49 +0000 (02:19 +0100)]
bus: properly verify recursion depth of signatures
Lennart Poettering [Fri, 22 Mar 2013 00:49:56 +0000 (01:49 +0100)]
bus: rework synchronization logic
Instead of allowing certain actions fail during authentication and
connection setup, implicitly synchronize on the connection to be set up
completely before returning.
Lennart Poettering [Fri, 22 Mar 2013 00:49:13 +0000 (01:49 +0100)]
bus: reuse more code
Lennart Poettering [Fri, 22 Mar 2013 00:15:20 +0000 (01:15 +0100)]
bus: validate the entire header more closely
Lennart Poettering [Thu, 21 Mar 2013 23:42:53 +0000 (00:42 +0100)]
bus: properly validate object path values
Lennart Poettering [Thu, 21 Mar 2013 23:24:21 +0000 (00:24 +0100)]
bus: generate a nice error when attempting to add a NULL string
Lennart Poettering [Thu, 21 Mar 2013 23:08:58 +0000 (00:08 +0100)]
bus: implicitly handle peer commands Ping() and GetMachineId()
Lennart Poettering [Thu, 21 Mar 2013 22:20:25 +0000 (23:20 +0100)]
bus: enforce limits on all client influenced data objects
Lennart Poettering [Thu, 21 Mar 2013 22:01:59 +0000 (23:01 +0100)]
bus: implicitly set no_reply flag on outgoing messages if the serial number is not kept
If nobody keeps the serial number of an outgoing message we know that
nobody expects an answer to it, so set the no_reply flag accordingly.
Kay Sievers [Thu, 21 Mar 2013 22:11:51 +0000 (23:11 +0100)]
udev: always set selinux label at "add" events
https://bugs.freedesktop.org/show_bug.cgi?id=62615
Lennart Poettering [Thu, 21 Mar 2013 21:50:25 +0000 (22:50 +0100)]
bus: implement full method call timeout logic
Kay Sievers [Thu, 21 Mar 2013 21:17:13 +0000 (22:17 +0100)]
hwdb: update
Kay Sievers [Thu, 21 Mar 2013 21:16:55 +0000 (22:16 +0100)]
MAkefile.am: whitespace cleanup
Kay Sievers [Thu, 21 Mar 2013 14:07:54 +0000 (15:07 +0100)]
doc: disable gtk-doc test again - you are a really annoying piece of software
make check-TESTS
make[5]: Nothing to be done for `/usr/bin/gtkdoc-check.log'.
fatal: making test-suite.log: failed to create /usr/bin/gtkdoc-check.trs
fatal: making test-suite.log: failed to create /usr/bin/gtkdoc-check.log
make[4]: *** [test-suite.log] Error 1
make[3]: *** [check-TESTS] Error 2
make[2]: *** [check-am] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [check] Error 2
Michael Biebl [Thu, 21 Mar 2013 10:05:43 +0000 (11:05 +0100)]
build-sys: include missing header in dist tarball
Lennart Poettering [Thu, 21 Mar 2013 01:42:28 +0000 (02:42 +0100)]
shared: add simple priority queue implementation
Dave Reisner [Wed, 20 Mar 2013 23:25:37 +0000 (19:25 -0400)]
bus: compare to negative errno
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:30:31 +0000 (18:30 -0400)]
activate: avoid warning from -Wshadow
src/activate/activate.c:167:51: warning: declaration shadows a variable in the global scope [-Wshadow]
static int launch(char* name, char **argv, char **environ, int fds) {
^
/usr/include/unistd.h:546:15: note: previous declaration is here
extern char **environ;
^
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:27:49 +0000 (18:27 -0400)]
Make two functions static
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:25:35 +0000 (18:25 -0400)]
Remove some unused variables
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:22:20 +0000 (18:22 -0400)]
systemd-analyze: do not format timestamp when not printing it
../src/analyze/systemd-analyze.c:530:88: warning: data argument not used by format string [-Wformat-extra-args]
...svg_text(false, u->ixt, y, u->time? "%s (%s)" : "%s", u->name, format_timespan(ts, sizeof(ts), u->time));
~~~~ ^
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 22:12:37 +0000 (18:12 -0400)]
core: remove unnecessary goto in setup_namespace
Tom Gundersen [Wed, 20 Mar 2013 23:01:14 +0000 (00:01 +0100)]
bus-message: fix typo
Lennart Poettering [Wed, 20 Mar 2013 21:57:55 +0000 (22:57 +0100)]
update TODO
Lennart Poettering [Wed, 20 Mar 2013 21:56:25 +0000 (22:56 +0100)]
bus: hook up client with socket communication
Lennart Poettering [Wed, 20 Mar 2013 12:10:12 +0000 (13:10 +0100)]
bus: introduce bus_error_is_dirty() independently of sd_bus_error_is_set()
Lennart Poettering [Wed, 20 Mar 2013 04:29:20 +0000 (05:29 +0100)]
bus: demarshal header fields properly
Lennart Poettering [Wed, 20 Mar 2013 02:15:03 +0000 (03:15 +0100)]
bus: implement demarshaller
Lennart Poettering [Tue, 19 Mar 2013 19:16:27 +0000 (20:16 +0100)]
bus: suppress reply messages to method calls with no_reply set
Lennart Poettering [Tue, 19 Mar 2013 19:03:16 +0000 (20:03 +0100)]
bus: add basic implementation of a native bus client library
Lennart Poettering [Tue, 19 Mar 2013 19:01:35 +0000 (20:01 +0100)]
stdio-bridge: modernization
Lennart Poettering [Tue, 19 Mar 2013 19:01:18 +0000 (20:01 +0100)]
util: add hexmem() and strextend() calls
Lennart Poettering [Tue, 19 Mar 2013 19:00:55 +0000 (20:00 +0100)]
macro: add CHAR_TO_STR macro to make a one character string from a char
Lennart Poettering [Tue, 19 Mar 2013 19:00:29 +0000 (20:00 +0100)]
macro: don't redefine CLAMP if it is already defined by glib or some other library
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 05:38:28 +0000 (01:38 -0400)]
Make PrivateTmp dirs also inaccessible from the outside
Currently, PrivateTmp=yes means that the service cannot see the /tmp
shared by rest of the system and is isolated from other services using
PrivateTmp, but users can access and modify /tmp as seen by the
service.
Move the private /tmp and /var/tmp directories into a 0077-mode
directory. This way unpriviledged users on the system cannot see (or
modify) /tmp as seen by the service.
Jan Engelhardt [Wed, 20 Mar 2013 14:23:30 +0000 (15:23 +0100)]
build-sys: fix typo in human-readable output
Jan Engelhardt [Wed, 20 Mar 2013 14:23:32 +0000 (15:23 +0100)]
libudev: avoid potential misaligned accesses
clang reports:
src/libudev/libudev-util.c:665:35: warning: cast from
"const unsigned char *" to "unsigned int *" increases required alignment
from 1 to 4 [-Wcast-align]
Kay Sievers [Wed, 20 Mar 2013 14:57:13 +0000 (15:57 +0100)]
libude: remove special handling of "device" link, it should not be used
Tom Gundersen [Wed, 20 Mar 2013 12:09:58 +0000 (13:09 +0100)]
zsh completion: udev - remove firmware builtin
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 02:13:48 +0000 (22:13 -0400)]
man/service: document behaviour on failure
https://bugs.freedesktop.org/show_bug.cgi?id=38355
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 00:57:25 +0000 (20:57 -0400)]
catalog: remove broken links to wiki
https://bugs.freedesktop.org/show_bug.cgi?id=58359
Zbigniew Jędrzejewski-Szmek [Wed, 20 Mar 2013 00:54:04 +0000 (20:54 -0400)]
journalct: beef up entry listing
The ability to dump catalog entries in full and by id is added.
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:10:51 +0000 (18:10 -0400)]
systemd-python: small cleanups
- separate methods with two empty lines for clarity
- avoid malloc(0) by specyfing private data size as -1
- add method name in error messages
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:10:51 +0000 (18:10 -0400)]
systemd-python: add journal.get_catalog()
This one wraps sd_journal_get_catalog_from_message_id.
Thanks to Python namespacing, we can stick to a shorter name.
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:10:51 +0000 (18:10 -0400)]
systemd-python: add _Reader.get_catalog()
This one wraps sd_journaal_get_catalog.
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:10:51 +0000 (18:10 -0400)]
man/catalog: fix synopsis and remind to free
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:10:51 +0000 (18:10 -0400)]
systemd-python: add _Reader.closed attribute
This should make the file interface of _Reader complete.
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:00:57 +0000 (18:00 -0400)]
journalctl: use _cleanup_ in one function
Kay Sievers [Wed, 20 Mar 2013 00:26:17 +0000 (01:26 +0100)]
rules: move builtin calls before the permissions section
<heftig> kay: systemd commit
22582bb broke cups usb printing for me
<heftig> because the "lp" group isn't applied anymore
<heftig> SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"
<heftig> moving this line to the end of 50-udev-default.rules restores correct behavior, as it's after usb_id
Harald Hoyer [Tue, 19 Mar 2013 13:55:50 +0000 (14:55 +0100)]
shell-completion/bash/journalctl: suppress stderr
Ozan Çağlayan [Tue, 19 Mar 2013 13:49:30 +0000 (15:49 +0200)]
keymap: Remap microphone mute and touchpad toggle for Lenovo U300s
Separate out Ideapad U300s to its own line and add Microphone mute key.
Signed-off-by: Martin Pitt <martinpitt@gnome.org>
Martin Pitt [Tue, 19 Mar 2013 12:10:29 +0000 (13:10 +0100)]
keymaps: Use F20 for micmute keys to be friendly to X.org
The "micmute" key code is outside of X.org's allowed range [1].
gnome-settings-daemon interprets F20 as "microphone mute" these days [2], so
use this until X.org either gets fixed or obsoleted.
[1] https://bugzilla.gnome.org/show_bug.cgi?id=692071
[2] https://mail.gnome.org/archives/commits-list/2013-January/msg05822.html
Ozan Çağlayan [Tue, 19 Mar 2013 09:34:57 +0000 (11:34 +0200)]
keymap: Fix touchpad toggling on Lenovo IdeaPad U300s
IdeaPad U300s needs mapping 0xf1 to f21 just like Lenovo V480.
Signed-off-by: Martin Pitt <martinpitt@gnome.org>
Zbigniew Jędrzejewski-Szmek [Tue, 19 Mar 2013 00:31:21 +0000 (20:31 -0400)]
logind: exploit previous cleanups and simplify returns
Colin Walters [Mon, 18 Mar 2013 18:38:48 +0000 (14:38 -0400)]
logind: Make more use of cleanup macros
Colin Walters [Mon, 18 Mar 2013 18:38:24 +0000 (14:38 -0400)]
Use bus_maybe_send_reply() where applicable
This is a followup to: commit
1a37b9b9043ef83e9900e460a9a1fccced3acf89
It will fix denial messages from dbus-daemon between gdm and
systemd-logind on logging into GNOME due to this.
See the previous commit for more details.
Zbigniew Jędrzejewski-Szmek [Sun, 4 Nov 2012 15:19:04 +0000 (16:19 +0100)]
sd-journal: do not require path to be absolute
Seems natural to be able to specify relative directory,
e.g. with journalctl -D. And even if, this should be checked
in front-end code, not in the library.
Zbigniew Jędrzejewski-Szmek [Mon, 18 Mar 2013 03:36:25 +0000 (23:36 -0400)]
journal,shared: add _cleanup_journal_close_
Zbigniew Jędrzejewski-Szmek [Mon, 18 Mar 2013 02:00:01 +0000 (22:00 -0400)]
journal: use _cleanup_
One log_debug() moved to match order in other functions.
Zbigniew Jędrzejewski-Szmek [Mon, 18 Mar 2013 01:52:57 +0000 (21:52 -0400)]
journal: use sd_journal_close on error in sd_journal_new
Zbigniew Jędrzejewski-Szmek [Mon, 18 Mar 2013 05:12:25 +0000 (01:12 -0400)]
systemd-python: allow Reader to be used as a context manager
Daniel Buch [Sat, 16 Mar 2013 09:00:03 +0000 (10:00 +0100)]
test-strv.c: test STRV_FOREACH_PAIR macro
Kay Sievers [Mon, 18 Mar 2013 18:31:34 +0000 (19:31 +0100)]
udev: rename kernel command line option to net.ifnames=
Tom Gundersen [Mon, 18 Mar 2013 17:09:46 +0000 (18:09 +0100)]
man: udev - clarify when RUN is executed
Unlike IMPORT and PROGRAM, RUN is not executed inline, but after all the rules of the given event have been processed.
Tom Gundersen [Sat, 16 Mar 2013 08:26:47 +0000 (17:26 +0900)]
udev: builtin - use RUN rather than IMPORT for loading modules
The 'kmod' builtin, like the 'firmware' and 'uaccess' builtins, does not set
any variables, so don't use IMPORT.
Notice that this changes the behaviour slightly: the processing of subsequent
rules for the event that loads a module will no longer wait for the module
loading to finish. This is not expected to cause any problems, but we should
keep an eye on it.
Tom Gundersen [Sun, 17 Mar 2013 04:23:33 +0000 (13:23 +0900)]
udev: net-name-slot - disable by kernel command line switch
The properties will still be set in the udev database, but they will not be used
for setting the interface names. As for the other kernel commandline switches,
we allow it to be prefixed by 'rd.' to only apply in the initrd.
Tom Gundersen [Mon, 18 Mar 2013 14:58:37 +0000 (15:58 +0100)]
man: udev - move documentation of configuration file
Moved from udev(7) to systemd-udevd.service(8), where the rest of the
documentation of the configuration of the daemon lives.
Kay Sievers [Mon, 18 Mar 2013 14:22:32 +0000 (15:22 +0100)]
udev: ifdef all firmware special handling
Tom Gundersen [Mon, 18 Mar 2013 14:12:18 +0000 (15:12 +0100)]
udev: make firmware loading optional and disable by default
Distros that whish to support old kernels should set
--with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware"
to retain the old behaviour.
Tom Gundersen [Mon, 18 Mar 2013 13:17:24 +0000 (14:17 +0100)]
man: udev - document 'builtin'
The new IMPORT{builtin} and RUN{builtin} were not documented. Also make it clear
that RUN= is really an alias for RUN{program}=.
Kay Sievers [Sat, 16 Mar 2013 15:29:29 +0000 (16:29 +0100)]
units: initrd, multi-user - add a few more words to Description=
Kay Sievers [Sat, 16 Mar 2013 15:21:47 +0000 (16:21 +0100)]
man: bootup - intrd-fs.target --> initrd.target
Kay Sievers [Sat, 16 Mar 2013 15:10:22 +0000 (16:10 +0100)]
journal: pass the *pid* to sd_pid_get_owner_uid()
Zbigniew Jędrzejewski-Szmek [Sat, 16 Mar 2013 02:48:45 +0000 (22:48 -0400)]
timer: fix grammar in message
Michal Sekletar [Thu, 14 Mar 2013 17:12:27 +0000 (18:12 +0100)]
core: reuse the same /tmp, /var/tmp and inaccessible dir
All Execs within the service, will get mounted the same
/tmp and /var/tmp directories, if service is configured with
PrivateTmp=yes. Temporary directories are cleaned up by service
itself in addition to systemd-tmpfiles. Directory which is mounted
as inaccessible is created at runtime in /run/systemd.
Josh Triplett [Fri, 15 Mar 2013 15:50:12 +0000 (08:50 -0700)]
TODO: uses for SO_REUSEPORT
The new socket option SO_REUSEPORT would enable some new functionality;
add it to TODO.
Nathaniel Chen [Tue, 12 Mar 2013 23:16:44 +0000 (16:16 -0700)]
smack-setup: enable Smack/CIPSO mapping
CIPSO is the Common IP Security Option, an IETF standard for setting
security levels for a process sending packets. In Smack kernels,
CIPSO headers are mapped to Smack labels automatically, but can be changed.
This patch writes label/category mappings from /etc/smack/cipso/ to
/sys/fs/smackfs/cipso2. The mapping format is "%s%4d%4d"["%4d"]...
For more information about Smack and CIPSO, see:
https://kernel.org/doc/Documentation/security/Smack.txt
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2013 03:23:06 +0000 (23:23 -0400)]
smack-setup: extract rule writing into a separate function
Check all errors.
Umut Tezduyar [Wed, 13 Mar 2013 09:27:38 +0000 (10:27 +0100)]
units: ignore systemd-sysctl on shutdown
No need to try to stop systemd-sysctl on shutdown as
this service doesn't have ExecStop= anyways.
Umut Tezduyar [Mon, 11 Mar 2013 15:30:10 +0000 (16:30 +0100)]
core: keep mountinfo .mounts until late shutdown
.mount units coming from /proc/self/mountinfo file are
unmounted after local-fs.target is reached during shutdown.
Problem: .mount units popping up in mountinfo file are
added to systemd without any dependency. For that reason,
they are the first one to be unmounted during shutdown.
Whichever program mounted the file system deserves a
chance to also unmount it. This patch ensures that
/proc/self/mountinfo units will be unmounted after
local-fs.target during shutdown (if they haven't been
unmounted already)
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2013 22:44:03 +0000 (18:44 -0400)]
man: fix grammar
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 23:01:10 +0000 (19:01 -0400)]
systemd-python: add systemd.daemon wrapping sd-daemon
Please see the documentation (e.g. pydoc3 systemd.daemon) for full
description. As usual, systemd._daemon wraps the raw interface, while
systemd.daemon provides the more pythonic API. sd_listen_fds,
sd_booted, sd_is_fifo, sd_is_socket, sd_is_socket_unix,
sd_is_socket_inet, sd_is_mq, and SD_LISTEN_FDS_START are currently
wrapped.
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2013 22:57:44 +0000 (18:57 -0400)]
systemd-activate: pass environment variables through
I need this to test half-installed socket-activated python
script, which requires PYTHONPATH and LD_LIBRARY_PATH set.
I assume that other people might find it useful to.
-E VAR passes through VAR from the environment, while
-E VAR=value sets VAR=value.
systemd-activate -E PYTHONPATH=/var/tmp/inst1/usr/lib64/python3.3/site-packages -E LD_LIBRARY_PATH=/var/tmp/inst1/usr/lib -l 2000 python3 -c 'from systemd.daemon import listen_fds; print(listen_fds())'
Kay Sievers [Fri, 15 Mar 2013 18:30:53 +0000 (19:30 +0100)]
sysctl: default - add safe sysrq options
Kay Sievers [Fri, 15 Mar 2013 16:48:12 +0000 (17:48 +0100)]
TODO: update
Lennart Poettering [Fri, 15 Mar 2013 15:48:48 +0000 (16:48 +0100)]
nspawn: don't make assumptions about the size of pid_t
Lennart Poettering [Fri, 15 Mar 2013 15:46:35 +0000 (16:46 +0100)]
logind: explicitly create state directories during early initialization
Strictly speaking this isn't necessary for the /run/systemd/seats/
directory, since that is created anyway as the first seat is found, and
seat0 is always found. But let's be explicit here, and also create the
sessions/ and users/ directories, so that people can always install
inotify watches from very early on, even when nobody logged in yet.
Lennart Poettering [Fri, 15 Mar 2013 15:41:40 +0000 (16:41 +0100)]
sd-booted: update sd_booted() check a bit
Previously we were testing whether /sys/fs/cgroup/systemd/ was a mount
point. This might be problematic however, when the cgroup trees are bind
mounted into a container from the host (which should be absolutely
valid), which might create the impression that the container was running
systemd, but only the host actually is.
Replace this by a check for the existance of the directory
/run/systemd/system/, which should work unconditionally, since /run can
never be a bind mount but *must* be a tmpfs on systemd systems, which is
flushed at boots. This means that data in /run always reflects
information about the current boot, and only of the local container,
which makes it the perfect choice for a check like this.
(As side effect this is nice to Ubuntu people who now use logind with
the systemd cgroup hierarchy, where the old sd_booted() check misdetects
systemd, even though they still run legacy Upstart.)
Lennart Poettering [Fri, 15 Mar 2013 15:41:13 +0000 (16:41 +0100)]
strv: fix STRV_FOREACH_PAIR macro definition