Change OUTPUTDIR fallback to KERNEL_DIR
[genkernel.git] / genkernel
index 5ee2d4226a306554ddf1b1d88f13b9fbe30a8e33..ca634d467c716dd9a22176aa50e1cdbac12d5ff5 100755 (executable)
--- a/genkernel
+++ b/genkernel
@@ -2,7 +2,7 @@
 # $Id$
 
 PATH="${PATH}:/sbin:/usr/sbin"
-GK_V='3.4.40'
+GK_V='3.4.44.2'
 
 # Set the default for TMPDIR.  May be modified by genkernel.conf or the
 # --tempdir command line option.
@@ -25,17 +25,19 @@ parse_opt() {
 
 # We don't know where our config is, so we check for it, and default to using
 # /etc/genkernel.conf if nobody has specified one.
-case "$*" in
-       --config=*)
-               CMD_GK_CONFIG=`parse_opt "$*"`
-       ;;
-esac
+
+# NOTE: We are look for --config=... in a way that doesn't modify $@ since we access that again, later
+for (( i=1; i<=$# ; i=i+1 )); do
+       eval arg="\$$i"
+       [[ "${arg}" = --config=* ]] && CMD_GK_CONFIG=`parse_opt "${arg}"`
+done
 
 # Pull in our configuration
 _GENKERNEL_CONF=${CMD_GK_CONFIG:-/etc/genkernel.conf}
 source "${_GENKERNEL_CONF}" || small_die "Could not read ${_GENKERNEL_CONF}"
 
 # Start sourcing other scripts
+source ${GK_SHARE}/defaults/software.sh || small_die "Could not read ${GK_SHARE}/defaults/software.sh"
 source ${GK_SHARE}/gen_funcs.sh || small_die "Could not read ${GK_SHARE}/gen_funcs.sh"
 source ${GK_SHARE}/gen_cmdline.sh || gen_die "Could not read ${GK_SHARE}/gen_cmdline.sh"
 source ${GK_SHARE}/gen_arch.sh || gen_die "Could not read ${GK_SHARE}/gen_arch.sh"
@@ -234,7 +236,9 @@ then
        then
                print_info 1 "Copying config for successful build to /etc/kernels/kernel-config-${ARCH}-${KV}"
                [ ! -e '/etc/kernels' ] && mkdir -p /etc/kernels
-               cp "${KERNEL_DIR}/.config" "/etc/kernels/kernel-config-${ARCH}-${KV}"
+               cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/kernel-config-${ARCH}-${KV}" || \
+                       print_warning "Unable to copy the kernel configuration file."
+                       # Just a warning because ordinary users are not allowed to write in /etc
        fi
 fi
 
@@ -327,23 +331,20 @@ then
        print_info 1 "Kernel compiled successfully!"
        print_info 1 ''
        print_info 1 'Required Kernel Parameters:'
+       print_info 1 '    root=/dev/$ROOT'
        if [ "${BUILD_RAMDISK}" = '0' ]
        then
-               print_info 1 '    root=/dev/$ROOT'
                print_info 1 '    [ And "vga=0x317 splash=verbose" if you use a framebuffer ]'
                print_info 1 ''
                print_info 1 '    Where $ROOT is the device node for your root partition as the'
                print_info 1 '    one specified in /etc/fstab'
        else
-               print_info 1 '    real_root=/dev/$ROOT'
                print_info 1 ''
                print_info 1 '    Where $ROOT is the device node for your root partition as the'
                print_info 1 '    one specified in /etc/fstab'
                print_info 1 ''
                print_info 1 "If you require Genkernel's hardware detection features; you MUST"
-               print_info 1 'tell your bootloader to use the provided INITRAMFS file. Otherwise;'
-               print_info 1 'substitute the root argument for the real_root argument if you are'
-               print_info 1 'not planning to use the initramfs...'
+               print_info 1 'tell your bootloader to use the provided INITRAMFS file.'
        fi
 fi
 
@@ -358,7 +359,7 @@ then
        [ "${MDADM}" = '1' ] && print_warning 1 'add "domdadm" for RAID support'
        [ "${DMRAID}" = '1' ] && print_warning 1 '      or "dodmraid=<additional options>"'
        [ "${ZFS}" = '1' ] && print_warning 1 'add "dozfs" for ZFS volume management support'
-       [ "${ZFS}" = '1' ] && print_warning 1 'add either "real_root=ZFS" (bootfs autodetection) or "real_root=ZFS=<dataset>" to boot from a ZFS dataset'
+       [ "${ZFS}" = '1' ] && print_warning 1 ' and either "root=ZFS" to use bootfs autodetection or "root=ZFS=<dataset>" to force booting from a specific dataset'
        [ "${ISCSI}" = '1' ] && print_warning 1 'add at least "iscsi_initiatorname=<initiator name> iscsi_target=<target name> and iscsi_address=<target ip>" for iscsi support'
 
        if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then