From cd1e4aefc13f463af7338c43eb74f0d70eb2f2cc Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 10 Jun 2009 21:46:42 +0000 Subject: [PATCH] * Break the cyclic dependency between the system derivation and Grub's menu.lst. svn path=/nixos/branches/modular-nixos/; revision=15931 --- lib/make-iso9660-image.sh | 2 +- modules/installer/cd-dvd/iso-image.nix | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/make-iso9660-image.sh b/lib/make-iso9660-image.sh index d3f220ae4f5..3305b8856e2 100644 --- a/lib/make-iso9660-image.sh +++ b/lib/make-iso9660-image.sh @@ -41,7 +41,7 @@ touch pathlist # Add the individual files. for ((i = 0; i < ${#targets_[@]}; i++)); do stripSlash "${targets_[$i]}" - echo "$res=$(readlink -f ${sources_[$i]})" >> pathlist + echo "$res=${sources_[$i]}" >> pathlist done diff --git a/modules/installer/cd-dvd/iso-image.nix b/modules/installer/cd-dvd/iso-image.nix index bea9da2d03f..a3bd94805dc 100644 --- a/modules/installer/cd-dvd/iso-image.nix +++ b/modules/installer/cd-dvd/iso-image.nix @@ -132,6 +132,14 @@ in source = pkgs.runCommand "empty" {} "ensureDir $out"; target = "/nix/store"; } + { # Another quick hack: the kernel needs a systemConfig + # parameter in menu.lst, but the system config depends on + # menu.lst. Break the cyclic dependency by having a /system + # symlink on the CD, and having menu.lst refer to /system. + source = pkgs.runCommand "system" {} + "ln -s ${config.system.build.system} $out"; + target = "/system"; + } ]; # The Grub menu. @@ -142,7 +150,7 @@ in chainloader +1 title NixOS Installer / Rescue - kernel /boot/vmlinuz init=${config.system.build.bootStage2} systemConfig=${config.system.build.system} ${toString config.boot.kernelParams} + kernel /boot/vmlinuz init=${config.system.build.bootStage2} systemConfig=/system ${toString config.boot.kernelParams} initrd /boot/initrd '';