From aa963b8ddb844383346aaa70bf49f4417896d693 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 18 Dec 2008 16:43:07 +0100 Subject: quickinst very early WIP --- src/core/procedures/quickinst | 108 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) (limited to 'src/core/procedures/quickinst') diff --git a/src/core/procedures/quickinst b/src/core/procedures/quickinst index 9e92c03..314569c 100644 --- a/src/core/procedures/quickinst +++ b/src/core/procedures/quickinst @@ -1,7 +1,111 @@ #!/bin/sh +depend_procedure core base -quickinst_finished () +# This is a port of the original /arch/quickinst script. + +# TODO: nowhere rely on /tmp + + +# TODO: find a way to make profilespecific arguments and usage function work (see src/aif.sh) +usage() { + echo "quickinst " + echo + echo "This script is for users who would rather partition/mkfs/mount their target" + echo "media manually than go through the routines in the setup script." + echo + echo "First make sure you have all your filesystems mounted under ." + echo "e.g. mount -t iso9660 /dev/sdc or /dev/sr0 (for new naming sheme) /src " + echo "Then run this script to install all base packages to ." + echo + if [ -e /usr/bin/wget ]; then + echo " must be either 'ftp' or 'cd'" + else + echo " must be 'cd'" + fi + echo + echo "Examples:" + if [ -e /usr/bin/wget ]; then + if [ "$(uname -m)" = "x86_64" ]; then + echo " quickinst ftp /mnt ftp://ftp.archlinux.org/core/os/x86_64" + else + echo " quickinst ftp /mnt ftp://ftp.archlinux.org/core/os/i686" + fi + fi + + echo " quickinst cd /mnt /src/core/pkg" + echo "" + exit 0 +} + + +# TODO: implement correctly +worker_configure () { +# var_PKG_SOURCE_TYPE +# var_TARGET_DIR +# var_FILE_URL or var_SYNC_URL +} + +# TODO: clean up everything below this + +PACMAN= +[ -f /tmp/usr/bin/pacman.static ] && PACMAN=/tmp/usr/bin/pacman.static +[ -f /usr/bin/pacman.static ] && PACMAN=/usr/bin/pacman.static +if [ "$PACMAN" = "" ]; then + cd /tmp + if [ "$INSTMODE" = "ftp" ]; then + echo "Downloading pacman..." + wget $PKGARG/pacman*.pkg.tar.gz + if [ $? -gt 0 ]; then + echo "error: Download failed" + exit 1 + fi + tar -xzf pacman*.pkg.tar.gz + elif [ "$INSTMODE" = "cd" ]; then + echo "Unpacking pacman..." + tar -xzf $PKGARG/pacman*.pkg.tar.gz + fi +fi +[ -f /tmp/usr/bin/pacman.static ] && PACMAN=/tmp/usr/bin/pacman.static +if [ "$PACMAN" = "" ]; then + echo "error: Cannot find the pacman.static binary!" + exit 1 +fi + +if [ "$INSTMODE" = "ftp" ]; then + echo "[core]" >/tmp/pacman.conf + echo "Server = $PKGARG" >>/tmp/pacman.conf + mkdir -p $DESTDIR/var/cache/pacman/pkg /var/cache/pacman >/dev/null 2>&1 + rm -f /var/cache/pacman/pkg >/dev/null 2>&1 + ln -sf $DESTDIR/var/cache/pacman/pkg /var/cache/pacman/pkg >/dev/null 2>&1 +fi + +if [ "$INSTMODE" = "cd" ]; then + echo "[core]" >/tmp/pacman.conf + echo "Server = file://$PKGARG" >>/tmp/pacman.conf + mkdir -p $DESTDIR/var/cache/pacman/pkg /var/cache/pacman >/dev/null 2>&1 + rm -f /var/cache/pacman/pkg >/dev/null 2>&1 + ln -sf $PKGARG /var/cache/pacman/pkg >/dev/null 2>&1 +fi + +! [ -d $DESTDIR/var/lib/pacman ] && mkdir -p $DESTDIR/var/lib/pacman +! [ -d /var/lib/pacman ] && mkdir -p /var/lib/pacman +# mount proc/sysfs first, so mkinitrd can use auto-detection if it wants +! [ -d $DESTDIR/proc ] && mkdir $DESTDIR/proc +! [ -d $DESTDIR/sys ] && mkdir $DESTDIR/sys +! [ -d $DESTDIR/dev ] && mkdir $DESTDIR/dev +mount -t proc none $DESTDIR/proc +mount -t sysfs none $DESTDIR/sys +mount -o bind /dev $DESTDIR/dev +$PACMAN -r $DESTDIR --config /tmp/pacman.conf -Sy base +umount $DESTDIR/proc $DESTDIR/sys $DESTDIR/dev +if [ $? -gt 0 ]; then + echo + echo "Package installation FAILED." + echo + exit 1 +fi + echo echo "Package installation complete." echo @@ -37,4 +141,4 @@ echo echo "Then exit your chroot shell, edit $DESTDIR/etc/fstab and" echo "$DESTDIR/etc/rc.conf, and reboot!" echo -} +exit 0 -- cgit v1.2.3-54-g00ecf From ce3afefeb9728619a06989a67e7ffd5ed299ecf8 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 20 Dec 2008 11:47:18 +0100 Subject: softcode architecture + some small misc stuff in yaourt lib --- src/core/libs/lib-ui-interactive.sh | 2 +- src/core/procedures/base | 2 ++ src/core/procedures/quickinst | 6 +----- unofficial/modules/yaourt/libs/lib-yaourt-sh | 9 +++++---- 4 files changed, 9 insertions(+), 10 deletions(-) (limited to 'src/core/procedures/quickinst') diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh index f7f4ecb..543495a 100644 --- a/src/core/libs/lib-ui-interactive.sh +++ b/src/core/libs/lib-ui-interactive.sh @@ -864,7 +864,7 @@ interactive_select_mirror() { ask_option no "Mirror selection" "Select an FTP/HTTP mirror" $MIRRORS "Custom" "_" || return 1 local _server=$ANSWER_OPTION if [ "${_server}" = "Custom" ]; then - ask_string "Enter the full URL to core repo." "ftp://ftp.archlinux.org/core/os/i686" || return 1 + ask_string "Enter the full URL to core repo." "ftp://ftp.archlinux.org/core/os/$var_ARCH" || return 1 var_SYNC_URL=$ANSWER_STRING else # Form the full URL for our mirror by grepping for the server name in diff --git a/src/core/procedures/base b/src/core/procedures/base index fa88210..94a9d1e 100644 --- a/src/core/procedures/base +++ b/src/core/procedures/base @@ -7,6 +7,8 @@ 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 +var_ARCH=`uname -m` #works for i686 TODO: check if it works for x86_64 +[ -z "$var_ARCH" ] && die_error "Could not determine your architecture" ###### Phases ( can be overridden by more specific procedures) ###### phase_preparation=(\ diff --git a/src/core/procedures/quickinst b/src/core/procedures/quickinst index 314569c..73c1f46 100644 --- a/src/core/procedures/quickinst +++ b/src/core/procedures/quickinst @@ -25,11 +25,7 @@ usage() { echo echo "Examples:" if [ -e /usr/bin/wget ]; then - if [ "$(uname -m)" = "x86_64" ]; then - echo " quickinst ftp /mnt ftp://ftp.archlinux.org/core/os/x86_64" - else - echo " quickinst ftp /mnt ftp://ftp.archlinux.org/core/os/i686" - fi + echo " quickinst ftp /mnt ftp://ftp.archlinux.org/core/os/$var_ARCH" fi echo " quickinst cd /mnt /src/core/pkg" diff --git a/unofficial/modules/yaourt/libs/lib-yaourt-sh b/unofficial/modules/yaourt/libs/lib-yaourt-sh index fd9c4d0..56e03df 100644 --- a/unofficial/modules/yaourt/libs/lib-yaourt-sh +++ b/unofficial/modules/yaourt/libs/lib-yaourt-sh @@ -6,16 +6,17 @@ _runtime_yaourt () { if ! list_pacman_repos runtime | grep -q archlinuxfr then - add_pacman_repo runtime archlinuxfr 'Server = http://repo.archlinux.fr/i686' + add_pacman_repo runtime archlinuxfr "Server = http://repo.archlinux.fr/$var_ARCH" fi - $PACMAN -Sy yaourt || die_error "_runtime_yaourt Cannot install yaourt" - YAOURT=`sed 's/pacman/yaourt/' <<< $PACMAN` - YAOURT_TARGET=`sed 's/pacman/yaourt/' <<< $PACMAN_TARGET` + $PACMAN -Sy yaourt || die_error "_runtime_yaourt Cannot install yaourt" #TODO: library-ize package installation + YAOURT=${PACMAN//pacman/yaourt} + YAOURT_TARGET=${PACMAN_TARGET//pacman/yaourt} } _yaourt_replace_pacman () { + show_warning "Security warning!" "Keep in mind that packages on AUR are untrusted! Install them on your own risk" _runtime_yaourt PACMAN=$YAOURT PACMAN_TARGET=$YAOURT_TARGET -- cgit v1.2.3-54-g00ecf From 0c714356dc7f78892ca413ce1895d7d9dfa83c5c Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 20 Dec 2008 18:47:34 +0100 Subject: fix for incorrect shebangs --- src/core/libs/lib-blockdevices-filesystems.sh | 2 +- src/core/libs/lib-misc.sh | 2 +- src/core/libs/lib-pacman.sh | 2 +- src/core/libs/lib-software.sh | 2 +- src/core/libs/lib-ui-interactive.sh | 2 +- src/core/libs/lib-ui.sh | 2 +- src/core/procedures/interactive | 2 +- src/core/procedures/quickinst | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/core/procedures/quickinst') diff --git a/src/core/libs/lib-blockdevices-filesystems.sh b/src/core/libs/lib-blockdevices-filesystems.sh index fad1171..bb44295 100644 --- a/src/core/libs/lib-blockdevices-filesystems.sh +++ b/src/core/libs/lib-blockdevices-filesystems.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # FORMAT DEFINITIONS: diff --git a/src/core/libs/lib-misc.sh b/src/core/libs/lib-misc.sh index 29e4c2e..f45c5c9 100644 --- a/src/core/libs/lib-misc.sh +++ b/src/core/libs/lib-misc.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # run a process in the background, and log it's stdout and stderr to a specific logfile diff --git a/src/core/libs/lib-pacman.sh b/src/core/libs/lib-pacman.sh index 26fb90e..d613052 100644 --- a/src/core/libs/lib-pacman.sh +++ b/src/core/libs/lib-pacman.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # taken and slightly modified from the quickinst script. # don't know why one should need a static pacman because we already have a working one on the livecd. diff --git a/src/core/libs/lib-software.sh b/src/core/libs/lib-software.sh index 6b4a1a8..9cbc34d 100644 --- a/src/core/libs/lib-software.sh +++ b/src/core/libs/lib-software.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash TMP_MKINITCPIO_LOG=$RUNTIME_DIR/mkinitcpio.log TMP_PACMAN_LOG=$RUNTIME_DIR/pacman.log diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh index 543495a..5fb1aa6 100644 --- a/src/core/libs/lib-ui-interactive.sh +++ b/src/core/libs/lib-ui-interactive.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #TODO: get backend code out of here!! diff --git a/src/core/libs/lib-ui.sh b/src/core/libs/lib-ui.sh index ac73b3e..2315394 100644 --- a/src/core/libs/lib-ui.sh +++ b/src/core/libs/lib-ui.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # TODO: implement 'retry until user does it correctly' everywhere # TODO: at some places we should check if $1 etc is only 1 word because we often depend on that # TODO: standardize. eg everything $1= question/title, $2=default diff --git a/src/core/procedures/interactive b/src/core/procedures/interactive index d4c3cf6..1a89408 100644 --- a/src/core/procedures/interactive +++ b/src/core/procedures/interactive @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash depend_procedure core base # esp for auto_{network,locale,fstab}, intro and set_clock workers diff --git a/src/core/procedures/quickinst b/src/core/procedures/quickinst index 73c1f46..b95bfa4 100644 --- a/src/core/procedures/quickinst +++ b/src/core/procedures/quickinst @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash depend_procedure core base # This is a port of the original /arch/quickinst script. -- cgit v1.2.3-54-g00ecf