Blame SOURCES/0006-chkconfig-don-t-create-symlinks-if-they-already-exis.patch

d115b2
From a91b4d79c1890d19e0deff0a9e33dde5c45bdd9d Mon Sep 17 00:00:00 2001
d115b2
From: Lukas Nykryn <lnykryn@redhat.com>
d115b2
Date: Wed, 29 Apr 2015 14:41:00 +0200
d115b2
Subject: [PATCH 6/6] chkconfig: don't create symlinks if they already exist
d115b2
d115b2
---
d115b2
 chkconfig.c | 12 +++++++++---
d115b2
 1 file changed, 9 insertions(+), 3 deletions(-)
d115b2
d115b2
diff --git a/chkconfig.c b/chkconfig.c
d115b2
index 596ef8f..d334bf2 100644
d115b2
--- a/chkconfig.c
d115b2
+++ b/chkconfig.c
d115b2
@@ -239,10 +239,16 @@ static int frobOneDependencies(struct service *s, struct service *servs, int num
d115b2
 
d115b2
 	if (target || ((s0 != s->sPriority) || (k0 != s->kPriority))) {
d115b2
 		for (i = 0; i < 7; i++) {
d115b2
-			if (isConfigured(s->name, i, NULL, NULL)) {
d115b2
+                        int priority;
d115b2
+                        char type;
d115b2
+			if (isConfigured(s->name, i, &priority, &type)) {
d115b2
 				int on = isOn(s->name, i);
d115b2
-				delService(s->name, TYPE_INIT_D, i);
d115b2
-				doSetService(*s, i, on);
d115b2
+                                int new_priority = on ? s->sPriority : s->kPriority;
d115b2
+
d115b2
+                                if (new_priority != priority || (on ? 'S' : 'K') != type) {
d115b2
+                                        delService(s->name, TYPE_INIT_D, i);
d115b2
+                                        doSetService(*s, i, on);
d115b2
+                                }
d115b2
 			} else if (target) {
d115b2
 				delService(s->name, TYPE_INIT_D, i);
d115b2
 				doSetService(*s, i, ((1<<i) & s->levels));
d115b2
-- 
d115b2
1.8.3.1
d115b2