shell-completion: add kernel-install
shared: split mkdir_*() and mkdir_*_label() from each other

Avoid pulling-in selinux for tools which just create directories
but not need to fix the selinux label.
core: allow setting RemainAfterExit= for transient services
systemctl: move "dump" command from systemctl to systemd-analyze

It's an analysis command and its format is explicitly not covered by any
stability guarantees, hence move away from systemctl and into
systemd-analyze, minimizing the already large interface of systemctl a
bit.

This patch also adds auto-paging to the various systemd-analyze commands
where that makes sense
systemctl: move set-log-level to systemd-analyze

"systemctl set-log-level" is a command for analysis and tracing hence
"systemd-analyze" should be the better home for it, thus allowing us to
make the overly large "systemctl" a bit smaller.
systemctl: remove "load" command

"systemctl load" has always been racy since the GC could hit any time,
before making use of the loaded unit. Very recent systemd will run GC
immeidately after all unit state changes which has the effect that the
the effect of "systemctl load" is completely gone now, so let's remove
the support for it in "systemctl" for good.
systemctl: rearrange --help output a bit
systemd-python: use modern C
build-sys: use pkg-config for python compilation flags

Python 2.7, and 3.2 and higher support querying compilation
flags through pkg-config. This makes python support follow
rules similar to various other optional compilation-time
libraries. New flags are called PYTHON_DEVEL_CFLAGS and
PYTHON_DEVEL_LIBS, because PYTHON (without _DEVEL), is
already used for the python binary name, and things would
be confusing if the same prefix was used for two things.
configure has --disable-python-devel to disable python modules.

One advantage is that CFLAGS for modules gets smaller:
- -I/usr/include/python3.3m -I/usr/include/python3.3m -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv
+ -I/usr/include/python3.3m
as does LIBS:
- -lpthread -ldl -lutil -lm -lpython3.3m
+ -lpython3.3m

Support for Python 2.6 is removed, but can be easily
restored by using
PYTHON_DEVEL_CFLAGS="$(python2.6-config --cflags)",
etc., as ./configure parameters.

https://bugs.freedesktop.org/show_bug.cgi?id=57800
systemd-python: fix gcc warning

src/python-systemd/_reader.c: In function Reader_get_catalog:
src/python-systemd/_reader.c:912:53: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             assert(mid_len > l);
                            ^
logind: update state file after generating the session fifo, not before

https://bugs.freedesktop.org/show_bug.cgi?id=67273
journalctl: use _COMM= match for scripts

In case of scripts, _EXE is set to the interpreter name, and
_COMM is set based on the file name. Add a match for _COMM,
and _EXE if the interpreter is not a link (e.g. for yum,
the interpreter is /usr/bin/python, but it is a link to
/usr/bin/python2, which in turn is a link to /usr/bin/python2.7,
at least on Fedora, so we end up with _EXE=/usr/bin/python2.7).
I don't think that such link chasing makes sense, because
the final _EXE name is more likely to change.
rework systemd's own process environment handling/passing

Stop importing non-sensical kernel-exported variables. All
parameters in the kernel command line are exported to the
initial environment of PID1, but suppressed if they are
recognized by kernel built-in code. The EFI booted kernel
will add further kernel-internal things which do not belong
into userspace.

The passed original environ data of the process is not touched
and preserved across re-execution, to allow external reading of
/proc/self/environ for process properties like container*=.
logind: update the session state file before we send out the CreateSession() reply

https://bugs.freedesktop.org/show_bug.cgi?id=67273
systemctl.8: fix typo in SEE ALSO
TODO: remove kernel env var importing fix
man: systemd.unit: fix volatile path

The volatile path was '/run/systemd/systemd' when it should be
'/run/systemd/system'. Fix.
man: link up scope+slice units from systemd.unit(5)
man: there is no session mode, only user mode
man: reowrk list of documented unit search paths

The generator paths are internal implementation details, they should not
be documented explicitly.

We should document where private user units are found however.