Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2018-01-13 21:34:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Sat Jan 13 21:34:41 2018 rev:267 rq:563317 version:234 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2017-12-13 11:56:32.921949208 +0100 +++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2018-01-13 21:34:43.158235092 +0100 @@ -1,0 +2,20 @@ +Wed Jan 10 11:04:21 UTC 2018 - [email protected] + +- Import commit 82dbe8a2ae56649231111eaadd4c302a2d2175ee + + 8c7f0c449 service: Don't stop unneeded units needed by restarted service (bsc#1066156) + 869be64ce sysctl: use raw file descriptor in sysctl_write (#7753) + 0c2400810 sysctl: disable buffer while writing to /proc (bsc#1071558) + 9eb1f30b8 Use read_line() and LONG_LINE_MAX to read values configuration files. (bsc#1071558) + 4dbea654f def: add new constant LONG_LINE_MAX + 48f14cd71 fileio: add new helper call read_line() as bounded getline() replacement + 861e1a222 build-sys: udevadm should have LOG_REALM=LOG_REALM_UDEV + 8ed5cf3fb meson: libudev_core and udevadm should have LOG_REALM=LOG_REALM_UDEV (#7666) + a9f93f1d0 virt: use XENFEAT_dom0 to detect the hardware domain (#6442, #6662) (#7581) (bsc#1048510) + fe56abdf9 seccomp: arm64/x32 do not have _sysctl + c9194fe37 seccomp: arm64 does not have mmap2 + 31d9b3c32 fs-util: small tweak in chase_symlinks() + 9dd0bc7a3 meson: do not include man/meson.build if xsltproc not found + 7e29e2b07 analyze: replace --no-man with --man=no in the man page (bsc#1068251) + +------------------------------------------------------------------- systemd.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.Pk16Xw/_old 2018-01-13 21:34:44.366178537 +0100 +++ /var/tmp/diff_new_pack.Pk16Xw/_new 2018-01-13 21:34:44.370178351 +0100 @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed systemd.spec: same change ++++++ systemd-234.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/Makefile.am new/systemd-234/Makefile.am --- old/systemd-234/Makefile.am 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/Makefile.am 2018-01-10 12:03:54.000000000 +0100 @@ -4049,6 +4049,10 @@ src/udev/udevadm-util.c \ src/udev/udevadm-util.h +udevadm_CFLAGS = \ + $(AM_CFLAGS) \ + -DLOG_REALM=LOG_REALM_UDEV + udevadm_LDADD = \ libudev-core.la \ libbasic.la diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/man/meson.build new/systemd-234/man/meson.build --- old/systemd-234/man/meson.build 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/man/meson.build 2018-01-10 12:03:54.000000000 +0100 @@ -31,7 +31,7 @@ man_pages = [] html_pages = [] source_xml_files = [] -foreach tuple : manpages +foreach tuple : want_man or want_html ? manpages : [] stem = tuple[0] section = tuple[1] aliases = tuple[2] @@ -114,8 +114,8 @@ output : 'systemd.index.xml', command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files) -foreach tuple : [['systemd.directives', '7', systemd_directives_xml], - ['systemd.index', '7', systemd_index_xml]] +foreach tuple : want_man or want_html ? [['systemd.directives', '7', systemd_directives_xml], + ['systemd.index', '7', systemd_index_xml]] : [] stem = tuple[0] section = tuple[1] xml = tuple[2] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/man/systemd-analyze.xml new/systemd-234/man/systemd-analyze.xml --- old/systemd-234/man/systemd-analyze.xml 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/man/systemd-analyze.xml 2018-01-10 12:03:54.000000000 +0100 @@ -281,7 +281,7 @@ </varlistentry> <varlistentry> - <term><option>--no-man</option></term> + <term><option>--man=no</option></term> <listitem><para>Do not invoke man to verify the existence of man pages listed in <varname>Documentation=</varname>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/meson.build new/systemd-234/meson.build --- old/systemd-234/meson.build 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/meson.build 2018-01-10 12:03:54.000000000 +0100 @@ -2096,6 +2096,7 @@ exe = executable('udevadm', udevadm_sources, + c_args : ['-DLOG_REALM=LOG_REALM_UDEV'], include_directories : includes, link_with : [libudev_core, libsystemd_network, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/basic/def.h new/systemd-234/src/basic/def.h --- old/systemd-234/src/basic/def.h 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/basic/def.h 2018-01-10 12:03:54.000000000 +0100 @@ -86,3 +86,5 @@ "/usr/local/lib/" n "\0" \ "/usr/lib/" n "\0" \ _CONF_PATHS_SPLIT_USR(n) + +#define LONG_LINE_MAX (1U*1024U*1024U) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/basic/fileio.c new/systemd-234/src/basic/fileio.c --- old/systemd-234/src/basic/fileio.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/basic/fileio.c 2018-01-10 12:03:54.000000000 +0100 @@ -139,6 +139,9 @@ } } + if (flags & WRITE_STRING_FILE_DISABLE_BUFFER) + setvbuf(f, NULL, _IONBF, 0); + r = write_string_stream_ts(f, line, !(flags & WRITE_STRING_FILE_AVOID_NEWLINE), ts); if (r < 0) goto fail; @@ -1497,3 +1500,80 @@ *ret = p; return 0; } + +int read_line(FILE *f, size_t limit, char **ret) { + _cleanup_free_ char *buffer = NULL; + size_t n = 0, allocated = 0, count = 0; + int r; + + assert(f); + + /* Something like a bounded version of getline(). + * + * Considers EOF, \n and \0 end of line delimiters, and does not include these delimiters in the string + * returned. + * + * Returns the number of bytes read from the files (i.e. including delimiters — this hence usually differs from + * the number of characters in the returned string). When EOF is hit, 0 is returned. + * + * The input parameter limit is the maximum numbers of characters in the returned string, i.e. excluding + * delimiters. If the limit is hit we fail and return -ENOBUFS. + * + * If a line shall be skipped ret may be initialized as NULL. */ + + if (ret) { + if (!GREEDY_REALLOC(buffer, allocated, 1)) + return -ENOMEM; + } + + flockfile(f); + + for (;;) { + int c; + + if (n >= limit) { + funlockfile(f); + return -ENOBUFS; + } + + errno = 0; + c = fgetc_unlocked(f); + if (c == EOF) { + /* if we read an error, and have no data to return, then propagate the error */ + if (ferror_unlocked(f) && n == 0) { + r = errno > 0 ? -errno : -EIO; + funlockfile(f); + return r; + } + + break; + } + + count++; + + if (IN_SET(c, '\n', 0)) /* Reached a delimiter */ + break; + + if (ret) { + if (!GREEDY_REALLOC(buffer, allocated, n + 2)) { + funlockfile(f); + return -ENOMEM; + } + + buffer[n] = (char) c; + } + + n++; + } + + funlockfile(f); + + if (ret) { + buffer[n] = 0; + + *ret = buffer; + buffer = NULL; + } + + return (int) count; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/basic/fileio.h new/systemd-234/src/basic/fileio.h --- old/systemd-234/src/basic/fileio.h 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/basic/fileio.h 2018-01-10 12:03:54.000000000 +0100 @@ -33,6 +33,7 @@ WRITE_STRING_FILE_ATOMIC = 2, WRITE_STRING_FILE_AVOID_NEWLINE = 4, WRITE_STRING_FILE_VERIFY_ON_FAILURE = 8, + WRITE_STRING_FILE_DISABLE_BUFFER = 16, } WriteStringFileFlags; int write_string_stream_ts(FILE *f, const char *line, bool enforce_newline, struct timespec *ts); @@ -99,3 +100,5 @@ int read_nul_string(FILE *f, char **ret); int mkdtemp_malloc(const char *template, char **ret); + +int read_line(FILE *f, size_t limit, char **ret); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/basic/fs-util.c new/systemd-234/src/basic/fs-util.c --- old/systemd-234/src/basic/fs-util.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/basic/fs-util.c 2018-01-10 12:03:54.000000000 +0100 @@ -763,12 +763,11 @@ return -ENOMEM; } - } - - /* Prefix what's left to do with what we just read, and start the loop again, - * but remain in the current directory. */ - - joined = strjoin("/", destination, todo); + /* Prefix what's left to do with what we just read, and start the loop again, but + * remain in the current directory. */ + joined = strjoin(destination, todo); + } else + joined = strjoin("/", destination, todo); if (!joined) return -ENOMEM; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/basic/virt.c new/systemd-234/src/basic/virt.c --- old/systemd-234/src/basic/virt.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/basic/virt.c 2018-01-10 12:03:54.000000000 +0100 @@ -227,11 +227,30 @@ } +#define XENFEAT_dom0 11 /* xen/include/public/features.h */ +#define PATH_FEATURES "/sys/hypervisor/properties/features" +/* Returns false for domU, or true for dom0 */ static bool detect_vm_xen_dom0(void) { _cleanup_free_ char *domcap = NULL; char *cap, *i; int r; + r = read_one_line_file(PATH_FEATURES, &domcap); + if (r == 0) { + unsigned long features; + + r = safe_atolu(domcap, &features); + if (r == 0) { + r = !!(features & (1U << XENFEAT_dom0)); + log_debug("Virtualization XEN, found %s with value %08lx, " + "XENFEAT_dom0 (indicating the 'hardware domain') is%s set.", + PATH_FEATURES, features, r ? "" : " not"); + return r ? true : false; + } + log_debug("Virtualization XEN, found %s, unhandled content '%s'", + PATH_FEATURES, domcap); + } + r = read_one_line_file("/proc/xen/capabilities", &domcap); if (r == -ENOENT) { log_debug("Virtualization XEN not found, /proc/xen/capabilities does not exist"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/core/service.c new/systemd-234/src/core/service.c --- old/systemd-234/src/core/service.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/core/service.c 2018-01-10 12:03:54.000000000 +0100 @@ -1480,6 +1480,22 @@ } } +static bool service_will_restart(Unit *u) { + Service *s = SERVICE(u); + + assert(s); + + if (s->will_auto_restart) + return true; + if (s->state == SERVICE_AUTO_RESTART) + return true; + if (!UNIT(s)->job) + return false; + if (UNIT(s)->job->type == JOB_START) + return true; + return false; +} + static void service_enter_dead(Service *s, ServiceResult f, bool allow_restart) { int r; assert(s); @@ -1487,6 +1503,9 @@ if (s->result == SERVICE_SUCCESS) s->result = f; + if (allow_restart && service_shall_restart(s)) + s->will_auto_restart = true; + service_set_state(s, s->result != SERVICE_SUCCESS ? SERVICE_FAILED : SERVICE_DEAD); if (s->result != SERVICE_SUCCESS) { @@ -1494,7 +1513,8 @@ emergency_action(UNIT(s)->manager, s->emergency_action, UNIT(s)->reboot_arg, "service failed"); } - if (allow_restart && service_shall_restart(s)) { + if (s->will_auto_restart) { + s->will_auto_restart = false; r = service_arm_timer(s, usec_add(now(CLOCK_MONOTONIC), s->restart_usec)); if (r < 0) @@ -3643,6 +3663,8 @@ .active_state = service_active_state, .sub_state_to_string = service_sub_state_to_string, + .will_restart = service_will_restart, + .check_gc = service_check_gc, .sigchld_event = service_sigchld_event, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/core/service.h new/systemd-234/src/core/service.h --- old/systemd-234/src/core/service.h 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/core/service.h 2018-01-10 12:03:54.000000000 +0100 @@ -163,6 +163,8 @@ bool main_pid_alien:1; bool bus_name_good:1; bool forbid_restart:1; + /* Keep restart intention between UNIT_FAILED and UNIT_ACTIVATING */ + bool will_auto_restart:1; bool start_timeout_defined:1; bool reset_cpu_usage:1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/core/unit.c new/systemd-234/src/core/unit.c --- old/systemd-234/src/core/unit.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/core/unit.c 2018-01-10 12:03:54.000000000 +0100 @@ -1785,7 +1785,7 @@ for (j = 0; j < ELEMENTSOF(needed_dependencies); j++) SET_FOREACH(other, u->dependencies[needed_dependencies[j]], i) - if (unit_active_or_pending(other)) + if (unit_active_or_pending(other) || unit_will_restart(other)) return; /* If stopping a unit fails continuously we might enter a stop @@ -3306,6 +3306,15 @@ return false; } +bool unit_will_restart(Unit *u) { + assert(u); + + if (!UNIT_VTABLE(u)->will_restart) + return false; + + return UNIT_VTABLE(u)->will_restart(u); +} + int unit_kill(Unit *u, KillWho w, int signo, sd_bus_error *error) { assert(u); assert(w >= 0 && w < _KILL_WHO_MAX); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/core/unit.h new/systemd-234/src/core/unit.h --- old/systemd-234/src/core/unit.h 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/core/unit.h 2018-01-10 12:03:54.000000000 +0100 @@ -368,6 +368,9 @@ * unit is in. */ const char* (*sub_state_to_string)(Unit *u); + /* Additionally to UnitActiveState determine whether unit is to be restarted. */ + bool (*will_restart)(Unit *u); + /* Return true when there is reason to keep this entry around * even nothing references it and it isn't active in any * way */ @@ -591,6 +594,7 @@ bool unit_stop_pending(Unit *u) _pure_; bool unit_inactive_or_pending(Unit *u) _pure_; bool unit_active_or_pending(Unit *u); +bool unit_will_restart(Unit *u); int unit_add_default_target_dependency(Unit *u, Unit *target); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/shared/seccomp-util.c new/systemd-234/src/shared/seccomp-util.c --- old/systemd-234/src/shared/seccomp-util.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/shared/seccomp-util.c 2018-01-10 12:03:54.000000000 +0100 @@ -899,6 +899,10 @@ log_debug("Operating on architecture: %s", seccomp_arch_to_string(arch)); + if (IN_SET(arch, SCMP_ARCH_X32, SCMP_ARCH_AARCH64)) + /* No _sysctl syscall */ + continue; + r = seccomp_init_for_arch(&seccomp, arch, SCMP_ACT_ALLOW); if (r < 0) return r; @@ -1219,10 +1223,6 @@ break; - case SCMP_ARCH_AARCH64: - block_syscall = SCMP_SYS(mmap); - /* fall through */ - case SCMP_ARCH_ARM: filter_syscall = SCMP_SYS(mmap2); /* arm has only mmap2 */ shmat_syscall = SCMP_SYS(shmat); @@ -1230,7 +1230,8 @@ case SCMP_ARCH_X86_64: case SCMP_ARCH_X32: - filter_syscall = SCMP_SYS(mmap); /* amd64 and x32 have only mmap */ + case SCMP_ARCH_AARCH64: + filter_syscall = SCMP_SYS(mmap); /* amd64, x32, and arm64 have only mmap */ shmat_syscall = SCMP_SYS(shmat); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/shared/sysctl-util.c new/systemd-234/src/shared/sysctl-util.c --- old/systemd-234/src/shared/sysctl-util.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/shared/sysctl-util.c 2018-01-10 12:03:54.000000000 +0100 @@ -17,9 +17,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <errno.h> +#include <fcntl.h> #include <stdio.h> #include <string.h> +#include <unistd.h> +#include "fd-util.h" #include "fileio.h" #include "log.h" #include "macro.h" @@ -52,6 +56,7 @@ int sysctl_write(const char *property, const char *value) { char *p; + _cleanup_close_ int fd = -1; assert(property); assert(value); @@ -59,7 +64,17 @@ log_debug("Setting '%s' to '%s'", property, value); p = strjoina("/proc/sys/", property); - return write_string_file(p, value, 0); + fd = open(p, O_WRONLY|O_CLOEXEC); + if (fd < 0) + return -errno; + + if (!endswith(value, "\n")) + value = strjoina(value, "\n"); + + if (write(fd, value, strlen(value)) < 0) + return -errno; + + return 0; } int sysctl_read(const char *property, char **content) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/sysctl/sysctl.c new/systemd-234/src/sysctl/sysctl.c --- old/systemd-234/src/sysctl/sysctl.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/sysctl/sysctl.c 2018-01-10 12:03:54.000000000 +0100 @@ -105,16 +105,16 @@ log_debug("Parsing %s", path); for (;;) { - char l[LINE_MAX], *p, *value, *new_value, *property, *existing; + char *p, *value, *new_value, *property, *existing; + _cleanup_free_ char *l = NULL; void *v; int k; + k = read_line(f, LONG_LINE_MAX, &l); + if (k == 0) + break; - if (!fgets(l, sizeof(l), f)) { - if (feof(f)) - break; - - return log_error_errno(errno, "Failed to read file '%s', ignoring: %m", path); - } + if (k < 0) + return log_error_errno(k, "Failed to read file '%s', ignoring: %m", path); c++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/test/test-fileio.c new/systemd-234/src/test/test-fileio.c --- old/systemd-234/src/test/test-fileio.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/test/test-fileio.c 2018-01-10 12:03:54.000000000 +0100 @@ -663,6 +663,49 @@ free(ret); } +static void test_read_line(void) { + _cleanup_fclose_ FILE *f = NULL; + _cleanup_free_ char *line = NULL; + + char buffer[] = + "Some test data\n" + "With newlines, and a NUL byte\0" + "\n" + "an empty line\n" + "an ignored line\n" + "and a very long line that is supposed to be truncated, because it is so long\n"; + + f = fmemopen(buffer, sizeof(buffer), "re"); + assert_se(f); + + assert_se(read_line(f, (size_t) -1, &line) == 15 && streq(line, "Some test data")); + line = mfree(line); + + assert_se(read_line(f, 1024, &line) == 30 && streq(line, "With newlines, and a NUL byte")); + line = mfree(line); + + assert_se(read_line(f, 1024, &line) == 1 && streq(line, "")); + line = mfree(line); + + assert_se(read_line(f, 1024, &line) == 14 && streq(line, "an empty line")); + line = mfree(line); + + assert_se(read_line(f, (size_t) -1, NULL) == 16); + + assert_se(read_line(f, 16, &line) == -ENOBUFS); + line = mfree(line); + + /* read_line() stopped when it hit the limit, that means when we continue reading we'll read at the first + * character after the previous limit. Let's make use of tha to continue our test. */ + assert_se(read_line(f, 1024, &line) == 61 && streq(line, "line that is supposed to be truncated, because it is so long")); + line = mfree(line); + + assert_se(read_line(f, 1024, &line) == 1 && streq(line, "")); + line = mfree(line); + + assert_se(read_line(f, 1024, &line) == 0 && streq(line, "")); +} + int main(int argc, char *argv[]) { log_set_max_level(LOG_DEBUG); log_parse_environment(); @@ -684,6 +727,7 @@ test_search_and_fopen_nulstr(); test_writing_tmpfile(); test_tempfn(); + test_read_line(); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/test/test-seccomp.c new/systemd-234/src/test/test-seccomp.c --- old/systemd-234/src/test/test-seccomp.c 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/test/test-seccomp.c 2018-01-10 12:03:54.000000000 +0100 @@ -244,13 +244,17 @@ assert_se(pid >= 0); if (pid == 0) { +#if __NR__sysctl > 0 assert_se(syscall(__NR__sysctl, NULL) < 0); assert_se(errno == EFAULT); +#endif assert_se(seccomp_protect_sysctl() >= 0); +#if __NR__sysctl > 0 assert_se(syscall(__NR__sysctl, 0, 0, 0) < 0); assert_se(errno == EPERM); +#endif _exit(EXIT_SUCCESS); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/udev/meson.build new/systemd-234/src/udev/meson.build --- old/systemd-234/src/udev/meson.build 2017-11-29 11:11:42.000000000 +0100 +++ new/systemd-234/src/udev/meson.build 2018-01-10 12:03:54.000000000 +0100 @@ -113,6 +113,7 @@ link_config_gperf_c, keyboard_keys_from_name_h, include_directories : libudev_core_includes, + c_args : ['-DLOG_REALM=LOG_REALM_UDEV'], link_with : udev_link_with, dependencies : [libblkid, libkmod])
