diff --git a/fill-disk.sh b/fill-disk.sh index 99bc0ac04867..5dfb264884ce 100755 --- a/fill-disk.sh +++ b/fill-disk.sh @@ -5,10 +5,10 @@ bootPath=@bootPath@ if ! test -n "$1" then - echo "need URL for manifest!" + echo "need harddisk device for installing!" exit else - manifest=$1 + device=$1 fi make_dir() { @@ -27,6 +27,17 @@ touch_file() { } root=/tmp/mnt +mkdir -p /tmp/mnt + +mount $device /tmp/mnt + +mkdir -p /nix +mkdir -p /nixpkgs/trunk/pkgs + +# temporary hack +mount --bind /mnt/cdrom1/nix /nix +mount --bind /mnt/cdrom1/pkgs /nixpkgs/trunk/pkgs + make_dir 00755 /bin make_dir 00755 /dev make_dir 00755 /proc @@ -77,8 +88,8 @@ cp -fa ../pkgs $root/nixpkgs/trunk make_dir 0755 /tmp/scripts cp -fa ../scripts $root/tmp -echo adding manifest -$NIX_CMD_PATH/nix-pull $manifest +#echo adding manifest +#$NIX_CMD_PATH/nix-pull $manifest echo adding packages export NIX_ROOT=$root @@ -87,8 +98,21 @@ unset NIX_LOG_DIR unset NIX_STATE_DIR unset NIX_CONF_DIR -storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -) -$NIX_CMD_PATH/nix-store -r $storeExpr +#storeExpr=$(echo '(import /tmp/scripts/pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -) +#storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -) +#$NIX_CMD_PATH/nix-store -r $storeExpr +#echo $storeExpr +#storeExpr2=$($NIX_CMD_PATH/nix-store -qR $($NIX_CMD_PATH/nix-store -r $storeExpr)) +#echo storeExpr $storeExpr +#echo $($NIX_CMD_PATH/nix-store -qR --include-outputs $storeExpr) + +echo copying store + +(while read storepaths; do + cp -fa $storepaths $root/nix/store +done) < /mnt/cdrom1/mystorepaths + +#cp -fa ../nix/store/* $root/nix/store #echo registering valid paths... #(while read storepath; do @@ -105,6 +129,8 @@ $NIX_CMD_PATH/nix-store -r $storeExpr # $NIX_CMD_PATH/nix-store --successor $line #done) < /tmp/mysuccessors +exit + echo setting init symlink... rm -f $root/init ln -s $sysvinitPath/sbin/init $root/init diff --git a/make-disk.sh b/make-disk.sh index 7427fd77c9a8..a229616b8ff1 100755 --- a/make-disk.sh +++ b/make-disk.sh @@ -1,9 +1,13 @@ #! /bin/sh -e +declare -a deps + archivesDir=/tmp/arch manifest=${archivesDir}/MANIFEST nixpkgs=/nixpkgs/trunk/pkgs fill_disk=$archivesDir/scripts/fill-disk.sh +storePaths=$archivesDir/mystorepaths +validatePaths=$archivesDir/validatepaths touch ${archivesDir}/blah chmod -f -R +w ${archivesDir}/* @@ -12,8 +16,7 @@ rm -rf ${archivesDir}/* NIX_CMD_PATH=/nix/bin storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -) -$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $storeExpr) $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -)) -#$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $storeExpr $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -)) +#$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $storeExpr) $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -)) # Location of sysvinit? sysvinitPath=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -)) @@ -25,12 +28,32 @@ nix=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PAT #nixDeps=$($NIX_CMD_PATH/nix-store -qR $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -)) -nixDeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -))) +#nixDeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -))) +echo $($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -))) >> $storePaths -echo $nixDeps +#echo $nixDeps > $storePaths + +utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -))) + +(while read storepath; do + cp -fa --parents ${storepath} ${archivesDir} +done) < $storePaths + +echo utillinux $utilLinux + +for i in $utilLinux; do + echo i $i + deps=( $($NIX_CMD_PATH/nix-store -q --references $i) ) + echo length ${#deps[@]} + if test "${#deps[@]}" = 0 + then + echo zarro + fi +done cp -fa ${nixpkgs} ${archivesDir} -cp -fa --parents ${nixDeps} ${archivesDir} +#cp -fa --parents ${nixDeps} ${archivesDir} +cp -fau --parents ${utilLinux} ${archivesDir} mkdir ${archivesDir}/scripts cp -fa * ${archivesDir}/scripts sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \