Gergely Nagy [Wed, 16 May 2012 16:11:27 +0000 (18:11 +0200)]
delta: Support filtering what type of deltas to show
Not everyone is interested in every kind of deltas (and some might
even be interested knowing which files do not have overrides), so this
here is an implementation of a --type=LIST... option for
systemd-delta, that makes it possible to filter what subset of deltas
we want.
The available modifiers are masked, equivalent, redirected, overriden,
and unchanged - they should be self explanatory, and the man page
explains them in a little more detail anyway.
As a side effect, in case of overriden files, the diff output was made
optional.
By default, everything is shown (with a diff, if appropriate) except
for completely unchanged files.
Michal Schmidt [Sun, 13 May 2012 16:18:54 +0000 (18:18 +0200)]
unit: unit type dependent status messages
Instead of generic "Starting..." and "Started" messages for all unit use
type-dependent messages. For example, mounts will announce "Mounting..."
and "Mounted".
Add status messages to units of types that used to be entirely silent
(automounts, sockets, targets, devices). For unit types whose jobs are
instantaneous, report only the job completion, not the starting event.
Socket units with non-instantaneous jobs are rare (Exec*= is not used
often in socket units), so I chose not to print the starting messages
for them either.
This will hopefully give people better understanding of the boot.
Michal Schmidt [Mon, 14 May 2012 10:50:33 +0000 (12:50 +0200)]
unit: print the color status marks on the left
The alignment of the "[ OK ]" and "[FAILED]" status marks to the right
side of the terminal makes it difficult to link them with the messages
on the left if your console is wide.
I considered the options:
1. Align them to the 80th column regardless of the console width.
Disadvantage - either:
- truncating messages needlessly, not using available space; or
- If the message is long, write the mark over it. => ugly
2. Write them to the 80th column for short messages,
and further to the right for longer ones.
Disadvantage:
- jagged look
3. Write the marks on the left, before the message.
Disadvantage:
- Breaks tradition from RHL.
Advantages:
+ slightly simpler code
+ Will annoy holy-traditionalists.
I chose option 3.
BTW, Debian now uses similar marks on the left with its makefile-style
boot.
Special values of the "status" argument to status_vprintf are:
NULL - no status mark, no message indentation
"" - no status mark, message indented as if the mark was there
Michal Schmidt [Mon, 14 May 2012 10:23:23 +0000 (12:23 +0200)]
job: change red [ABORT] status to yellow [DEPEND]
The red "[ABORT]" for a dependency failure is too scary.
It suggests a crash. And it suggests a problem with the unit itself.
Change it to a yellow "[DEPEND]" message. The color communicates the
level of seriousness better.
Michal Schmidt [Wed, 9 May 2012 19:42:56 +0000 (21:42 +0200)]
dbus-manager: fix tainted string
The pointer to the end of the string was not advanced after adding
the "cgroups-missing" taint. If "local-hwclock" was detected too,
it would overwrite the previous string.
With 'e' always pointing to the end of the string, removing the last
delimiter is easier.
Michal Schmidt [Wed, 9 May 2012 07:18:44 +0000 (09:18 +0200)]
bash-completion: avoid losing backslashes in unit names
Use 'read -r' everywhere to consider backslashes as parts of the input line.
Single-quote the arguments to 'compgen -W' to avoid immediate expansion.
compgen itself will expand the argument.
Fixes a possible reason for "Failed to issue method call: Unknown unit"
after requesting completion.
Kay Sievers [Mon, 7 May 2012 11:15:25 +0000 (13:15 +0200)]
conf_files_list(): files-add() - do not canonicalize file names
File names in /etc, /run, /usr/lib are sorted/overridden by basename.
Sorting things like "/dev/null" with the basename "null" in the hash
of config files breaks the ordering and the overriding logic.
If the inode nr for each file is available in the pack file we can
easily detect replaced files (like they result from package upgrades)
which we can then skip to readahead.
readhead: temporarily lower the kernel's read_ahead_kb setting while collecting
While collecting readahead data we want to know exactly what userspace
accesses unblurred by the kernel's read_ahead_kb. Hence lower this
during collection, and raise it afterwards.
This is mostly based on ideas and code by Auke Kok.
service: explicitly remove control/ subcgroup after each control command
The kernel will only notify us of cgroups running empty if no subcgroups
exist anymore. Hence make sure we don't leave our own control/ subcgroup
around longer than necessary.
Lucas De Marchi [Thu, 26 Apr 2012 16:36:01 +0000 (13:36 -0300)]
util: introduce container_of() macro
This macro comes from kernel and it's useful for unwrapping structs
inside another one. The generated code is actually the same to the one
where this logic is used in udev, but using this macro is much cleaner
and less error prone.