From 9b0ac8025860ac426cb1bc7fd417a27fe2bed36a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 Dec 2013 21:22:22 +0100 Subject: gnu: Populate /etc upon startup. * gnu/packages/patches/dmd-getpw.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/system.scm (dmd): Use it. * gnu/system/vm.scm (system-qemu-image): Don't explicitly populate /etc; don't add ETC to the GC roots. * gnu/system/dmd.scm (dmd-configuration-file): Add 'etc' parameter. [config]: Populate /etc from there. --- gnu/packages/patches/dmd-getpw.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 gnu/packages/patches/dmd-getpw.patch (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/dmd-getpw.patch b/gnu/packages/patches/dmd-getpw.patch new file mode 100644 index 0000000000..c4f9c35951 --- /dev/null +++ b/gnu/packages/patches/dmd-getpw.patch @@ -0,0 +1,19 @@ +When bootstrapping and running as PID 1, /etc/{passwd,shadow} may be unavailable. +Gracefully handle that. + +diff --git a/modules/dmd/support.scm b/modules/dmd/support.scm +index 9b592c5..602e409 100644 +--- a/modules/dmd/support.scm ++++ b/modules/dmd/support.scm +@@ -151,7 +151,10 @@ There is NO WARRANTY, to the extent permitted by law."))) + + + ;; Home directory of the user. +-(define user-homedir (passwd:dir (getpwuid (getuid)))) ++(define user-homedir ++ (or (false-if-exception (passwd:dir (getpwuid (getuid)))) ++ (getenv "HOME") ++ "/")) + + ;; Logfile. + (define default-logfile -- cgit v1.2.3