--- trunk/grubby/new-kernel-pkg 2016/06/29 14:07:59 2960 +++ trunk/grubby/new-kernel-pkg 2016/06/29 14:39:19 2961 @@ -79,6 +79,7 @@ grub2Config="" grub2EfiConfig="" extlinuxConfig="" +ubootScript="/boot/boot.scr" ARCH=$(uname -m) @@ -154,6 +155,7 @@ mbargs="${HYPERVISOR_ARGS}" adddracutargs="" addplymouthinitrd="" +DEBUGARG="systemd.debug" usage() { @@ -169,6 +171,49 @@ exit 1 } +rungrubby() +{ + if [[ $1 == --debug ]] + then + [[ ${MAKEDEBUG} != yes ]] && return 0 + [[ -n ${verbose} ]] && echo "- First, making a debug entry." + declare -x debugtitle=" with debugging" + declare -x debugargs="${DEBUGARG}" + shift + else + [[ -n ${verbose} ] && echo "- Making a normal entry." + fi + $(eval $grubby $@) + export -n debugargs + export -n debugtitle + unset debugargs + unset debugtitle +} + +set_title() +{ + if [[ -n ${banner} ]] + then + if [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]] + then + title=$(echo ${banner} | sed 's/ /_/g') + else + title="${banner} [ ${version} ]" + fi + elif [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]] + then + title=$(echo ${version} | sed 's/ /_/g') + elif [ -f /etc/os-release ] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" + elif [ -f /etc/mageversion ] + then + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + else + title="Magellan Linux [ ${version} ]" + fi +} + install() { # XXX kernel should be able to be specified also (or work right on ia64) @@ -226,36 +271,20 @@ cfgLilo="" fi - if [[ -n ${banner} ]] - then - if [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]] - then - title=$(echo ${banner} | sed 's/ /_/g') - else - title="${banner} [ ${version} ]" - fi - elif [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]] - then - title=$(echo ${version} | sed 's/ /_/g') - elif [ -f /etc/os-release ] - then - title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" - elif [ -f /etc/mageversion ] - then - title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" - else - title="Magellan Linux [ ${version} ]" - fi + set_title if [[ -n ${cfgGrub} ]] then [[ -n ${verbose} ]] && echo "adding ${version} to ${grubConfig}" - ${grubby} --grub -c ${grubConfig} \ - --add-kernel=${kernelImage} \ - ${INITRD} --copy-default ${makedefault} --title "${title}" \ - ${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \ - --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}" + ARGS="--grub -c ${grubConfig} --add-kernel=${kernelImage} ${INITRD} \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + ${mbargs:+--mbargs=\"${mbargs}\"} \ + --title=\"${title}\${debugtitle}\" --copy-default \ + --args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ + --remove-kernel=\"TITLE=${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} ${makedefault} else [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97" fi @@ -263,12 +292,14 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2Config}" - ${grubby} --grub2 -c ${grub2Config} \ - --add-kernel=${kernelImage} \ - ${INITRD} --copy-default ${makedefault} --title "${title}" \ - ${mbkernel:+--add-multiboot="${mbkernel}"} \ - ${mbargs:+--mbargs="${mbargs}"} \ - --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}" + ARGS="--grub2 -c ${grub2Config} --add-kernel=${kernelImage} ${INITRD} \ + --copy-default --title \"${title}\${debugtitle}\" \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + ${mbargs:+--mbargs=\"${mbargs}\"} \ + --args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ + --remove-kernel=\"TITLE=${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} ${makedefault} else [[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby for grub 2" fi @@ -276,12 +307,15 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${grub2EfiConfig}" - ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ - --add-kernel=${kernelImage} ${DEVTREE} \ - ${INITRD} --copy-default ${makedefault} --title "${title}" \ - ${mbkernel:+--add-multiboot="${mbkernel}"} \ - ${mbargs:+--mbargs="${mbargs}"} \ - --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}" + ARGS="--grub2 -c ${grub2EfiConfig} --efi \ + --add-kernel=${kernelImage} ${DEVTREE} ${INITRD} \ + --copy-default --title \"${title}\${debugtitle}\" \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + ${mbargs:+--mbargs=\"${mbargs}\"} \ + --args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ + --remove-kernel=\"TITLE=${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} ${makedefault} else [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby for grub 2 with UEFI" fi @@ -290,11 +324,14 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${liloConfig}" - ${grubby} --add-kernel=${kernelImage} ${INITRD} \ - --copy-default ${makedefault} --title "${title}" \ - ${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \ - --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${version}" \ - --${liloFlag} + ARGS="--${liloFlag} --add-kernel=${kernelImage} ${INITRD} \ + --copy-default --title \"${title}\${debugtitle}\" \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + ${mbargs:+--mbargs=\"${mbargs}\"} \ + --args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ + --remove-kernel=\"TITLE=${version}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} ${makedefault} if [[ -n ${runLilo} ]] then @@ -314,11 +351,14 @@ then [[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}" - ${grubby} --extlinux -c ${extlinuxConfig} \ - --add-kernel=${kernelImage} \ - ${INITRD} --copy-default ${makedefault} --title "${title}" \ - ${mbkernel:+--add-multiboot="${mbkernel}"} ${mbargs:+--mbargs="${mbargs}"} \ - --args="root=${rootdevice} ${kernargs}" --remove-kernel="TITLE=${title}" + ARGS="--extlinux -c ${extlinuxConfig} --add-kernel=${kernelImage} \ + ${INITRD} --copy-default --title \"${title}\${debugtitle}\" \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + ${mbargs:+--mbargs=\"${mbargs}\"} \ + --args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ + --remove-kernel=\"TITLE=${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} ${makedefault} else [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux" fi @@ -451,6 +491,8 @@ return fi + set_title + INITRD="" if [ -f ${initrdfile} ] then @@ -466,12 +508,13 @@ if [[ -n ${cfgGrub} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" - ${grubby} --grub -c ${grubConfig} \ - --update-kernel=${kernelImage} \ - ${INITRD} \ - ${kernargs:+--args="${kernargs}"} \ - ${removeargs:+--remove-args="${removeargs}"} \ - ${mbkernel:+--add-multiboot="${mbkernel}"} + ARGS="--grub -c ${grubConfig} --update-kernel=${kernelImage} ${INITRD} \ + ${kernargs:+--args=\"${kernargs}\"} \ + ${removeargs:+--remove-args=\"${removeargs}\"} \ + ${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ + --title=\"${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} else [[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby" fi @@ -479,11 +522,12 @@ if [[ -n ${cfgGrub2} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${grub2Config}" - ${grubby} --grub2 -c ${grub2Config} \ - --update-kernel=${kernelImage} \ - ${INITRD} \ - ${kernargs:+--args="${kernargs}"} \ - ${removeargs:+--remove-args="${removeargs}"} + ARGS="--grub2 -c ${grub2Config} --update-kernel=${kernelImage} ${INITRD} \ + ${kernargs:+--args=\"${kernargs}\"} \ + ${removeargs:+--remove-args=\"${removeargs}\"} \ + --title=\"${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} else [[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby" fi @@ -491,11 +535,12 @@ if [[ -n ${cfgGrub2Efi} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${grub2EfiConfig}" - ${grubby} --grub2 -c ${grub2EfiConfig} --efi \ - --update-kernel=${kernelImage} \ - ${INITRD} \ - ${kernargs:+--args="${kernargs}"} \ - ${removeargs:+--remove-args="${removeargs}"} + ARGS="--grub2 -c ${grub2EfiConfig} --efi --update-kernel=${kernelImage} \ + ${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ + ${removeargs:+--remove-args=\"${removeargs}\"} \ + --title=\"${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} else [[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby" fi @@ -503,11 +548,12 @@ if [[ -n ${cfgLilo} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}" - ${grubby} --update-kernel=${kernelImage} \ - ${INITRD} \ - ${kernargs:+--args="${kernargs}"} \ - ${removeargs:+--remove-args="${removeargs}"} \ - --${liloFlag} + ARGS="--${liloFlag} --update-kernel=${kernelImage} ${INITRD} \ + ${kernargs:+--args=\"${kernargs}\"} \ + ${removeargs:+--remove-args=\"${removeargs}\"} \ + --title=\"${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} if [[ -n ${runLilo} ]] then @@ -560,11 +606,12 @@ if [[ -n ${cfgExtlinux} ]] then [[ -n ${verbose} ]] && echo "updating ${version} from ${extlinuxConfig}" - ${grubby} --extlinux -c ${extlinuxConfig} \ - --update-kernel=${kernelImage} \ - ${INITRD} \ - ${kernargs:+--args="${kernargs}"} \ - ${removeargs:+--remove-args="${removeargs}"} + ARGS="--extlinux -c ${extlinuxConfig} --update-kernel=${kernelImage} \ + ${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ + ${removeargs:+--remove-args=\"${removeargs}\"} \ + --title=\"${title}\${debugtitle}\"" + rungrubby --debug ${ARGS} + rungrubby ${ARGS} else [[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby" fi