~ruther/guix-local

5c0b93b2441c338ad8dda97c64a54832be76840d — Ludovic Courtès 1 year, 7 months ago 7bad04f
daemon: Bind-mount /etc/nsswitch.conf & co. only if it exists.

Those files may be missing in some contexts, for instance within the
build environment.

* nix/libstore/build.cc (DerivationGoal::runChild): Add /etc/resolv.conf
and related files to ‘ss’ only if they exist.

Change-Id: Ie19664a86c8101a1dc82cf39ad4b7abb10f8250a
1 files changed, 5 insertions(+), 4 deletions(-)

M nix/libstore/build.cc
M nix/libstore/build.cc => nix/libstore/build.cc +5 -4
@@ 2093,10 2093,11 @@ void DerivationGoal::runChild()
               network, so give them access to /etc/resolv.conf and so
               on. */
            if (fixedOutput) {
                ss.push_back("/etc/resolv.conf");
                ss.push_back("/etc/nsswitch.conf");
                ss.push_back("/etc/services");
                ss.push_back("/etc/hosts");
		auto files = { "/etc/resolv.conf", "/etc/nsswitch.conf",
			       "/etc/services", "/etc/hosts" };
		for (auto & file: files) {
		    if (pathExists(file)) ss.push_back(file);
		}
            }

            for (auto & i : ss) dirsInChroot[i] = i;