From: Lennart Poettering Date: Fri, 23 Feb 2018 19:46:38 +0000 (+0100) Subject: conf-parser: let's explicitly deprecate .include in unit files X-Git-Tag: v239~488^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=41b283d0f1f4abd85d0bbeeb7f71bb30f87cfab9;p=thirdparty%2Fsystemd.git conf-parser: let's explicitly deprecate .include in unit files .include lines are already deprecated somewhat, and for example explicitly not mentioned in the documentation for this reason. Let's get one step further and generatea warning when we encounter them (but still process them). Why are they deprecated? Because they are semantically awful — they complicate stat() based mtime checks for configuration files and they allow arbitrary loops we currently have zero protection against and really shouldn't have to have. --- diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 72c47150d0c..0ac63645774 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -211,6 +211,10 @@ static int parse_line( return 0; } + log_syntax(unit, LOG_WARNING, filename, line, 0, + ".include directives are deprecated, and support for them will be removed in a future version of systemd. " + "Please use drop-in files instead."); + fn = file_in_same_dir(filename, strstrip(l+9)); if (!fn) return -ENOMEM;