diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-12-08 21:22:22 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-12-08 22:43:56 +0100 |
commit | 9b0ac8025860ac426cb1bc7fd417a27fe2bed36a (patch) | |
tree | f2a703efdddbdf89b5cd79e83739bf7f743e3b26 /gnu/packages | |
parent | 677078b48f649588f588c6adef0bb0aba70f7c8c (diff) | |
download | guix-9b0ac8025860ac426cb1bc7fd417a27fe2bed36a.tar.gz guix-9b0ac8025860ac426cb1bc7fd417a27fe2bed36a.zip |
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.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/patches/dmd-getpw.patch | 19 | ||||
-rw-r--r-- | gnu/packages/system.scm | 3 |
2 files changed, 21 insertions, 1 deletions
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 diff --git a/gnu/packages/system.scm b/gnu/packages/system.scm index f92d874099..536234f4aa 100644 --- a/gnu/packages/system.scm +++ b/gnu/packages/system.scm @@ -45,7 +45,8 @@ version ".tar.gz")) (sha256 (base32 - "07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg")))) + "07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg")) + (patches (list (search-patch "dmd-getpw.patch"))))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var"))) |