From: Franck Bui Date: Thu, 12 Jan 2017 02:37:15 +0000 (+0100) Subject: systemctl: remove duplicate entries showed by list-dependencies (#5049) X-Git-Tag: v233~242 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a69f65dd3d45a507dbef399263bb0114bd245afe;p=thirdparty%2Fsystemd.git systemctl: remove duplicate entries showed by list-dependencies (#5049) When a unit is part of several dependency constraints of another unit, list-dependencies repeats the name of the dependency for each dep constraint the unit is encountered. For example: $ systemctl cat test-main.target # /etc/systemd/system/test-main.target [Unit] Description=Main Target $ systemctl cat test.target [Unit] Description=Sub target PartOf=test-main.target [Install] WantedBy=test-main.target $ systemctl enable test.target Created symlink from /etc/systemd/system/test-main.target.wants/test.target to /etc/systemd/system/test.target. $ systemctl show test-main.target | grep test.target Wants=test.target ConsistsOf=test.target [...] $ systemctl list-dependencies test-main.target test-main.target ● ├─test.target ● └─test.target With this patch applied, dependencies are shown only once. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index f7e85c1adeb..8955d5f51f4 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1734,7 +1734,7 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha if (r < 0) return bus_log_parse_error(r); - *deps = ret; + *deps = strv_uniq(ret); ret = NULL; return 0;