Provide. Not provides. btw something is messed up. some of my complaints on your patch 3 are taken care of in patch 2 so you fixed them in patch 2 but redid the issues in patch 3? maybe you should merge patch 2 and 3
On Sun, 20 Feb 2011 23:09:36 -0500 [email protected] wrote: > interactive_syslinux depends on the syslinux-install_update script that > is in the Arch Syslinux package. > --- > src/core/libs/lib-blockdevices-filesystems.sh | 1 + > src/core/libs/lib-ui-interactive.sh | 159 > +++++++++++++++++++++++-- > src/core/procedures/base | 1 + > 3 files changed, 153 insertions(+), 8 deletions(-) > > diff --git a/src/core/libs/lib-blockdevices-filesystems.sh > b/src/core/libs/lib-blockdevices-filesystems.sh > index ac749a3..0ba2070 100644 > --- a/src/core/libs/lib-blockdevices-filesystems.sh > +++ b/src/core/libs/lib-blockdevices-filesystems.sh > @@ -76,6 +76,7 @@ fs_on[dm_crypt]=${fs_on_dm_crypt[@]} > fs_mountable=(ext2 ext3 ext4 nilfs2 xfs jfs vfat reiserfs) > fs_label_mandatory=('lvm-vg' 'lvm-lv' 'dm_crypt') > fs_label_optional=('swap' 'ext2' 'ext3' 'ext4' 'reiserfs' 'nilfs2' 'xfs' > 'jfs' 'vfat') > +syslinux_supported_fs=('ext2' 'ext3' 'ext4' 'btrfs' 'vfat') > > # list needed packages per filesystem > declare -A filesystem_pkg=(["lvm-pv"]="lvm2" ["xfs"]="xfsprogs" > ["jfs"]="jfsutils" ["reiserfs"]="reiserfsprogs" ["nilfs2"]="nilfs-utils" > ["vfat"]="dosfstools" ["dm_crypt"]="cryptsetup" > ["btrfs"]=btrfs-progs-unstable) > diff --git a/src/core/libs/lib-ui-interactive.sh > b/src/core/libs/lib-ui-interactive.sh > index 85a3a5f..16a9600 100644 > --- a/src/core/libs/lib-ui-interactive.sh > +++ b/src/core/libs/lib-ui-interactive.sh > @@ -3,6 +3,7 @@ > > # Global Variables > grubmenu="/boot/grub/menu.lst" # be sure to override this if you have it > somewhere else > +syslinuxmenu="/boot/syslinux/syslinux.cfg" the comment on the grubmenu lines applies to both variables. > > DEVS="$(findblockdevices '_ ')" > if [ "$DEVS" = " " ]; then > @@ -1111,12 +1116,150 @@ EOF > fi > } > > -interactive_bootloader_menu() { > - # $1 - Bootloader Name > - # $2 - Bootloader Configuration Files > +interactive_syslinux() { > + # Check if Syslinux in installed > + [[ ! -f "$var_TARGET_DIR/sbin/extlinux" ]] && show_warning "No > Syslinux?" "Error: Couldn't find $var_TARGET_DIR/sbin/extlinux. Is SYSLINUX > installed?" && return 1 > + > + debug FS "starting interactive_syslinux" > + > + # Find and Store the device that has the root filesystem > + get_device_with_mount '/' || return 1 > + PART_ROOT="$ANSWER_DEVICE" > + > + # Gets booot device > + get_device_with_mount '/boot' > + bootdev="$ANSWER_DEVICE" > + > + # Check to see if /boot or / (root) has a valid FS type and set bootpart > + # bootpart == device with /boot dir > + if [[ $bootdev ]]; then > + filesystem="$(awk '/ \/boot /{print $4}' $TMP_FILESYSTEMS)" > + debug FS "$bootdev - FS type: $filesystem" > + > + local bootpart="$bootdev" > + else > + filesystem="$(awk '/ \/ /{print $4}' $TMP_FILESYSTEMS)" > + debug FS "$PART_ROOT - FS type: $filesystem" > + > + local bootpart="$PART_ROOT" > + fi > > - if [[ $1 = GRUB ]]; then > + if ! check_is_in "$filesystem" "${syslinux_supported_fs[@]}"; then > + show_warning "Invalid FS" "Error: Syslinux only supports > EXT2/3/4, BTRFS, and VFAT" leverage ${syslinux_supported_fs[@]} in the warning > + return 1 > + fi > + > + # remove default entries by truncating file at our little tag (#-*) > + sed -i -e '/#-\*/q' "$syslinuxmenu" > + > + # Generate menu and prompt user to edit it > + interactive_bootloader_menu "syslinux" "$syslinuxmenu" > + > + if device_is_raid "$bootpart"; then > + debug FS "Software RAID detected" > + local onraid=true > + # Notify the user or trust the scripts? > + fi > + > + debug FS "Installing Syslinux > ($var_TARGET_DIR/usr/lib/syslinux/syslinux-install_update)" > + inform "Installing Syslinux..." > + if ! "$var_TARGET_DIR/usr/lib/syslinux/syslinux-install_update" -i -c > /mnt; then > + debug FS "FAILED: syslinux-install_update -i -c /mnt failed" > + show_warning "FAILED" "syslinux-install_update -i -c /mnt > failed" > + return 1 > + fi > + > + if ask_yesno "Set boot flag(s) and install the Syslinux MBR?" yes; then > + inform "Setting Boot Flag(s)...\nThis could take a while. > Please be patient.\n\n" syslinuxprog > + "$var_TARGET_DIR/usr/lib/syslinux/syslinux-install_update" -a > -c /mnt > + rt=$? > + case "$rt" in > + 0) > + debug FS "Successfully set boot flag(s)" > + ;; > + 1) > + debug FS "Failed to set boot flag. Function in > syslinux-install_update exited with status $rt" > + notify "Failed to set boot flag. MBR not > installed!" && return 1 > + ;; > + 3) > + debug FS "Failed to set boot flag(s). > syslinux-install_update -a exited with status $rt" > + notify "Failed to set boot flag(s)! MBR not > installed!" && return 1 > + ;; > + *) > + debug FS "Failde to set boot flag(s). > syslinux-install_update -a failed with an unkown Error Code - $rt" > + notify "Failed to set boot flag(s). MBR not > installed" && return 1 > + ;; > + esac > + > + inform "Installing Syslinux MBR..." syslinuxprog > + "$var_TARGET_DIR/usr/lib/syslinux/syslinux-install_update" -m > -c /mnt > + rt=$? > + case "$rt" in > + 0) > + debug FS "Successfully installed MBR(s)" > + ;; > + 1) > + debug FS "Failed install MBR. Function in > syslinux-install_update -m exited with status $rt" > + notify "Failed to install the MBR!." && return 1 > + ;; > + 4) > + debug FS "Failed to install MBR. > syslinux-install_update -m exited with status $rt" > + notify "Failed to install MBR!" && return 1 > + ;; > + *) > + debug FS "Failed to install MBR. > syslinux-install_update -m failed with an unkown Error Code - $rt" > + notify "Failed to install the MBR!" && return 1 > + ;; > + esac > + fi > + notify "Syslinux Installation Successful" > +} > + > +generate_syslinux_menu () { > + get_kernel_parameters > + > + cat >>$syslinuxmenu <<EOF > + > +# (0) Arch Linux > +LABEL arch > + MENU LABEL Arch Linux > + LINUX ../vmlinuz26 > + APPEND $kernel_parameters > + INITRD ../kernel26.img > + > +# (1) Arch Linux Fallback > +LABEL archfallback > + MENU LABEL Arch Linux Fallback > + LINUX ../vmlinuz26 > + APPEND $kernel_parameters > + INITRD ../kernel26-fallback.img > + > +# (2) Windows > +#LABEL windows > +#COM32 chain.c32 > +#APPEND hd0 0 > + > +LABEL hdt > + MENU LABEL HDT (Hardware Detection Tool) > + COM32 hdt.c32 > + > +LABEL reboot > + MENU LABEL Reboot > + COM32 reboot.c32 > + > +LABEL off > + MENU LABEL Power Off > + COMBOOT poweroff.com > +EOF > +} > + > +# $1 - Bootloader Name > +# $2 - Bootloader Configuration Files > +interactive_bootloader_menu() { > + if [[ $1 = grub ]]; then > generate_grub_menulst > + elif [[ $1 = syslinux ]]; then > + generate_syslinux_menu > fi
