SHA256
1
0
forked from pool/systemd
systemd/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
Robert Milasan ef894ec214 Accepting request 178446 from home:elvigia:branches:Base:System
- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
 fixes :
 * systemd-journald[347]: Failed to set ACL on 
 /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, 
 ignoring: Invalid argument
- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
  systemctl disable should remove dangling symlinks.
- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
  alien childs are reported as alive when they are really dead.

- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
 fixes :
 * systemd-journald[347]: Failed to set ACL on 
 /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, 
 ignoring: Invalid argument
- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
  systemctl disable should remove dangling symlinks.
- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
  alien childs are reported as alive when they are really dead.

OBS-URL: https://build.opensuse.org/request/show/178446
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=390
2013-06-11 09:22:26 +00:00

37 lines
1.3 KiB
Diff

From 3b1680e04cb0ff0e4cf180dbacd067f1f99316a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 3 Jun 2013 13:55:13 -0400
Subject: [PATCH 6/8] systemctl,core: allow nuking of symlinks to removed units
Before, one the unit file was deleted, install_context_for_removal()
would refuse to look for symlinks. But we can remove dangling symlinks
anyway.
In principle, package installation/deinstallation scripts should do
that before the unit is uninstalled, but they don't always do. Also,
a user might have added additional symlinks manually.
https://bugs.freedesktop.org/show_bug.cgi?id=62395
---
src/shared/install.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/shared/install.c b/src/shared/install.c
index edf4d2a..a695e12 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1413,7 +1413,9 @@ static int install_context_mark_for_removal(
assert_se(hashmap_move_one(c->have_installed, c->will_install, i->name) == 0);
q = unit_file_search(c, i, paths, root_dir, false);
- if (q < 0) {
+ if (q == -ENOENT) {
+ /* do nothing */
+ } else if (q < 0) {
if (r >= 0)
r = q;
--
1.8.1.4