From 1f7a8c8ae9fd84a60d8c02fd5c24bcfef52c3f80 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 16 Feb 2004 09:41:00 +0000 Subject: [PATCH] * Started setting up a proper init environment. svn path=/nixu/trunk/; revision=785 --- bootstrap.nix | 4 ---- fill-disk.sh | 2 +- init/builder.sh | 14 ++++++++++++++ init/default.nix | 9 +++++++++ init/init.sh | 14 ++++++++++++++ make-disk.sh | 2 +- pkgs.nix | 4 ++++ run.sh | 2 +- 8 files changed, 44 insertions(+), 7 deletions(-) delete mode 100644 bootstrap.nix create mode 100755 init/builder.sh create mode 100644 init/default.nix create mode 100644 init/init.sh create mode 100644 pkgs.nix diff --git a/bootstrap.nix b/bootstrap.nix deleted file mode 100644 index bd141c96ff8a..000000000000 --- a/bootstrap.nix +++ /dev/null @@ -1,4 +0,0 @@ -let { - pkgs = import pkgs/system/i686-linux.nix; - body = pkgs.bash; -} \ No newline at end of file diff --git a/fill-disk.sh b/fill-disk.sh index 8c09c788e9d9..b3c852ddb206 100755 --- a/fill-disk.sh +++ b/fill-disk.sh @@ -52,7 +52,7 @@ done) < /tmp/successors echo setting init symlink... initPath=$(/nix/bin/nix-store -qn $initExpr) rm -f $root/init -ln -s $initPath/bin/sh $root/init +ln -s $initPath/bin/init $root/init echo unmounting... umount $root diff --git a/init/builder.sh b/init/builder.sh new file mode 100755 index 000000000000..5809ad62a305 --- /dev/null +++ b/init/builder.sh @@ -0,0 +1,14 @@ +#! /bin/sh -e + +. $stdenv/setup + +mkdir $out +mkdir $out/bin + +sed \ + -e "s^@bash\@^$bash^g" \ + -e "s^@coreutils\@^$coreutils^g" \ + -e "s^@findutils\@^$findutils^g" \ + < $src > $out/bin/init + +chmod +x $out/bin/init diff --git a/init/default.nix b/init/default.nix new file mode 100644 index 000000000000..82bbb460db07 --- /dev/null +++ b/init/default.nix @@ -0,0 +1,9 @@ +{stdenv, bash, coreutils, findutils}: + +derivation { + name = "init"; + system = stdenv.system; + builder = ./builder.sh; + src = ./init.sh; + inherit stdenv bash coreutils findutils; +} diff --git a/init/init.sh b/init/init.sh new file mode 100644 index 000000000000..bb17ef5208f3 --- /dev/null +++ b/init/init.sh @@ -0,0 +1,14 @@ +#! @bash@/bin/sh -e + +export PATH=@bash@/bin:@coreutils@/bin:@findutils@/bin + +echo "--- Nix ---" + +#echo "remounting root..." + +echo "starting root shell..." + +@bash@/bin/sh + +echo "shutting down..." +exit 0 diff --git a/make-disk.sh b/make-disk.sh index e891159f9e8a..fb2c3a385455 100755 --- a/make-disk.sh +++ b/make-disk.sh @@ -18,7 +18,7 @@ fi # What to copy? -storeexpr=$(nix-instantiate ./bootstrap.nix) +storeexpr=$(echo '(import ./pkgs.nix).init' | nix-instantiate -) nix-store -rB $storeexpr nix-store -qn --requisites $storeexpr > $storepaths diff --git a/pkgs.nix b/pkgs.nix new file mode 100644 index 000000000000..b9fc7a222739 --- /dev/null +++ b/pkgs.nix @@ -0,0 +1,4 @@ +rec { + inherit (import pkgs/system/i686-linux.nix) stdenv bash coreutils findutils; + init = (import ./init) {inherit stdenv bash coreutils findutils;}; +} diff --git a/run.sh b/run.sh index 19c329f67b1f..5f6a9e34fe98 100755 --- a/run.sh +++ b/run.sh @@ -2,4 +2,4 @@ image=/tmp/disk.img -linux ubd0=$image init="/init" +linux ubd0="$image" mem=256M init="/init"