Bug #351873: More livecd control, and initramfs livecd argument documentation.
[genkernel.git] / genkernel
index 1cf57fa2a58be7b9a5b99f5432bf93b35e9f9765..1630cd6abb5cb3fe241f954c516acbcc8ca25d38 100755 (executable)
--- a/genkernel
+++ b/genkernel
@@ -2,7 +2,7 @@
 # $Id$
 
 PATH="${PATH}:/sbin:/usr/sbin"
-GK_V='3.4.36'
+GK_V='3.4.43'
 
 # Set the default for TMPDIR.  May be modified by genkernel.conf or the
 # --tempdir command line option.
@@ -25,16 +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
-source ${CMD_GK_CONFIG:-/etc/genkernel.conf} || small_die "Could not read /etc/genkernel.conf"
+_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"
@@ -101,8 +104,13 @@ echo
 get_official_arch
 
 # Read arch-specific config
+print_info 1 "Using genkernel.conf from ${_GENKERNEL_CONF}"
+print_info 1 "Sourcing arch-specific config.sh from ${ARCH_CONFIG} .."
 source ${ARCH_CONFIG} || gen_die "Could not read ${ARCH_CONFIG}"
-source ${GK_SHARE}/arch/${ARCH}/modules_load || gen_die "Could not read ${GK_SHARE}/arch/${ARCH}/modules_load"
+_MODULES_LOAD=${GK_SHARE}/arch/${ARCH}/modules_load
+print_info 1 "Sourcing arch-specific modules_load from ${_MODULES_LOAD} .."
+source "${_MODULES_LOAD}" || gen_die "Could not read ${_MODULES_LOAD}"
+echo
 
 # Merge modules_load from config
 for group_modules in ${!AMODULES_*}; do
@@ -228,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