chiark / gitweb /
8 years agoSmall cleanup
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 12:28:10 +0000 (08:28 -0400)]
Small cleanup

8 years agoreadahead: be more verbose about creation failures
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 23:05:43 +0000 (19:05 -0400)]
readahead: be more verbose about creation failures

systemd-readahead reports "Failed to create shared memory segment:
No such file or directory", but it's unclear how it can happen. Be
more verbose about failures.

8 years agoAdd set_consume which always takes ownership
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 03:12:15 +0000 (23:12 -0400)]
Add set_consume which always takes ownership

Freeing in error path is the common pattern with set_put().

8 years agoStandarize on one spelling of symlink error message
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 00:51:29 +0000 (20:51 -0400)]
Standarize on one spelling of symlink error message

It's polite to print the name of the link that wasn't created,
and it makes little sense to print the target.

8 years agotest: make it easier to override kernel version
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 00:39:40 +0000 (20:39 -0400)]
test: make it easier to override kernel version

8 years agosystemd: fall back to mounting /sys/fs/cgroup sans xattr
Zbigniew Jędrzejewski-Szmek [Tue, 23 Apr 2013 00:39:03 +0000 (20:39 -0400)]
systemd: fall back to mounting /sys/fs/cgroup sans xattr

xattrs on cgroup fs were added back in v3.6-rc3-3-g03b1cde. But we
support kernels >= 2.6.39, and we should also support kernels compiled
w/o xattr support, even if systemd is compiled with xattr support.
Fall back to mounting without xattr support.

Tested-by: Colin Walters <>
8 years agokdbus: update kdbus.h from upstream
Kay Sievers [Wed, 24 Apr 2013 03:19:50 +0000 (05:19 +0200)]
kdbus: update kdbus.h from upstream

8 years agotimer: make sure we restart timers even if units are still running or if one of their...
Lennart Poettering [Tue, 23 Apr 2013 20:42:31 +0000 (17:42 -0300)]
timer: make sure we restart timers even if units are still running or if one of their conditions fails

8 years agoupdate TODO
Lennart Poettering [Tue, 23 Apr 2013 18:55:41 +0000 (15:55 -0300)]
update TODO

8 years agounit: rework trigger dependency logic
Lennart Poettering [Tue, 23 Apr 2013 18:53:16 +0000 (15:53 -0300)]
unit: rework trigger dependency logic

Instead of having explicit type-specific callbacks that inform the
triggering unit when a triggered unit changes state, make this generic
so that state changes are forwarded betwee any triggered and triggering

Also, get rid of UnitRef references from automount, timer, path units,
to the units they trigger and rely exclsuively on UNIT_TRIGGER type

8 years agounits: update user@.service to reflect new user cgroup paths
Lennart Poettering [Tue, 23 Apr 2013 14:21:14 +0000 (11:21 -0300)]
units: update user@.service to reflect new user cgroup paths

8 years agobus: add cal to determine machine id of an owner of a service
Lennart Poettering [Tue, 23 Apr 2013 14:18:17 +0000 (11:18 -0300)]
bus: add cal to determine machine id of an owner of a service

8 years agoman: link systemd-tmpfiles-setup-dev.service
Umut Tezduyar [Tue, 23 Apr 2013 07:56:32 +0000 (09:56 +0200)]
man: link systemd-tmpfiles-setup-dev.service

8 years agobus: parse capability kdbus meta data of messages
Lennart Poettering [Tue, 23 Apr 2013 03:14:30 +0000 (00:14 -0300)]
bus: parse capability kdbus meta data of messages

8 years agobus: parse audit metadata from kdbus messages
Lennart Poettering [Tue, 23 Apr 2013 02:38:38 +0000 (23:38 -0300)]
bus: parse audit metadata from kdbus messages

8 years agobus: parse owner uid from cgroup path, too
Lennart Poettering [Tue, 23 Apr 2013 02:27:38 +0000 (23:27 -0300)]
bus: parse owner uid from cgroup path, too

8 years agocgroup: make sure all our cgroup objects have a suffix and are properly escaped
Lennart Poettering [Tue, 23 Apr 2013 02:10:13 +0000 (23:10 -0300)]
cgroup: make sure all our cgroup objects have a suffix and are properly escaped

Session objects will now get the .session suffix, user objects the .user
suffix, nspawn containers the .nspawn suffix.

This also changes the user cgroups to be named after the numeric UID
rather than the username, since this allows us the parse these paths
standalone without requiring access to the cgroup file system.

