
NM_STR_BUF_INIT() and nm_str_buf_init() were pretty much redundant. Drop one of them. Usually our pattern is that we don't have functions that return structs. But NM_STR_BUF_INIT() returns a struct, because it's convenient to use with nm_auto_str_buf NMStrBuf strbuf = NM_STR_BUF_INIT(...); So use that variant instead.
libnm-log-core
libnm-glib-aux has a forward-declaration of logging API. If a libnm-glib-aux user uses that API for logging, it must link the final binary with an implementation.
There are two implementations: libnm-log-core and [../libnm-log-null/(..libnm-log-null/). This one is the implementation used by the daemon and logs to syslog/journald.