diff options
-rw-r--r-- | TODO | 24 | ||||
-rwxr-xr-x | src/aif.sh | 4 | ||||
-rw-r--r-- | src/core/libs/lib-blockdevices-filesystems.sh | 27 | ||||
-rw-r--r-- | src/core/libs/lib-ui.sh | 2 |
4 files changed, 24 insertions, 33 deletions
@@ -3,36 +3,22 @@ See also the FIXME's and TODO's in the code. ALPHA PHASE: get some people to test and suggest ideas, while fixing bugs and refactoring General: * setup bugtracker/roadmap thingie -* go over ALL files and check all function/executable calls are to existing - things (eg no dirty leftovers for functions that have been renamed) -* same for variables -* go over all files and clean up -* fix to use $var_UI_TYPE where needed * write the ui functions for asking questions etc for both cli and dialog and port all code to use it. -* by now we should be able to shift dia/cli in all procedures and everything -should keep working fine -* sometimes you can't see the whole question in ask_yesno (eg after manually partitioning/setting mountpoints) - -> maybe just increase the panel for all dia ask_yesno's -> fixed now i think with automatic height calculation -* find a way to not have to preload libs and stuff, only load them when -needed. -> faster start of install program +* find a way to not have to preload libs and stuff, only load them when needed. -> faster start of install program Specifically: -* core/interactive gui transparancy: interactive autoprepare, package selection +* core/interactive: gui transparancy: interactive autoprepare, package selection * core/interactive: fix workaround needed for installpkg exitcode * core/interactive bug: swap space 0 -> invalid? * core/interactive: keymap setting from installer does not go in $target/etc/rc.conf -* core/interactive: try out different installation methods -* core/interactive: manual filesystem mountpoints sometimes ok, sometimes filesystem creation is "very fast" and the filesystems are -not mounted under /mnt +* core/interactive: manual filesystem mountpoints sometimes ok, sometimes filesystem creation is "very fast" and the filesystems are not mounted under /mnt * core/interactive or lib-ui: don't echo the name/id of selection options in dia mode * core/base: implement as specified in README * core/quickinst: figure out what needs to be done and do it. -* dieter/automatic: wait for yaourt --config fix -* dieter/automatic: put config files from svn in place first, so that if a package has an update, it can do it's thing. -* on boot after fresh install sometimes filesystem creation date is newer then current date -> fsck. sometimes even forced reboot. (i've had this witch /arch/setup too) --> ASKDEV +* time totally incorrect during install -> filesystem creation date is newer then current date -> on reboot in new system fsck. sometimes even forced reboot. (i've had this witch /arch/setup too). a tool to configure the date? run ntp? (not always network available!) -> ASKDEV * /home doesn't get made separately in automatic installer. it's not formatted in sfdisk or _mkfs'd. is this only in virtualbox or elsewhere too? + BETA PHASE: try to get aif on the (beta) installcd as an experimental, alternative installer. * involve broader community * fix everything @@ -3,7 +3,9 @@ ###### Set some default variables or get them from the setup script ###### TITLE="Arch Linux Installation Framework" LOG="/dev/tty7" -LOGFILE=/home/arch/aif/runtime/aif.log #TODO: maybe we could use a flag to en/disable logging to a file. +LOGFILE=/home/arch/aif/runtime/aif.log + +#TODO: maybe we could use optional flags to en/disable logging to a file, override UI_TYPE etc. ###### Miscalleaneous functions ###### diff --git a/src/core/libs/lib-blockdevices-filesystems.sh b/src/core/libs/lib-blockdevices-filesystems.sh index 7b0f85b..9f88db2 100644 --- a/src/core/libs/lib-blockdevices-filesystems.sh +++ b/src/core/libs/lib-blockdevices-filesystems.sh @@ -5,7 +5,7 @@ TMP_FSTAB=/home/arch/aif/runtime/.fstab # procedural code from quickinst functionized and fixed. # there were functions like this in the setup script too, with some subtle differences. see below -# NOTE: why were the functions in the setup called CHROOT_mount/umount? this is not chrooting ? +# NOTE: why were the functions in the setup called CHROOT_mount/umount? this is not chrooting ? ASKDEV target_special_fs () { [ "$1" = on -o "$1" = off ] || die_error "special_fs needs on/off argument" @@ -13,12 +13,12 @@ target_special_fs () then # mount proc/sysfs first, so mkinitrd can use auto-detection if it wants ! [ -d $var_TARGET_DIR/proc ] && mkdir $var_TARGET_DIR/proc - ! [ -d $var_TARGET_DIR/sys ] && mkdir $var_TARGET_DIR/sys - ! [ -d $var_TARGET_DIR/dev ] && mkdir $var_TARGET_DIR/dev + ! [ -d $var_TARGET_DIR/sys ] && mkdir $var_TARGET_DIR/sys + ! [ -d $var_TARGET_DIR/dev ] && mkdir $var_TARGET_DIR/dev #mount, if not mounted yet - mount | grep -q "$var_TARGET_DIR/proc" || mount -t proc none $var_TARGET_DIR/proc || die_error "Could not mount $var_TARGET_DIR/proc" #NOTE: setup script uses mount -t proc proc ? what's best? - mount | grep -q "$var_TARGET_DIR/sys" || mount -t sysfs none $var_TARGET_DIR/sys || die_error "Could not mount $var_TARGET_DIR/sys" # NOTE: setup script uses mount -t sysfs sysfs ? what's best? - mount | grep -q "$var_TARGET_DIR/dev" || mount -o bind /dev $var_TARGET_DIR/dev || die_error "Could not mount $var_TARGET_DIR/dev" + mount | grep -q "$var_TARGET_DIR/proc" || mount -t proc none $var_TARGET_DIR/proc || die_error "Could not mount $var_TARGET_DIR/proc" # NOTE: setup script uses mount -t proc proc ? what's best? ASKDEV + mount | grep -q "$var_TARGET_DIR/sys" || mount -t sysfs none $var_TARGET_DIR/sys || die_error "Could not mount $var_TARGET_DIR/sys" # NOTE: setup script uses mount -t sysfs sysfs ? what's best? ASKDEV + mount | grep -q "$var_TARGET_DIR/dev" || mount -o bind /dev $var_TARGET_DIR/dev || die_error "Could not mount $var_TARGET_DIR/dev" elif [ "$1" = off ] then umount $var_TARGET_DIR/proc || die_error "Could not umount $var_TARGET_DIR/proc" @@ -36,7 +36,7 @@ target_umountall() infofy "Disabling swapspace, unmounting already mounted disk devices..." swapoff -a >/dev/null 2>&1 umount $(mount | grep -v "${var_TARGET_DIR} " | grep "${var_TARGET_DIR}" | sed 's|\ .*||g') >/dev/null 2>&1 - umount $(mount | grep "${var_TARGET_DIR} " | sed 's|\ .*||g') >/dev/null 2>&1 + umount $(mount | grep "${var_TARGET_DIR} " | sed 's|\ .*||g') >/dev/null 2>&1 } @@ -92,7 +92,8 @@ getuuid() [ "${1%%/[hs]d?[0-9]}" != "${1}" ] && echo "$(blkid -s UUID -o value ${1})" } -# taken from setup. slightly optimized. TODO: fix identation + can be improved more + +# taken from setup. slightly optimized. findpartitions() { workdir="$PWD" for devpath in $(finddisks) @@ -101,7 +102,7 @@ findpartitions() { cd /sys/block/$disk for part in $disk* do - # check if not already assembled to a raid device + # check if not already assembled to a raid device. TODO: what is the significance of the 5? ASKDEV if ! [ "$(grep $part /proc/mdstat 2>/dev/null)" -o "$(fstype 2>/dev/null </dev/$part | grep lvm2)" -o "$(sfdisk -c /dev/$disk $(echo $part | sed -e "s#$disk##g") 2>/dev/null | grep "5")" ] then if [ -d $part ] @@ -147,7 +148,7 @@ findpartitions() { [ "$1" ] && echo $1 done fi - + cd "$workdir" } @@ -162,7 +163,7 @@ EOF } -# TODO: $1 is what?? +# TODO: $1 is what?? ASKDEV # taken from setup. slightly edited. mapdev() { partition_flag=0 @@ -197,9 +198,11 @@ mapdev() { fi else echo "DEVICE NOT FOUND" >&2 + return 2 fi } + # _mkfs() taken from setup code and slightly improved. # Create and mount filesystems in our destination system directory. # @@ -385,7 +388,7 @@ EOF } -# makes and mounts filesystems#TODO: don't use files but pass variables, integrate this with other functions +# makes and mounts filesystems #TODO: don't use files but pass variables, integrate this with other functions # $1 file with setup fix_filesystems () { diff --git a/src/core/libs/lib-ui.sh b/src/core/libs/lib-ui.sh index 3587b11..d54ea0d 100644 --- a/src/core/libs/lib-ui.sh +++ b/src/core/libs/lib-ui.sh @@ -1,5 +1,5 @@ #!/bin/sh -# TODO: lot's of implementation work still open in this library. especially the dialog stuff +# TODO: lot's of implementation work still open in this library. especially the dialog & $var_UI_TYPE stuff # Taken from setup. we store dialog output in a file. TODO: can't we do this with variables? ASKDEV |