This also changes the mapping of instanced units to cgroups. Instead of
mapping foo@bar.service to the cgroup path /user/foo@.service/bar we
will now map it to /user/foo@.service/foo@bar.service, in order to
ensure that all our objects are properly suffixed in the tree.

8 years agocore: there's no point to complain so loudly about non-isolatable boot targets
Lennart Poettering [Tue, 23 Apr 2013 02:09:02 +0000 (23:09 -0300)]
core: there's no point to complain so loudly about non-isolatable boot targets

8 years agonspawn: suffix the nspawn cgroups with ".nspawn"
Lennart Poettering [Mon, 22 Apr 2013 20:26:06 +0000 (17:26 -0300)]
nspawn: suffix the nspawn cgroups with ".nspawn"

As discussed with Dan Berrange it's a good idea to suffix all objects in
the cgroup tree with ".something", so that when the system is
partitioned using a resource management tool we can drop objects of
different types into the same partition directory without generate
namespace conflicts.

We'l add this to the Pax Control Group document as soon as write access
to the fdo wiki is restored.

8 years agonspawn: always use cg_get_path() to determine fs path for a cgroup
Lennart Poettering [Mon, 22 Apr 2013 20:11:05 +0000 (17:11 -0300)]
nspawn: always use cg_get_path() to determine fs path for a cgroup

8 years agoupdate TODO
Lennart Poettering [Mon, 22 Apr 2013 20:03:59 +0000 (17:03 -0300)]
update TODO

8 years agounits: rename systemd-static-nodes -> systemd-tmpfiles-setup-dev
Tom Gundersen [Mon, 22 Apr 2013 19:57:39 +0000 (21:57 +0200)]
units: rename systemd-static-nodes -> systemd-tmpfiles-setup-dev

This is really just a special case of systemd-tmpfiles-setup, moreover it could easily create more than static nodes.

8 years agoshell-completion: add shell completion for "systemctl help"
Harald Hoyer [Mon, 22 Apr 2013 09:38:40 +0000 (11:38 +0200)]
shell-completion: add shell completion for "systemctl help"

8 years agosystemd,nspawn: use extended attributes to store metadata
Zbigniew Jędrzejewski-Szmek [Mon, 22 Apr 2013 00:25:01 +0000 (20:25 -0400)]
systemd,nspawn: use extended attributes to store metadata

All attributes are stored as text, since root_directory is already
text, and it seems easier to have all of them in text format.

Attributes are written in the trusted. namespace, because the kernel
currently does not allow user. attributes on cgroups. This is a PITA,
and CAP_SYS_ADMIN is required to *read* the attributes. Alas.

A second pipe is opened for the child to signal the parent that the
cgroup hierarchy has been set up.

8 years agobus: implement client logic for fd passing
Lennart Poettering [Mon, 22 Apr 2013 01:24:50 +0000 (22:24 -0300)]
bus: implement client logic for fd passing

8 years agoTODO: remove dbus items which we will not touch anymore
Kay Sievers [Sat, 20 Apr 2013 17:26:28 +0000 (19:26 +0200)]
TODO: remove dbus items which we will not touch anymore

8 years agoTODO: journal enhancements
Josh Triplett [Fri, 19 Apr 2013 21:13:42 +0000 (14:13 -0700)]
TODO: journal enhancements

8 years agohwdb: update
Kay Sievers [Sat, 20 Apr 2013 16:41:57 +0000 (18:41 +0200)]
hwdb: update

8 years agobuild-sys: prevent library underlinking
Evangelos Foutras [Fri, 19 Apr 2013 21:17:08 +0000 (00:17 +0300)]
build-sys: prevent library underlinking

Underlinking can cause subtle bugs like the recent issue with
libnss_myhostname (which was fixed in commit 1e335af7).

8 years agonss-myhostname: ensure that glibc's assert is used
Dave Reisner [Fri, 19 Apr 2013 20:31:25 +0000 (16:31 -0400)]
nss-myhostname: ensure that glibc's assert is used

8 years agologind-dbus: initialize result variable
Lukas Nykryn [Fri, 19 Apr 2013 11:58:58 +0000 (13:58 +0200)]
logind-dbus: initialize result variable

8 years agocrypt-setup-generator: correctly check return of strdup
Lukas Nykryn [Fri, 19 Apr 2013 11:58:57 +0000 (13:58 +0200)]
crypt-setup-generator: correctly check return of strdup

