From: Lennart Poettering Date: Fri, 21 Feb 2014 17:57:15 +0000 (+0100) Subject: man: don't document ".include" in configuration files anymore as first step to deprec... X-Git-Tag: v210~72 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=b8e7a47baf10683f59bf848abd300b45cd5042f2 man: don't document ".include" in configuration files anymore as first step to deprecate them one day --- diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 2b59b1b84..4445c7410 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -200,12 +200,6 @@ has the appropriate section headers before any directive. - If a line starts with - followed by a filename, the specified file will be - parsed at this point. Make sure that the file that is - included has the appropriate section headers before - any directives. - Note that while systemd offers a flexible dependency system between units it is recommended to use this functionality only sparingly and instead rely diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index d5a639e87..dde62b575 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -225,6 +225,15 @@ static int parse_line(const char* unit, if (startswith(l, ".include ")) { _cleanup_free_ char *fn = NULL; + /* .includes are a bad idea, we only support them here + * for historical reasons. They create cyclic include + * problems and make it difficult to detect + * configuration file changes with an easy + * stat(). Better approaches, such as .d/ drop-in + * snippets exist. + * + * Support for them should be eventually removed. */ + if (!allow_include) { log_syntax(unit, LOG_ERR, filename, line, EBADMSG, ".include not allowed here. Ignoring.");