summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-06-22 16:24:57 +0200
committerLennart Poettering <lennart@poettering.net>2012-06-22 16:24:57 +0200
commit8ff290af3b7db00eef76bdec61fee4aca7d84d0b (patch)
treef378f2089f6582f1a15a45134827b130b9bdce89
parenta3a3e5b6ae7836152052d77a9e6032a9e84e2039 (diff)
unit: drop the Names= option
Names= is a source of errors, simply because alias names specified like this only become relevant after a unit has been loaded but cannot be used to load a unit. Let's get rid of the confusion and drop this field. To establish alias names peope should use symlinks, which have the the benefit of being useful as key to load a unit, even though they are not taken into account if unit names are listed but they haven't been explicitly referenced before.
-rw-r--r--TODO2
-rw-r--r--man/systemd.unit.xml54
-rw-r--r--src/core/load-fragment-gperf.gperf.m41
-rw-r--r--src/core/load-fragment.c44
-rw-r--r--src/core/load-fragment.h1
5 files changed, 1 insertions, 101 deletions
diff --git a/TODO b/TODO
index 7fb3747db2..8778707169 100644
--- a/TODO
+++ b/TODO
@@ -399,5 +399,3 @@ Regularly:
Scheduled for removal (or fixing):
* xxxOverridable dependencies
-
-* Names= unit option
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index 123965bd44..93fb37b72b 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -870,35 +870,6 @@
</varlistentry>
<varlistentry>
- <term><varname>Names=</varname></term>
-
- <listitem><para>Additional names for
- this unit. The names listed here must
- have the same suffix (i.e. type) as
- the unit file name. This option may be
- specified more than once, in which
- case all listed names are used. Note
- that this option is different from the
- <varname>Alias=</varname> option from
- the [Install] section mentioned
- below. See below for details. Note
- that in almost all cases this option
- is not what you want. A symlink alias
- in the file system is generally
- preferable since it can be used as
- lookup key. If a unit with a symlinked
- alias name is not loaded and needs to
- be it is easily found via the
- symlink. However, if a unit with an
- alias name configured with this
- setting is not loaded it will not be
- discovered. This settings' only use is
- in conjunction with service
- instances.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><varname>SourcePath=</varname></term>
<listitem><para>A path to a
configuration file this unit has been
@@ -936,30 +907,7 @@
time,
<command>systemctl enable</command>
will create symlinks from these names
- to the unit file name. Note that this
- is different from the
- <varname>Names=</varname> option from
- the [Unit] section mentioned above:
- The names from
- <varname>Names=</varname> apply
- unconditionally if the unit is
- loaded. The names from
- <varname>Alias=</varname> apply only
- if the unit has actually been
- installed with the
- <command>systemctl enable</command>
- command. Also, if systemd searches for a
- unit, it will discover symlinked alias
- names as configured with
- <varname>Alias=</varname>, but not
- names configured with
- <varname>Names=</varname> only. It is
- a common pattern to list a name in
- both options. In this case, a unit
- will be active under all names if
- installed, but also if not installed
- but requested explicitly under its
- main name.</para></listitem>
+ to the unit file name.</para></listitem>
</varlistentry>
<varlistentry>
diff --git a/src/core/load-fragment-gperf.gperf.m4 b/src/core/load-fragment-gperf.gperf.m4
index d51c7ac5e2..f5e9b70672 100644
--- a/src/core/load-fragment-gperf.gperf.m4
+++ b/src/core/load-fragment-gperf.gperf.m4
@@ -90,7 +90,6 @@ $1.UtmpIdentifier, config_parse_unit_string_printf, 0,
$1.ControlGroupModify, config_parse_bool, 0, offsetof($1, exec_context.control_group_modify)
$1.ControlGroupPersistent, config_parse_tristate, 0, offsetof($1, exec_context.control_group_persistent)'
)m4_dnl
-Unit.Names, config_parse_unit_names, 0, 0
Unit.Description, config_parse_unit_string_printf, 0, offsetof(Unit, description)
Unit.Documentation, config_parse_documentation, 0, offsetof(Unit, documentation)
Unit.SourcePath, config_parse_path, 0, offsetof(Unit, source_path)
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 22da6c1197..1ca0dece67 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -105,49 +105,6 @@ int config_parse_unit_deps(
return 0;
}
-int config_parse_unit_names(
- const char *filename,
- unsigned line,
- const char *section,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
-
- Unit *u = userdata;
- char *w;
- size_t l;
- char *state;
-
- assert(filename);
- assert(lvalue);
- assert(rvalue);
- assert(data);
-
- FOREACH_WORD_QUOTED(w, l, rvalue, state) {
- char *t, *k;
- int r;
-
- t = strndup(w, l);
- if (!t)
- return -ENOMEM;
-
- k = unit_name_printf(u, t);
- free(t);
- if (!k)
- return -ENOMEM;
-
- r = unit_merge_by_name(u, k);
- if (r < 0)
- log_error("Failed to add name %s, ignoring: %s", k, strerror(-r));
-
- free(k);
- }
-
- return 0;
-}
-
int config_parse_unit_string_printf(
const char *filename,
unsigned line,
@@ -2395,7 +2352,6 @@ void unit_dump_config_items(FILE *f) {
{ config_parse_limit, "LIMIT" },
{ config_parse_unit_cgroup, "CGROUP [...]" },
{ config_parse_unit_deps, "UNIT [...]" },
- { config_parse_unit_names, "UNIT [...]" },
{ config_parse_exec, "PATH [ARGUMENT [...]]" },
{ config_parse_service_type, "SERVICETYPE" },
{ config_parse_service_restart, "SERVICERESTART" },
diff --git a/src/core/load-fragment.h b/src/core/load-fragment.h
index 9a3465a166..501ea4ad47 100644
--- a/src/core/load-fragment.h
+++ b/src/core/load-fragment.h
@@ -32,7 +32,6 @@ void unit_dump_config_items(FILE *f);
int config_parse_warn_compat(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_deps(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
-int config_parse_unit_names(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_string_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_strv_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_path_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);