8 years agocore/killall: use procfs_file_alloca
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 21:19:38 +0000 (17:19 -0400)]
core/killall: use procfs_file_alloca

8 years agoReintroduce f_type comparison macro
Harald Hoyer [Fri, 19 Apr 2013 11:44:56 +0000 (13:44 +0200)]
Reintroduce f_type comparison macro

This reverts commit 4826f0b7b5c0aefa08b8cc7ef64d69027f84da2c.

Because statfs.t_type can be int on some architecures, we have to cast
the const magic to the type, otherwise the compiler warns about
signed/unsigned comparison, because the magic can be 32 bit unsigned.

statfs(2) man page is also wrong on some systems, because
f_type is not __SWORD_TYPE on some architecures.

The following program:

int main(int argc, char**argv)
        struct statfs s;
        statfs(argv[1], &s);

printf("sizeof(f_type) = %d\n", sizeof(s.f_type));
printf("sizeof(__SWORD_TYPE) = %d\n", sizeof(__SWORD_TYPE));
printf("sizeof(long) = %d\n", sizeof(long));
printf("sizeof(int) = %d\n", sizeof(int));
if (sizeof(s.f_type) == sizeof(int)) {
printf("f_type = 0x%x\n", s.f_type);
} else {
                printf("f_type = 0x%lx\n", s.f_type);
        return 0;

executed on s390x gives for a btrfs:

sizeof(f_type) = 4
sizeof(__SWORD_TYPE) = 8
sizeof(long) = 8
sizeof(int) = 4
f_type = 0x9123683e

8 years agoUpdate NEWS
Zbigniew Jędrzejewski-Szmek [Thu, 18 Apr 2013 23:59:12 +0000 (19:59 -0400)]
Update NEWS

8 years agosystemd-python: wrap sd_journal_add_conjunction
Zbigniew Jędrzejewski-Szmek [Thu, 18 Apr 2013 23:37:26 +0000 (19:37 -0400)]
systemd-python: wrap sd_journal_add_conjunction

8 years agonspawn: create empty /etc/resolv.conf if necessary
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 18:13:09 +0000 (14:13 -0400)]
nspawn: create empty /etc/resolv.conf if necessary

nspawn will overmount resolv.conf if it exists. Since e.g.
default install with yum doesn't create /etc/resolv.conf,
a container created with yum will not have network. This
seems undesirable, and since we overmount the file anyway,
let's create it too.

Also, mounting a read-write /etc/resolv.conf in the container
is treated as a failure, since it makes it possible to
modify hosts /etc/resolv.conf from inside the container.

8 years agobuild-sys: run 'make update-man-list' v202
Lennart Poettering [Thu, 18 Apr 2013 23:11:38 +0000 (01:11 +0200)]
build-sys: run 'make update-man-list'

8 years agobuild-sys: prepare release 202
Lennart Poettering [Thu, 18 Apr 2013 22:41:24 +0000 (00:41 +0200)]
build-sys: prepare release 202

8 years agojournal: when iterating through a file we might lose messages when changing direction.
Marius Vollmer [Thu, 18 Apr 2013 20:34:36 +0000 (22:34 +0200)]
journal: when iterating through a file we might lose messages when changing direction.

8 years agoman: document the new login class 'background'
Lennart Poettering [Thu, 18 Apr 2013 20:20:56 +0000 (22:20 +0200)]
man: document the new login class 'background'

8 years agoupdate TODO
Lennart Poettering [Thu, 18 Apr 2013 20:19:33 +0000 (22:19 +0200)]
update TODO

8 years agocryptsetup: ask for password, if key file cannot be accessed
Harald Hoyer [Thu, 18 Apr 2013 07:41:23 +0000 (09:41 +0200)]
cryptsetup: ask for password, if key file cannot be accessed

If the key file cannot be accessed, we can at least ask for the

8 years agosystemd-logind: Fix linking by reordering libraries in LDADD
Josh Triplett [Thu, 18 Apr 2013 18:32:26 +0000 (11:32 -0700)]
systemd-logind: Fix linking by reordering libraries in LDADD

libsystemd-audit needs functions from libsystemd-shared, so
libsystemd-audit needs to appear first.  Otherwise:

  CCLD   systemd-logind
./.libs/libsystemd-audit.a(audit.o): In function `audit_session_from_pid':
/home/josh/src/systemd/src/shared/audit.c:50: undefined reference to `detect_container'

8 years agobus: test - add hack to receive messages
Kay Sievers [Thu, 18 Apr 2013 17:05:10 +0000 (19:05 +0200)]
bus: test - add hack to receive messages

8 years agobus: catch up with kernel changes
Kay Sievers [Thu, 18 Apr 2013 16:54:17 +0000 (18:54 +0200)]
bus: catch up with kernel changes

8 years agobuildsys: Add --disable-tests to avoid building tests
Henrik Grindal Bakken [Thu, 18 Apr 2013 12:40:24 +0000 (14:40 +0200)]
buildsys: Add --disable-tests to avoid building tests

This patch adds --disable-tests to configure.  It is based on a patch
posted by Thierry Reding in 2010.  The motivation for adding it is that
some tests fail link-time when cross-compiling.

The patch adds a new Makefile variable -- manual_tests -- and uses
that instead of noinst_PROGRAMS.  However, if ENABLE_TESTS is true,
the former is added to the latter.  It also renames noinst_tests to
simply tests.

8 years agoRevert f_type fixups
Harald Hoyer [Thu, 18 Apr 2013 12:50:42 +0000 (14:50 +0200)]
Revert f_type fixups

This reverts commit a858b64dddf79177e12ed30f5e8c47a1471c8bfe.
This reverts commit aea275c43194b6ac519ef907b62c5c995050fde0.
This reverts commit fc6e6d245ee3989c222a2a8cc82a33475f9922f3.
This reverts commit c4073a27c555aeceac87a3b02a83141cde641a1e.
This reverts commit cddf148028f525be8176e7f1cbbf4f862bd287f6.
This reverts commit 8c68a70170b31f93c287f29fd06c6c17edaf19ad.

The constants are now casted to __SWORD_TYPE, which should resolve the
compiler warnings about signed vs unsigned.

After talking to Kay, we concluded:

This should be fixed in the kernel, not worked around in userspace tools.

Architectures cannot use int and expect magic constants lager than INT_MAX
to work correctly. The kernel header needs to be fixed.

Even coreutils cannot handle it:
  #define RAMFS_MAGIC  0x858458f6
  # stat -f -c%t /

  #define BTRFS_SUPER_MAGIC 0x9123683E
  # stat -f -c%t /mnt

