From 83df0500533e6e5b7a93b4d37df34a0952e2795b Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 18 Dec 2008 15:51:44 +0100 Subject: mirrorlist scope/softcoding cleanups --- src/core/libs/lib-pacman.sh | 2 +- src/core/libs/lib-ui-interactive.sh | 3 +-- src/core/procedures/base | 2 +- src/core/procedures/interactive | 4 +++- 4 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/core/libs/lib-pacman.sh b/src/core/libs/lib-pacman.sh index cb81943..f318aa8 100644 --- a/src/core/libs/lib-pacman.sh +++ b/src/core/libs/lib-pacman.sh @@ -76,7 +76,7 @@ do #TODO: this is a VERY, VERY dirty hack. we fall back to ftp for any non-core repo because we only have core on the CD. also user maybe didn't pick a mirror yet if [ "$repo" != core ] then - add_pacman_repo target ${repo} 'Include = /etc/pacman.d/mirrorlist' + add_pacman_repo target ${repo} "Include = $var_MIRRORLIST" else add_pacman_repo target ${repo} "Server = ${serverurl}" fi diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh index 2fdfa3e..f7f4ecb 100644 --- a/src/core/libs/lib-ui-interactive.sh +++ b/src/core/libs/lib-ui-interactive.sh @@ -38,7 +38,7 @@ interactive_configure_system() "/etc/hosts.deny" "Denied Network Services" \ "/etc/hosts.allow" "Allowed Network Services" \ "/etc/locale.gen" "Glibc Locales" \ - "/etc/pacman.d/mirrorlist" "Pacman Mirror List" \ + "$var_MIRRORLIST" "Pacman Mirror List" \ "Root-Password" "Set the root password" \ "Return" "Return to Main Menu" || FILE="Return" FILE=$ANSWER_OPTION @@ -826,7 +826,6 @@ interactive_select_source() var_PKG_SOURCE_TYPE= var_FILE_URL="file:///src/core/pkg" var_SYNC_URL= - var_MIRRORLIST="/etc/pacman.d/mirrorlist" ask_option no "Source selection" "Please select an installation source" \ "1" "CD-ROM or OTHER SOURCE" \ diff --git a/src/core/procedures/base b/src/core/procedures/base index 3c2a54f..fa88210 100644 --- a/src/core/procedures/base +++ b/src/core/procedures/base @@ -5,6 +5,7 @@ var_DEFAULTFS="/boot:32:ext2:+ swap:256:swap /:7500:ext3 /home:*:ext3" var_TARGET_DIR="/mnt" # When overriding this, do _not_ add a trailing /. It's not needed and maybe you could even break something var_RUNTIME_PACKAGES= var_PKG_FILE=$RUNTIME_DIR/package-list +var_MIRRORLIST="/etc/pacman.d/mirrorlist" var_UI_TYPE="cli" # set to cli or dia for dialog ###### Phases ( can be overridden by more specific procedures) ###### @@ -64,7 +65,6 @@ worker_select_source () var_PKG_SOURCE_TYPE='cd' var_FILE_URL="file:///src/core/pkg" var_SYNC_URL= - var_MIRRORLIST="/etc/pacman.d/mirrorlist" # if you override to use ftp (or ask user and he chooses ftp) don't forget to configure the network and to select_mirrors } diff --git a/src/core/procedures/interactive b/src/core/procedures/interactive index 6ee7023..dc1bf2b 100644 --- a/src/core/procedures/interactive +++ b/src/core/procedures/interactive @@ -115,7 +115,9 @@ worker_configure_system() # /etc/pacman.d/mirrorlist # add installer-selected mirror to the top of the mirrorlist if [ "$var_PKG_SOURCE_TYPE" = "ftp" -a "${SYNC_URL}" != "" ]; then - awk "BEGIN { printf(\"# Mirror used during installation\nServer = "${SYNC_URL}"\n\n\") } 1 " "${var_TARGET_DIR}/etc/pacman.d/mirrorlist" + debug "Adding choosen mirror (${SYNC_URL}) to ${var_TARGET_DIR}/$var_MIRRORLIST" + mirrorlist=`awk "BEGIN { printf(\"# Mirror used during installation\nServer = "${SYNC_URL}"\n\n\") } 1 " "${var_TARGET_DIR}/$var_MIRRORLIST"` + echo "$mirrorlist" > "${var_TARGET_DIR}/$var_MIRRORLIST" #TODO: test this, this may not work fi # /etc/rc.conf -- cgit v1.2.3-54-g00ecf From a988d7e0ff9fd1b20a3d51695500f91e5dcee594 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 18 Dec 2008 16:33:10 +0100 Subject: todo updates --- TODO | 3 ++- src/aif.sh | 6 ++++++ src/core/libs/lib-software.sh | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/TODO b/TODO index 2a69f10..ead4ef5 100644 --- a/TODO +++ b/TODO @@ -12,6 +12,7 @@ ALPHA PHASE: get some people to test and suggest ideas, while fixing bugs and re * find a way to make _cli_ask_checklist still userfriendly for long lists.. maybe we should just propose/ask to use dia if the list is too long * lib things sometimes call die_error but we go back to the menu.. or something.. i think * automatically configure grub for dm_crypt and lvm +* move "/tmp/pacman.conf" to runtime directory and variablize everywhere BETA PHASE: try to get aif on the (beta) installcd as an experimental, alternative installer. @@ -45,7 +46,7 @@ arguments to the procedure or asking a few questions. For automatic procedures, a profile could be the fundamental entitiy, whereas for interactive procedures it could provide some other defaults. * all dialog windows are equally sized. noone cares, right? -* we run mkinitcpio twice: one while installing kernel packages, once after +* we run mkinitcpio twice: one while installing kernel packages, once after configuring system (mkinitcpio.conf) configuring the system (mkinitcpio.conf). can we optimize this? * core/interactive -> install packages -> dependency cycles with glibc. not a problem? -> ASKDEV diff --git a/src/aif.sh b/src/aif.sh index 1b898d7..9bdea2d 100755 --- a/src/aif.sh +++ b/src/aif.sh @@ -271,6 +271,12 @@ module= procedure= +# TODO: you cannot override $var_OPTS_STRING, nor process_args. because profile not sourced yet +# we will hit '?)' and exit 5 +# solutions? don't make $var_OPTS_STRING overridable, source correct profile as early as possible so process_args gets known. remove the '?)' catchall (eg put it in the default process_args) so we don't hit it accidentially +# in that case -p needs to be the first option, but that's doable imho +# an alternative would be to provide an argumentstring for the profile. eg aif -p profile -a "-a a -b b -c c" + var_OPTS_STRING=":i:dlp:" # you can override this variable in your procedure. while getopts $var_OPTS_STRING OPTION do diff --git a/src/core/libs/lib-software.sh b/src/core/libs/lib-software.sh index af26137..6b4a1a8 100644 --- a/src/core/libs/lib-software.sh +++ b/src/core/libs/lib-software.sh @@ -26,7 +26,7 @@ run_mkinitcpio() installpkg() { notify "Package installation will begin now. You can watch the output in the progress window. Please be patient." target_special_fs on - run_background pacman-installpkg "$PACMAN_TARGET -S $TARGET_PACKAGES" $TMP_PACMAN_LOG + run_background pacman-installpkg "$PACMAN_TARGET -S $TARGET_PACKAGES" $TMP_PACMAN_LOG #TODO: There may be something wrong here. See http://projects.archlinux.org/?p=installer.git;a=commitdiff;h=f504e9ecfb9ecf1952bd8dcce7efe941e74db946 ASKDEV (Simo) follow_progress " Installing... Please Wait " $TMP_PACMAN_LOG wait_for pacman-installpkg -- cgit v1.2.3-54-g00ecf