From f25f2a4209f9f86ce3d795f7531e128476ef9f68 Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 9 Sep 2023 07:15:56 +0300 Subject: [PATCH] nixos/stage-2-init: dont use install to create /etc/nixos if it's a symlink MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it should be checking that it is not a broken symlink but bash conditionals are difficult -d was causing the directory to not be created if it does not exist ``` $ install -m 0755 -d $PWD/hello $ ls hello/ $ ln -s something notexist 'notexist' -> 'something' $ ls -l lrwxrwxrwx artturin artturin 9 B Sat Sep 9 06:59:44 2023 notexist@ ⇒ something drwxr-xr-x artturin artturin 2 B Sat Sep 9 06:59:36 2023 hello/ $ install -m 0755 -d $PWD/notexist install: cannot change permissions of ‘/home/artturin/nixgits/my-nixpkgs/test/notexist’: No such file or directory ``` --- nixos/modules/system/boot/stage-2-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh index c0af29e3b990..5a2133f960e2 100755 --- a/nixos/modules/system/boot/stage-2-init.sh +++ b/nixos/modules/system/boot/stage-2-init.sh @@ -105,7 +105,7 @@ fi # Required by the activation script install -m 0755 -d /etc -if [ -d "/etc/nixos" ]; then +if [ ! -h "/etc/nixos" ]; then install -m 0755 -d /etc/nixos fi install -m 01777 -d /tmp