Although I found the perfect working macro to fix the thing :)

        __extension__ ({                                                \
                        bool _ret = false;                              \
                        switch(f) { case c: _ret=true; };               \
                        ( _ret );                                       \

8 years agomacro.h: let F_TYPE_CMP() macro fail to compile, if second parameter is not const
Harald Hoyer [Thu, 18 Apr 2013 10:05:41 +0000 (12:05 +0200)]
macro.h: let F_TYPE_CMP() macro fail to compile, if second parameter is not const

If the magic parameter is not a const, then the macro does not work, so
better fail to compile, than be surprised afterwards.

8 years agofileio.c: do not parse comments after non-whitespace chars
Harald Hoyer [Thu, 18 Apr 2013 08:15:25 +0000 (10:15 +0200)]
fileio.c: do not parse comments after non-whitespace chars

systemd does not want to understand comments after the first
non-whitespace char occured.

key=foo #comment  will result into key == "foo #comment"
key="foo" #comment  will result into key == "foo#comment"
"key= #comment" will result into key == "#comment"
"key #comment" is an invalid line

8 years agosd-login.c: fixup for d70964d0
Harald Hoyer [Thu, 18 Apr 2013 08:16:17 +0000 (10:16 +0200)]
sd-login.c: fixup for d70964d0

p pointer is not _cleanup_free_

8 years agomove _cleanup_ attribute in front of the type
Harald Hoyer [Thu, 18 Apr 2013 07:11:22 +0000 (09:11 +0200)]
move _cleanup_ attribute in front of the type

8 years agologin/sd-login.c: make use of _cleanup_free_ and friends
Harald Hoyer [Wed, 17 Apr 2013 12:05:24 +0000 (14:05 +0200)]
login/sd-login.c: make use of _cleanup_free_ and friends

8 years agorename CMP_F_TYPE to F_TYPE_CMP
Harald Hoyer [Thu, 18 Apr 2013 06:06:55 +0000 (08:06 +0200)]

8 years agoAdd ugly CMP_F_TYPE() macro
Harald Hoyer [Thu, 18 Apr 2013 05:34:25 +0000 (07:34 +0200)]
Add ugly CMP_F_TYPE() macro

On some architectures (like s390x) the kernel has the type int for
f_type, but long in userspace.
Assigning the 32 bit magic constants from linux/magic.h to the 31 bit
signed f_type in the kernel, causes f_type to be negative for some
glibc extends the int to long for those architecures in 64 bit mode, so
the negative int becomes a negative long, which cannot be simply
compared to the original magic constant, because the compiler would
automatically cast the constant to long.
To workaround this issue, we also compare to the (int)MAGIC value in a
macro. Of course, we could do #ifdef with the architecure, but it has to
be maintained, and the magic constants are 32 bit anyway.

Someday, when the int is unsigned or long for all architectures, we can
remove this macro again. Until then, keep it as simple as it can be.

8 years agocore/execute: only clean the environment, if we have one
Harald Hoyer [Thu, 18 Apr 2013 05:15:03 +0000 (07:15 +0200)]
core/execute: only clean the environment, if we have one

8 years agobuild-sys: add sd_journal_add_conjunction() to symbol versioning file
Lennart Poettering [Thu, 18 Apr 2013 01:12:06 +0000 (03:12 +0200)]
build-sys: add sd_journal_add_conjunction() to symbol versioning file

8 years agoman: document the new sd_journal_add_conjunction() call
Lennart Poettering [Thu, 18 Apr 2013 01:11:44 +0000 (03:11 +0200)]
man: document the new sd_journal_add_conjunction() call

8 years agoupdate TODO
Lennart Poettering [Thu, 18 Apr 2013 00:54:52 +0000 (02:54 +0200)]
update TODO

8 years agoMove bus_error to dbus-common and remove bus_error_message_or_strerror
Simon Peeters [Wed, 10 Apr 2013 22:39:01 +0000 (00:39 +0200)]
Move bus_error to dbus-common and remove bus_error_message_or_strerror

bus_error and bus_error_message_or_strerror dit almost exactly the same,
so use only one of them and place it in dbus-common.

8 years agocryptsetup-generator: add support for rd.luks.key=
Harald Hoyer [Thu, 11 Apr 2013 13:44:33 +0000 (15:44 +0200)]
cryptsetup-generator: add support for rd.luks.key=

Also clarify rd.luks.uuid and luks.uuid in the manual.

8 years agoman: document that timeout=0 is the default for entries in crypttab
Lennart Poettering [Thu, 18 Apr 2013 00:21:01 +0000 (02:21 +0200)]
man: document that timeout=0 is the default for entries in crypttab

8 years agocryptsetup: set the timeout to 0 by default
Harald Hoyer [Fri, 12 Apr 2013 07:45:26 +0000 (09:45 +0200)]
cryptsetup: set the timeout to 0 by default

cryptsetup itself has no timeout as default from the beginning. So the
default timeout has been "0" from the beginning.

8 years agoexecute: always add in EXECUTABLE= field when we log something about execution
Lennart Poettering [Thu, 18 Apr 2013 00:18:33 +0000 (02:18 +0200)]
execute: always add in EXECUTABLE= field when we log something about execution

8 years agosystemctl: drop usage of "internally loaded modules"
Lennart Poettering [Thu, 18 Apr 2013 00:10:44 +0000 (02:10 +0200)]
systemctl: drop usage of "internally loaded modules"

I wouldn't know what "internally" is supposed to mean hear, and we use
this terminology in this context nowhere else, so let's drop this.

8 years agoreadahead: let readahead run for a little longer
Lennart Poettering [Wed, 17 Apr 2013 20:23:21 +0000 (22:23 +0200)]
readahead: let readahead run for a little longer

Especially slower systems need more than 10s for starting the session,
so let's bump this to 30s.

8 years agoupdate TODO
Lennart Poettering [Wed, 17 Apr 2013 20:23:18 +0000 (22:23 +0200)]
update TODO

8 years agofixup for cddf148028f52
Harald Hoyer [Wed, 17 Apr 2013 16:58:06 +0000 (18:58 +0200)]
fixup for cddf148028f52

Instead of making a type up, just use __SWORD_TYPE, after reading

Too bad, this does not fix s390x because __SWORD_TYPE is (long int) and
the kernel uses (int) to fill in the field!!!!!!

8 years agobootchart: Fix errno usage.
Auke Kok [Wed, 17 Apr 2013 16:49:03 +0000 (09:49 -0700)]
bootchart: Fix errno usage.

8 years agoupdate TODO
Lennart Poettering [Wed, 17 Apr 2013 16:48:23 +0000 (18:48 +0200)]
update TODO

8 years agobus: replace aligned_alloc() with memalign() everywhere
Lennart Poettering [Wed, 17 Apr 2013 16:45:45 +0000 (18:45 +0200)]
bus: replace aligned_alloc() with memalign() everywhere

aligned_alloc() is C11 and not available everywhere. Also it would
require us to align the size value. So let's just invoke memalign()
instead, which is universally available and doesn't have any alignment
restrictions on the size parameter.

8 years agocore: Remove unnecessary typedef
Henrik Grindal Bakken [Wed, 17 Apr 2013 16:08:37 +0000 (18:08 +0200)]
core: Remove unnecessary typedef

ExecContext isn't used in this header file, and everything seems to
build just fine without this typedef.  The typedef doesn't really belong
here, and at least my gcc-4.4.6 gives an error on type redefined.

8 years agofixup 8c68a7017 and cast to (unsigned long)
Harald Hoyer [Wed, 17 Apr 2013 16:23:17 +0000 (18:23 +0200)]
fixup 8c68a7017 and cast to (unsigned long)

8 years agofixed statfs.f_type signed vs unsigned comparisons
Harald Hoyer [Wed, 17 Apr 2013 16:03:39 +0000 (18:03 +0200)]
fixed statfs.f_type signed vs unsigned comparisons

statfs.f_type is signed but the filesystem magics are unsigned.
Casting the magics to signed will not make the signed.

Problem seen on big-endian 64bit s390x with __fsword_t 8 bytes.

Casting statfs.f_type to unsigned on the other hand will get us what we

8 years agoshell-completion: use -a to see "empty" properties
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 14:52:46 +0000 (10:52 -0400)]
shell-completion: use -a to see "empty" properties

8 years agoupdate TODO
Lennart Poettering [Wed, 17 Apr 2013 14:19:05 +0000 (16:19 +0200)]
update TODO

8 years agoTODO: add like "systemctl set-log-level debug"
Harald Hoyer [Wed, 17 Apr 2013 13:41:18 +0000 (15:41 +0200)]
TODO: add like "systemctl set-log-level debug"

8 years agocore/execute: report invalid environment variables from files
Harald Hoyer [Wed, 17 Apr 2013 13:25:02 +0000 (15:25 +0200)]
core/execute: report invalid environment variables from files

Because "export key=val" is not supported by systemd, an error is logged
where the invalid assignment is coming from.

Introduce strv_env_clean_log() to log invalid environment assignments,
where logging is possible and allowed.

parse_env_file_internal() is modified to allow WHITESPACE in keys, to
report the issues later on.

8 years agoRevert "man/systemd.xml: change the signal names to kill systemd"
Harald Hoyer [Wed, 17 Apr 2013 12:58:08 +0000 (14:58 +0200)]
Revert "man/systemd.xml: change the signal names to kill systemd"

This reverts commit 432c30d25fc2a7b4939d5ea6c29708e1323a2b9c.

Suggestion was to fix bash instead. :-/

8 years agosystemctl:enable_sysv_units() more _cleanup_free_
Harald Hoyer [Wed, 17 Apr 2013 10:03:20 +0000 (12:03 +0200)]
systemctl:enable_sysv_units() more _cleanup_free_

8 years agofileio:parse_env_file_internal() fix environment file parsing
Harald Hoyer [Wed, 17 Apr 2013 09:02:56 +0000 (11:02 +0200)]
fileio:parse_env_file_internal() fix environment file parsing

parse_env_file_internal() could not parse the following lines correctly:

export key="val"

8 years agocore/execute.c: debug log final execve() with argv[]
Harald Hoyer [Wed, 10 Apr 2013 09:29:03 +0000 (11:29 +0200)]
core/execute.c: debug log final execve() with argv[]

8 years agoman/systemd.xml: change the signal names to kill systemd
Harald Hoyer [Wed, 17 Apr 2013 07:38:02 +0000 (09:38 +0200)]
man/systemd.xml: change the signal names to kill systemd

Using the signal name to put systemd in debug mode with bash results in:
 $ kill -s SIGRTMIN+22 1
 bash: kill: SIGRTMIN+22: invalid signal specification

whereas this works:
 $ kill -s SIGRTMAX-8 1

/usr/bin/kill understands both signal names, so just change them to the
bash names.

8 years agosystemctl: clarify usage of "--all" versus list-unit-files
Harald Hoyer [Wed, 10 Apr 2013 10:32:27 +0000 (12:32 +0200)]
systemctl: clarify usage of "--all" versus list-unit-files

Novice users might think, that
 $ systemctl --all
is equal to
 $ systemctl list-unit-files

8 years agojournalctl: specify "--unit=" and "--user-unit" multiple times
Harald Hoyer [Fri, 12 Apr 2013 07:14:43 +0000 (09:14 +0200)]
journalctl: specify "--unit=" and "--user-unit" multiple times

Previously only one "--unit=" or "--user-unit" could be specified.
With this patch, journalcrtl can show multiple units.

$ journalctl -u systemd-udevd.service -u sshd.service -u crond.service -b
-- Logs begin at Sa 2013-03-23 11:08:45 CET, end at Fr 2013-04-12
09:10:22 CEST. --
Apr 12 08:41:37 lenovo systemd[1]: Started udev Kernel Device Manager.
Apr 12 08:41:37 lenovo systemd[1]: Stopped udev Kernel Device Manager.
Apr 12 08:41:38 lenovo systemd[1]: Started udev Kernel Device Manager.
Apr 12 08:41:38 lenovo crond[291]: (CRON) INFO (Syslog will be used
instead of sendmail.)
Apr 12 08:41:38 lenovo crond[291]: (CRON) INFO (running with inotify
Apr 12 08:41:39 lenovo systemd[1]: Starting OpenSSH server daemon...
Apr 12 08:41:39 lenovo systemd[1]: Started OpenSSH server daemon.
Apr 12 08:41:39 lenovo sshd[355]: Server listening on port 22.
Apr 12 08:41:39 lenovo sshd[355]: Server listening on :: port 22.
Apr 12 08:41:39 lenovo mtp-probe[373]: checking bus 1, device 8:

8 years agojournal: add one more level on top with AND
Harald Hoyer [Thu, 11 Apr 2013 13:27:55 +0000 (15:27 +0200)]
journal: add one more level on top with AND

When using "-p" and "-b" in combination with "-u", the output is not
what you would expect. The reason is the sd_journal_add_disjunction()
call in add_matches_for_unit() and add_matches_for_user_unit(), which
adds two ORs without taking the other conditions to every OR.

Adding another level on top with AND and sd_journal_add_conjunction()
solves the problem.

Output before:

$ journalctl -o short-monotonic -ab -p 0 -u sshd.service

-- Reboot --
[    3.216305] lenovo systemd[1]: Starting OpenSSH server daemon...
-- Reboot --
[    3.168666] lenovo systemd[1]: Starting OpenSSH server daemon...
[    3.169639] lenovo systemd[1]: Started OpenSSH server daemon.
[36285.635389] lenovo systemd[1]: Stopped OpenSSH server daemon.
-- Reboot --
[   10.838657] lenovo systemd[1]: Starting OpenSSH server daemon...
[   10.913698] lenovo systemd[1]: Started OpenSSH server daemon.
[ 6881.035183] lenovo systemd[1]: Stopped OpenSSH server daemon.
-- Reboot --
[    6.636228] lenovo systemd[1]: Starting OpenSSH server daemon...
[    6.662573] lenovo systemd[1]: Started OpenSSH server daemon.
[    6.681148] lenovo sshd[397]: Server listening on port 22.
[    6.681379] lenovo sshd[397]: Server listening on :: port 22.

As we see, the output is from _every_ boot and priority 0 is not taken
into account.

Output after patch:

$ journalctl -o short-monotonic -ab -p 0 -u sshd.service
-- Logs begin at Sun 2013-02-24 20:54:44 CET, end at Tue 2013-03-19 14:58:21 CET. --

Increasing the priority:

$ journalctl -o short-monotonic -ab -p 6 -u sshd.service
-- Logs begin at Sun 2013-02-24 20:54:44 CET, end at Tue 2013-03-19 14:59:12 CET. --
[    6.636228] lenovo systemd[1]: Starting OpenSSH server daemon...
[    6.662573] lenovo systemd[1]: Started OpenSSH server daemon.
[    6.681148] lenovo sshd[397]: Server listening on port 22.
[    6.681379] lenovo sshd[397]: Server listening on :: port 22.

8 years agocore/device.c: fix possible segfault
Harald Hoyer [Fri, 12 Apr 2013 09:56:27 +0000 (11:56 +0200)]
core/device.c: fix possible segfault

better fail than segfault

systemd[1]: Failed to load device unit: Invalid argument
systemd[1]: Failed to process udev device event: Invalid argument

8 years agoTODO: remove fixed systemctl property bug
Harald Hoyer [Wed, 17 Apr 2013 06:48:07 +0000 (08:48 +0200)]
TODO: remove fixed systemctl property bug

8 years agotimedated: fixed NTP enabled: n/a
Harald Hoyer [Wed, 17 Apr 2013 06:28:41 +0000 (08:28 +0200)]
timedated: fixed NTP enabled: n/a

8 years agoconfigure: use AC_CHECK_TOOL for objcopy, strings and gperf
Martin Jansa [Tue, 16 Apr 2013 12:26:30 +0000 (14:26 +0200)]
configure: use AC_CHECK_TOOL for objcopy, strings and gperf

* using AC_PATH_TOOL does not allow to override it from shell environment
  which is useful when cross-compiling
* with external toolchain I have different HOST_PREFIX and HOST_SYS
  AC_PATH_TOOL is using HOST_SYS as prefix and fails to find objcopy
  which is available only as ${TARGET_PREFIX}-objcopy then it tries
  objcopy without prefix which is found on host, but that objcopy
  does not work for !host (e.g. arm when building on x86) libs

8 years agofileio: also escape $ and ` when writing out env vars
Mantas Mikulėnas [Sun, 14 Apr 2013 11:54:09 +0000 (14:54 +0300)]
fileio: also escape $ and ` when writing out env vars

These are also considered special by sh and bash.

8 years agobuild-sys: make sure kdbus.h is part of tarball
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 03:38:28 +0000 (23:38 -0400)]
build-sys: make sure kdbus.h is part of tarball

Also fix 'update-man-list' rule and add rules for new man pages.

8 years agojournalctl: show fields requested with --field in full
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 03:07:45 +0000 (23:07 -0400)]
journalctl: show fields requested with --field in full

I see little point in silently truncating fields when
they are explictly requested. With this change e.g.
  journalctl -b MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518 --field=BOOTCHART
works as expected.

8 years agosystemd: ignore hw timestamps in containers
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 00:29:59 +0000 (20:29 -0400)]
systemd: ignore hw timestamps in containers

They are irrelevant and misleading.

E.g. systemd-analyze:

  Startup finished in 6d 4h 15min 32.330s (kernel) + 49ms 914us (userspace) = 6d 4h 15min 32.380s


Startup finished in 53.735ms (userspace) = 53.735ms

which looks much better :)

8 years agobash-completion: --property support
Zbigniew Jędrzejewski-Szmek [Wed, 17 Apr 2013 00:38:41 +0000 (20:38 -0400)]
bash-completion: --property support

Just bash.

8 years agoman: fix syntax in nsenter example
Zbigniew Jędrzejewski-Szmek [Tue, 16 Apr 2013 03:54:56 +0000 (23:54 -0400)]
man: fix syntax in nsenter example

Apparently nsenter doesn't handle options concatenated together.
I'm pretty sure it worked at one point, but it seems like magic,
since each of those options can take arguments.

8 years agosd-messages.h: add new bootchart message id
Zbigniew Jędrzejewski-Szmek [Tue, 16 Apr 2013 02:42:27 +0000 (22:42 -0400)]
sd-messages.h: add new bootchart message id

8 years agocore/main: use _cleanup_
Zbigniew Jędrzejewski-Szmek [Tue, 16 Apr 2013 01:58:22 +0000 (21:58 -0400)]
core/main: use _cleanup_

8 years agoReport about syntax errors with metadata
Zbigniew Jędrzejewski-Szmek [Tue, 16 Apr 2013 02:25:58 +0000 (22:25 -0400)]
Report about syntax errors with metadata

The information about the unit for which files are being parsed
is passed all the way down. This way messages land in the journal
with proper UNIT=... or USER_UNIT=... attribution.

'systemctl status' and 'journalctl -u' not displaying those messages
has been a source of confusion for users, since the journal entry for
a misspelt setting was often logged quite a bit earlier than the
failure to start a unit.

Based-on-a-patch-by: Oleksii Shevchuk <>
8 years agocore: log a few more things under UNIT=...
Zbigniew Jędrzejewski-Szmek [Mon, 15 Apr 2013 05:40:44 +0000 (01:40 -0400)]
core: log a few more things under UNIT=...