summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDjalal Harouni <tixxdz@opendz.org>2014-04-14 01:07:52 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-04-16 23:13:22 -0400
commita1484a216e79da1fa7e2323095fb1b7203fb7a17 (patch)
treef349633477f19dd94d9490ab6dc723fbae8482fc
parent9754d56e9b21bfe89fc18f47987d6bef491b8521 (diff)
systemctl: allow to change the default target without the --force switch
Currently "systemctl set-default" will fail to change the default target due to the 'default.target' being a symlink which is always the case. To work around this, the user must specify the "--force" switch to be able to overwrite the existing symlink. This is clearly a regression that was introduced by commit 718db96199e since it worked before without the "--force" switch and the man pages do not mention that you need to specify it. It is expected that this is a symlink. So just explicity set the force flag to make it work again. https://bugs.freedesktop.org/show_bug.cgi?id=76623 Reported-by: <code@progandy.de>
Notes
Backport: fix
-rw-r--r--src/systemctl/systemctl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index ee0938f23..1b381f7a9 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -1968,7 +1968,7 @@ static int set_default(sd_bus *bus, char **args) {
return log_oom();
if (!bus || avoid_bus()) {
- r = unit_file_set_default(arg_scope, arg_root, unit, arg_force, &changes, &n_changes);
+ r = unit_file_set_default(arg_scope, arg_root, unit, true, &changes, &n_changes);
if (r < 0) {
log_error("Failed to set default target: %s", strerror(-r));
return r;
@@ -1990,7 +1990,7 @@ static int set_default(sd_bus *bus, char **args) {
"SetDefaultTarget",
&error,
&reply,
- "sb", unit, arg_force);
+ "sb", unit, true);
if (r < 0) {
log_error("Failed to set default target: %s", bus_error_message(&error, -r));
return r;