update TODO
man: remove boot up runlevel support

As of 3cdebc217c42c8529086f2965319b6a48eaaeabe support for
distro specific boot up runlevels has been dropped.
test: add a few tests and tidy up

adds test of:
strv_find
strv_find_prefix
strv_overlap
strv_sort
streq_ptr
first_word

Splits tests of util.c into own file to avoid clutter as we add more.

Removed a few prints and uses _cleanup_free_ to make the tests more focused.
tests: run manager in session mode

False positives pop up otherwise.

FAIL: test-unit-name (exit: 134)
================================

Failed to open /dev/tty0: Permission denied
Failed to create root cgroup hierarchy: Permission denied
Assertion 'manager_new(SYSTEMD_SYSTEM, &m) == 0' failed at src/test/test-unit-name.c:125, function test_unit_printf(). Aborting.
strv: add strv_print

Clearer, and spares the temp variable.
tests: move strv_parse_nulstr to test-strv, and actually test it

The test was originally added with this commit message:
"ask-password: supported plymouth cached passwords"
tests: skip tests if manager cannot be created

When running without a user session, tests fail.
man: see also dracut(7) in bootup(7)
build-sys: replace one last mkdir hook with list item

Previously, errors would be ignored. Now they are not. But I don't see
how we could fail to create the directory, so I don't think that it
matters.
build-sys: split man alias rules into separate file

There shouldn't be any functional change. This is an 'automake include',
so the generated Makefile is the same (apart from ordering).
build-sys: create Makefile-man.am automatically

man rules were repeating the same information in too many places,
which was error prone. Those rules can be easily generated from .xml
files. For efficiency and because python is not a required dependency,
Makefile-man.am is only regenerated when requested with

  make update-man-list

If no metadata in man/*.xml changed, this file should not change. So
only when a new man page or a new alias is added, this file should
show up in 'git diff'. The change should then be committed.

If the support for building from git without python was dropped, we
could drop Makefile-man.am from version control. This would also
increase the partial build time (since more stuff would be rebuild
whenever sources in man/*.xml would be modified), so it would probably
wouldn't be worth it.
systemd: do not remove empty paths from unit lookup path

The ability to start a new unit with 'systemctl start ...' should not
depend on whether there are other units in the directory. Previously,
an additional 'systemctl daemon-reload' would be necessary to tell
systemd to update the list of unit lookup paths.
shared: remove now unused function
systemd: raise level of message about lookup paths

This can be pretty important for the user, and is not trivial
to figure out in all cases.

Also show failing path in error messages.
build-sys: substitute strings in systemd.unit(5)

Makefile.am is updated to deal with .xml.in sources.  Nothing in the
output is really changed yet, this is just preparation.
man: describe unit load path in systemd.unit(5)

In other cases where multiple directories are searched for unit files,
the list of directories is described in the man page describing the
format. I think this makes sense too in case of systemd directories,
since the systemd(1) manpage already has an overview of many different
topics.
nss-myhostname: copy first result to preallocated buffer

Fixes a segfault in nscd when using nss-myhostname.

Nscd expects that an NSS module's gethostbyname4_r function returns
its first result in the pre-allocated gaih_addrtuple denoted by **pat.
(See nscd/aicache.c in the Glibc sources.)  However, nss-myhostname
doesn't fill in **pat but allocates the first result in ‘buffer’, then
sets *pat.  So nscd crashes (e.g. when running ‘getent ahosts
my-machine’).

Hard to tell if this is a bug in nscd, since there doesn't seem to be
a proper API spec for gethostbyname4_r.  But in any case, this patch
fixes the crash by copying the first result to **pat.
journal: log user units for coredumps and show them in systemctl status
logs-show: show messages for all unit types in systemctl status

I can't find a reason why we shouldn't try to output messages for other
unit types than .service, .socket, .mount and .swap as well. It's probably
a leftover from before we started logging UNIT= from inside PID 1.
coredump: make use of the cleanup macros