[systemd] Add patch to disable resolve.conf symlink (#1043119)
Colin Walters
walters at fedoraproject.org
Mon Jul 7 19:02:23 UTC 2014
commit a1b71bbfb44e182b4d3fda25e416ced7dad517aa
Author: Colin Walters <walters at verbum.org>
Date: Mon Jul 7 15:02:08 2014 -0400
Add patch to disable resolve.conf symlink (#1043119)
...ve-symlink-creation-from-tmpfiles-to-daem.patch | 65 ++++++++++++++++++++
systemd.spec | 10 +++-
2 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/0001-resolved-Move-symlink-creation-from-tmpfiles-to-daem.patch b/0001-resolved-Move-symlink-creation-from-tmpfiles-to-daem.patch
new file mode 100644
index 0000000..35a97dd
--- /dev/null
+++ b/0001-resolved-Move-symlink-creation-from-tmpfiles-to-daem.patch
@@ -0,0 +1,65 @@
+From 7824f773110be8a0cecb89f650e13db03b58d1e1 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters at verbum.org>
+Date: Mon, 7 Jul 2014 08:27:43 -0400
+Subject: [PATCH] resolved: Move symlink creation from tmpfiles to daemon
+ runtime
+
+At least Fedora right now doesn't by default use resolved; the service
+is disabled by default in the 90-default.preset file.
+
+The change to unconditionally create the resolv.conf symlink broke
+Anaconda and related tools (lorax) which expect it to be a regular
+file. In particular, Anaconda expects to be able to persist
+networking state from the installation environment to the target
+system.
+
+A simple fix is to just have resolved itself create it at runtime.
+---
+ src/resolve/resolved-manager.c | 12 +++++++++++-
+ tmpfiles.d/etc.conf | 1 -
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c
+index 3ed0603..1a6b3ac 100644
+--- a/src/resolve/resolved-manager.c
++++ b/src/resolve/resolved-manager.c
+@@ -192,9 +192,11 @@ static void append_dns(FILE *f, void *dns, unsigned char family, unsigned *count
+
+ int manager_update_resolv_conf(Manager *m) {
+ const char *path = "/run/systemd/resolve/resolv.conf";
++ const char *etcresolv_path = "/etc/resolv.conf";
+ _cleanup_free_ char *temp_path = NULL;
+ _cleanup_fclose_ FILE *f = NULL;
+- _cleanup_free_ unsigned *indices = NULL;
++ _cleanup_free_ unsigned *indices = NULL;
++ struct stat st;
+ Address *address;
+ unsigned count = 0;
+ int n, r, i;
+@@ -270,6 +272,14 @@ int manager_update_resolv_conf(Manager *m) {
+ return r;
+ }
+
++ /* Create /etc/resolv.conf as a link only if it doesn't exist */
++ if (lstat(etcresolv_path, &st) < 0) {
++ r = symlink(path, etcresolv_path);
++ if (r < 0 && errno != EEXIST) {
++ return r;
++ }
++ }
++
+ return 0;
+ }
+
+diff --git a/tmpfiles.d/etc.conf b/tmpfiles.d/etc.conf
+index e809dff..4937719 100644
+--- a/tmpfiles.d/etc.conf
++++ b/tmpfiles.d/etc.conf
+@@ -10,4 +10,3 @@
+ L /etc/os-release - - - - ../usr/lib/os-release
+ L /etc/localtime - - - - ../usr/share/zoneinfo/UTC
+ L+ /etc/mtab - - - - ../proc/self/mounts
+-L /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf
+--
+1.8.3.1
+
diff --git a/systemd.spec b/systemd.spec
index 6277311..c5c8de1 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -16,7 +16,7 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 215
-Release: 2%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release: 3%{?gitcommit:.git%{gitcommit}}%{?dist}
# For a breakdown of the licensing, see README
License: LGPLv2+ and MIT and GPLv2+
Summary: A System and Service Manager
@@ -40,6 +40,11 @@ Source6: yum-protect-systemd.conf
# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v215..v215-stable
# i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done
+# Presently not accepted upstream, but we disable systemd-resolved in
+# the presets anyways, and this unbreaks anaconda/lorax/livecd-creator
+# etc.
+Patch0: 0001-resolved-Move-symlink-creation-from-tmpfiles-to-daem.patch
+
# kernel-install patch for grubby, drop if grubby is obsolete
Patch1000: kernel-install-grubby.patch
@@ -760,6 +765,9 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
%{_datadir}/systemd/gatewayd
%changelog
+* Mon Jul 07 2014 Colin Walters <walters at redhat.com> - 215-3
+- Add patch to disable resolve.conf symlink (#1043119)
+
* Sat Jul 06 2014 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> - 215-2
- Move systemd-journal-remote to systemd-journal-gateway package (#1114688)
- Disable /etc/mtab handling temporarily (#1116158)
More information about the scm-commits
mailing list