[grubby] See if what people are seeing in 1141414 is actually 957681

Peter Jones pjones at fedoraproject.org
Fri Oct 17 22:56:37 UTC 2014


commit 0370b222f6a140df852adb48ac3986b83abd5e38
Author: Peter Jones <pjones at redhat.com>
Date:   Fri Sep 26 13:30:13 2014 -0400

    See if what people are seeing in 1141414 is actually 957681
    
      Related: rhbz#957681
      Related: rhbz#1141414

 ...st-the-last-element-of-indexVars-in-findE.patch |   41 ++
 0002-Add-bls-test-harness-bits.patch               |  452 ++++++++++++++++++++
 ...-fix-initrd-updating-when-multiboot-exist.patch |   37 ++
 ...htly-better-fib-about-default-bootloader-.patch |   46 ++
 ...emplate-actually-return-the-saved-default.patch |   35 ++
 ...-filtering-update-kernel-by-title-as-well.patch |  106 +++++
 ...ly-create-debug-entries-when-installing-k.patch |  310 ++++++++++++++
 0008-Revert-Add-bls-test-harness-bits.patch        |  446 +++++++++++++++++++
 0009-Always-error-check-getLineByType.patch        |   62 +++
 grubby.spec                                        |   18 +-
 10 files changed, 1552 insertions(+), 1 deletions(-)
---
diff --git a/0001-Don-t-go-past-the-last-element-of-indexVars-in-findE.patch b/0001-Don-t-go-past-the-last-element-of-indexVars-in-findE.patch
new file mode 100644
index 0000000..e73cfd6
--- /dev/null
+++ b/0001-Don-t-go-past-the-last-element-of-indexVars-in-findE.patch
@@ -0,0 +1,41 @@
+From 4dbf9c7e15420eb06540bb426bf36c434787e344 Mon Sep 17 00:00:00 2001
+From: Yannick Brosseau <scientist at fb.com>
+Date: Thu, 3 Jul 2014 13:55:19 -0700
+Subject: [PATCH 1/9] Don't go past the last element of indexVars in
+ findEntryByPath
+
+We add a chance of creating an infinite loop, because we
+were reading memory past the last element of indexVars set to -1.
+
+This issue was only apparent with -O2, probably because the way the
+memory was initialized.
+
+Signed-off-by: Yannick Brosseau <scientist at fb.com>
+---
+ grubby.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/grubby.c b/grubby.c
+index 88a1f08..db91364 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -1959,11 +1959,13 @@ struct singleEntry * findEntryByPath(struct grubConfig * config,
+ 	}
+ 
+ 	indexVars[i + 1] = -1;
+-	
++
+ 	i = 0;
+ 	if (index) {
+-	    while (i < *index) i++;
+-	    if (indexVars[i] == -1) return NULL;
++	    while (i < *index) {
++		i++;
++		if (indexVars[i] == -1) return NULL;
++	    }
+ 	}
+ 
+ 	entry = findEntryByIndex(config, indexVars[i]);
+-- 
+1.9.3
+
diff --git a/0002-Add-bls-test-harness-bits.patch b/0002-Add-bls-test-harness-bits.patch
new file mode 100644
index 0000000..741f57e
--- /dev/null
+++ b/0002-Add-bls-test-harness-bits.patch
@@ -0,0 +1,452 @@
+From 98cab84501f86bd98f12653c11f4ecc632139399 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Tue, 8 Jul 2014 14:37:21 -0400
+Subject: [PATCH 2/9] Add bls test harness bits.
+
+This expects that there are bls config files and that grubby knows how
+to deal with them, which isn't at all true, and so the test case
+currently fails because test/grub2.15 doesn't provide any kernel stanzas
+whatsoever.
+
+Maybe I should add a dummy there, but... I'd rather leave this failing
+here.
+
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ test.sh                                            | 105 +++++++++++++++++++
+ ...724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf |   8 ++
+ ...724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf |   8 ++
+ ...981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf |  10 ++
+ ...981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf |  10 ++
+ test/grub2.15                                      | 112 +++++++++++++++++++++
+ test/results/grub2.15                              | 112 +++++++++++++++++++++
+ 7 files changed, 365 insertions(+)
+ create mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+ create mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+ create mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+ create mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+ create mode 100644 test/grub2.15
+ create mode 100644 test/results/grub2.15
+
+diff --git a/test.sh b/test.sh
+index 864a8ce..e7be15f 100755
+--- a/test.sh
++++ b/test.sh
+@@ -163,6 +163,102 @@ for b in $(./grubby --help | \
+     eval "${b}DisplayTest() { [[ \"$b\" == \$opt_bootloader ]] && oneDisplayTest --$b \"\$@\"; }"
+ done
+ 
++grub2BlsTest() {
++    declare blsdir=$(mktemp -d) cmpdir=$(mktemp -d)
++
++    declare blspairs=""
++    while [ -n "$1" ]; do
++        if [ "$1" == "--blspair" ]; then
++            blsin=$(echo $2 | sed 's/\(.*\),.*/\1/')
++            blsout=$(echo $2 | sed 's/[^,]*,\(.*\)/\1/')
++            [ -n "$blsin" ] && cp "test/grub2-support_files/$blsin" ${blsdir}/
++            [ -n "$blsout" ] && cp "test/grub2-support_files/$blsout" ${cmpdir}/
++            blspairs="${blspairs} $2"
++            shift 2
++        else
++            break
++        fi
++    done
++
++    typeset mode=$1 cfg=test/$2 correct=test/results/$3
++    shift 3
++
++    local ENV_FILE=""
++    if [ "$mode" == "--grub2" ]; then
++        ENV_FILE="test/grub2-support_files/env_temp"
++        if [ "$1" == "--env" ]; then
++            cp "test/grub2-support_files/$2" "$ENV_FILE"
++            shift 2
++        else
++            cp "test/grub2-support_files/grubenv.0" "$ENV_FILE"
++        fi
++        ENV_FILE="--env=$ENV_FILE"
++    fi
++
++    declare outfile=$(mktemp)
++    echo "$testing ... $mode bls $cfg $correct"
++    runme=( ./grubby "$mode" --bad-image-okay $ENV_FILE -c "$cfg" -o - --blsdir="${blsdir}" "$@" )
++    declare -i old_fail=$fail
++    if "${runme[@]}" 2>&1 | cmp "$correct" > /dev/null; then
++	(( pass++ ))
++	if $opt_verbose; then
++	    echo -------------------------------------------------------------
++	    echo -n "PASS: "
++	    printf "%q " "${runme[@]}"; echo
++	    "${runme[@]}" 2>&1 | diff -U30 "$cfg" -
++	    echo
++	fi
++    else
++	(( fail++ ))
++	echo -------------------------------------------------------------
++	echo -n "FAIL: "
++	printf "%q " "${runme[@]}"; echo
++	"${runme[@]}" 2>&1 | diff -U30 "$correct" -
++	echo
++    fi
++
++    for pair in ${blspairs} ; do
++        blsin=$(echo $pair | sed 's/\(.*\),.*/\1/')
++        blsout=$(echo $pair | sed 's/[^,]*,\(.*\)/\1/')
++
++        if [ -z "${blsout}" -a -f ${blsdir}/${blsin} ]; then
++            (( fail++ ))
++            echo -------------------------------------------------------------
++            echo -n "FAIL: "
++            printf "%q " "${runme[@]}"; echo
++            diff -U30 /dev/null ${blsdir}/${blsin}
++        elif [ -n "${blsout}" ] && ! cmp ${blsdir}/${blsout} ${cmpdir}/${blsout} >/dev/null ; then
++            (( fail++ ))
++            echo -------------------------------------------------------------
++            echo -n "FAIL: "
++            printf "%q " "${runme[@]}"; echo
++            diff -U30 "${cmpdir}/${blsout}" "${blsdir}/${blsout}"
++        else
++            (( pass++ ))
++            if $opt_verbose; then
++                echo -------------------------------------------------------------
++                echo -n "PASS: "
++                printf "%q " "${runme[@]}"; echo
++                diff -U30 "${cmpdir}/${blsout}" "${blsdir}/${blsout}"
++            fi
++        fi
++    done
++
++    if [ $old_fail -eq $fail ]; then
++	(( pass++ ))
++	if $opt_verbose; then
++	    echo -------------------------------------------------------------
++	    echo -n "PASS: "
++	    printf "%q " "${runme[@]}"; echo
++	    "${runme[@]}" 2>&1 | diff -U30 "$cfg" -
++	    echo
++	fi
++    fi
++
++    rm -rvf ${blsdir}/ ${cmpdir}/
++}
++
++
+ #----------------------------------------------------------------------
+ # Main
+ #----------------------------------------------------------------------
+@@ -533,6 +629,15 @@ if [ "$testgrub2" == "y" ]; then
+     grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \
+         --initrd=/boot/new-initrd --boot-filesystem=/boot/
+ 
++    testing="GRUB2 add bls kernel+initrd"
++    grub2BlsTest \
++        --blspair 6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf,6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf \
++        --blspair ,6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf \
++        --grub2 grub2.15 grub2.15 \
++        --add-kernel=/boot/new-kernel.img \
++        --title=title --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
++        --copy-default
++
+     testing="GRUB2 display default index"
+     grub2DisplayTest grub2.1 defaultindex/0 --default-index
+     grub2DisplayTest grub2.2 defaultindex/0 --default-index
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+new file mode 100644
+index 0000000..e36a1fd
+--- /dev/null
++++ b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+@@ -0,0 +1,8 @@
++# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
++title      Fedora 19 (Rawhide)
++version    3.8.0-2.fc19.x86_64
++machine-id 6a9857a393724b7a981ebb5b8495b9ea
++filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
++linux      /boot/vmlinux-3.8.0-2.fc19.x86_64
++options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
++initrd     /boot/initrd-3.8.0-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+new file mode 100644
+index 0000000..382d1af
+--- /dev/null
++++ b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+@@ -0,0 +1,8 @@
++# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
++title      Fedora 19 (Rawhide)
++version    3.8.1-2.fc19.x86_64
++machine-id 6a9857a393724b7a981ebb5b8495b9ea
++filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
++linux      /boot/vmlinux-3.8.1-2.fc19.x86_64
++options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
++initrd     /boot/initrd-3.8.1-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+new file mode 100644
+index 0000000..05c0910
+--- /dev/null
++++ b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+@@ -0,0 +1,10 @@
++# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
++title      Fedora 19 (tboot) (Rawhide)
++version    3.8.0-2.fc19.x86_64
++machine-id 6a9857a393724b7a981ebb5b8495b9ea
++filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
++multiboot  /boot/tboot.gz
++  options    logging=serial,vga,memory
++linux      /boot/vmlinux-3.8.0-2.fc19.x86_64
++options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
++initrd     /boot/initrd-3.8.0-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+new file mode 100644
+index 0000000..db17a93
+--- /dev/null
++++ b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+@@ -0,0 +1,10 @@
++# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
++title      Fedora 19 (tboot) (Rawhide)
++version    3.8.1-2.fc19.x86_64
++machine-id 6a9857a393724b7a981ebb5b8495b9ea
++filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
++multiboot  /boot/tboot.gz
++  options    logging=serial,vga,memory
++linux      /boot/vmlinux-3.8.1-2.fc19.x86_64
++options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
++initrd     /boot/initrd-3.8.1-2.fc19.x86_64
+diff --git a/test/grub2.15 b/test/grub2.15
+new file mode 100644
+index 0000000..0be2d74
+--- /dev/null
++++ b/test/grub2.15
+@@ -0,0 +1,112 @@
++#
++# DO NOT EDIT THIS FILE
++#
++# It is automatically generated by grub2-mkconfig using templates
++# from /etc/grub.d and settings from /etc/default/grub
++#
++
++### BEGIN /etc/grub.d/00_header ###
++if [ -s $prefix/grubenv ]; then
++  load_env
++fi
++if [ "${next_entry}" ] ; then
++   set default="${next_entry}"
++   set next_entry=
++   save_env next_entry
++   set boot_once=true
++else
++   set default="${saved_entry}"
++fi
++
++if [ x"${feature_menuentry_id}" = xy ]; then
++  menuentry_id_option="--id"
++else
++  menuentry_id_option=""
++fi
++
++export menuentry_id_option
++
++if [ "${prev_saved_entry}" ]; then
++  set saved_entry="${prev_saved_entry}"
++  save_env saved_entry
++  set prev_saved_entry=
++  save_env prev_saved_entry
++  set boot_once=true
++fi
++
++function savedefault {
++  if [ -z "${boot_once}" ]; then
++    saved_entry="${chosen}"
++    save_env saved_entry
++  fi
++}
++
++function load_video {
++  if [ x$feature_all_video_module = xy ]; then
++    insmod all_video
++  else
++    insmod efi_gop
++    insmod efi_uga
++    insmod ieee1275_fb
++    insmod vbe
++    insmod vga
++    insmod video_bochs
++    insmod video_cirrus
++  fi
++}
++
++if [ x$feature_default_font_path = xy ] ; then
++   font=unicode
++else
++insmod part_gpt
++insmod btrfs
++set root='hd0,gpt4'
++if [ x$feature_platform_search_hint = xy ]; then
++  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
++else
++  search --no-floppy --fs-uuid --set=root 5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
++fi
++    font="/root/usr/share/grub/unicode.pf2"
++fi
++
++if loadfont $font ; then
++  set gfxmode=auto
++  load_video
++  insmod gfxterm
++  set locale_dir=$prefix/locale
++  set lang=en_US
++  insmod gettext
++fi
++terminal_output gfxterm
++set timeout=5
++### END /etc/grub.d/00_header ###
++
++### BEGIN /etc/grub.d/10_blscfg ###
++
++bls_import
++
++### END /etc/grub.d/10_blscfg ###
++
++### BEGIN /etc/grub.d/20_linux_xen ###
++
++### END /etc/grub.d/20_linux_xen ###
++
++### BEGIN /etc/grub.d/20_ppc_terminfo ###
++### END /etc/grub.d/20_ppc_terminfo ###
++
++### BEGIN /etc/grub.d/30_os-prober ###
++### END /etc/grub.d/30_os-prober ###
++
++### BEGIN /etc/grub.d/40_custom ###
++# This file provides an easy way to add custom menu entries.  Simply type the
++# menu entries you want to add after this comment.  Be careful not to change
++# the 'exec tail' line above.
++### END /etc/grub.d/40_custom ###
++
++### BEGIN /etc/grub.d/41_custom ###
++if [ -f  ${config_directory}/custom.cfg ]; then
++  source ${config_directory}/custom.cfg
++elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
++  source $prefix/custom.cfg;
++fi
++### END /etc/grub.d/41_custom ###
+diff --git a/test/results/grub2.15 b/test/results/grub2.15
+new file mode 100644
+index 0000000..0be2d74
+--- /dev/null
++++ b/test/results/grub2.15
+@@ -0,0 +1,112 @@
++#
++# DO NOT EDIT THIS FILE
++#
++# It is automatically generated by grub2-mkconfig using templates
++# from /etc/grub.d and settings from /etc/default/grub
++#
++
++### BEGIN /etc/grub.d/00_header ###
++if [ -s $prefix/grubenv ]; then
++  load_env
++fi
++if [ "${next_entry}" ] ; then
++   set default="${next_entry}"
++   set next_entry=
++   save_env next_entry
++   set boot_once=true
++else
++   set default="${saved_entry}"
++fi
++
++if [ x"${feature_menuentry_id}" = xy ]; then
++  menuentry_id_option="--id"
++else
++  menuentry_id_option=""
++fi
++
++export menuentry_id_option
++
++if [ "${prev_saved_entry}" ]; then
++  set saved_entry="${prev_saved_entry}"
++  save_env saved_entry
++  set prev_saved_entry=
++  save_env prev_saved_entry
++  set boot_once=true
++fi
++
++function savedefault {
++  if [ -z "${boot_once}" ]; then
++    saved_entry="${chosen}"
++    save_env saved_entry
++  fi
++}
++
++function load_video {
++  if [ x$feature_all_video_module = xy ]; then
++    insmod all_video
++  else
++    insmod efi_gop
++    insmod efi_uga
++    insmod ieee1275_fb
++    insmod vbe
++    insmod vga
++    insmod video_bochs
++    insmod video_cirrus
++  fi
++}
++
++if [ x$feature_default_font_path = xy ] ; then
++   font=unicode
++else
++insmod part_gpt
++insmod btrfs
++set root='hd0,gpt4'
++if [ x$feature_platform_search_hint = xy ]; then
++  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
++else
++  search --no-floppy --fs-uuid --set=root 5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
++fi
++    font="/root/usr/share/grub/unicode.pf2"
++fi
++
++if loadfont $font ; then
++  set gfxmode=auto
++  load_video
++  insmod gfxterm
++  set locale_dir=$prefix/locale
++  set lang=en_US
++  insmod gettext
++fi
++terminal_output gfxterm
++set timeout=5
++### END /etc/grub.d/00_header ###
++
++### BEGIN /etc/grub.d/10_blscfg ###
++
++bls_import
++
++### END /etc/grub.d/10_blscfg ###
++
++### BEGIN /etc/grub.d/20_linux_xen ###
++
++### END /etc/grub.d/20_linux_xen ###
++
++### BEGIN /etc/grub.d/20_ppc_terminfo ###
++### END /etc/grub.d/20_ppc_terminfo ###
++
++### BEGIN /etc/grub.d/30_os-prober ###
++### END /etc/grub.d/30_os-prober ###
++
++### BEGIN /etc/grub.d/40_custom ###
++# This file provides an easy way to add custom menu entries.  Simply type the
++# menu entries you want to add after this comment.  Be careful not to change
++# the 'exec tail' line above.
++### END /etc/grub.d/40_custom ###
++
++### BEGIN /etc/grub.d/41_custom ###
++if [ -f  ${config_directory}/custom.cfg ]; then
++  source ${config_directory}/custom.cfg
++elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
++  source $prefix/custom.cfg;
++fi
++### END /etc/grub.d/41_custom ###
+-- 
+1.9.3
+
diff --git a/0003-grubby-fix-initrd-updating-when-multiboot-exist.patch b/0003-grubby-fix-initrd-updating-when-multiboot-exist.patch
new file mode 100644
index 0000000..660f251
--- /dev/null
+++ b/0003-grubby-fix-initrd-updating-when-multiboot-exist.patch
@@ -0,0 +1,37 @@
+From 2f35781fde88a99dec22407057b1a46343bc00cc Mon Sep 17 00:00:00 2001
+From: Junxiao Bi <junxiao.bi at oracle.com>
+Date: Wed, 14 May 2014 16:44:21 +0800
+Subject: [PATCH 3/9] grubby: fix initrd updating when multiboot exist
+
+When using the following command to add an initrd for the kernel.
+grubby --update-kernel=/boot/vmlinuz-2.6.32-431.17.1.el6.x86_64.debug
+       --initrd /boot/initramfs-2.6.32-431.17.1.el6.x86_64.debug.img
+       --add-multiboot=/boot/tboot.gz
+The multiboot image /boot/tboot.gz is used as the key to search the
+configure entry in grub.conf, this is wrong. There may be other kernels
+also configure multiboot with the same name tboot.gz, if there index are
+smaller than the target one, then that will make the initrd added to the
+wrong kernel. Fix it to use kernel name as the search key.
+
+Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
+Reviewed-by: John Haxby <john.haxby at oracle.com>
+---
+ grubby.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/grubby.c b/grubby.c
+index db91364..118cb84 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -3311,7 +3311,7 @@ int addMBInitrd(struct grubConfig * cfg, const char *newMBKernel,
+ 
+     if (!image) return 0;
+ 
+-    for (; (entry = findEntryByPath(cfg, newMBKernel, prefix, &index)); index++) {
++    for (; (entry = findEntryByPath(cfg, image, prefix, &index)); index++) {
+         kernelLine = getLineByType(LT_MBMODULE, entry->lines);
+         if (!kernelLine) continue;
+ 
+-- 
+1.9.3
+
diff --git a/0004-Tell-a-slightly-better-fib-about-default-bootloader-.patch b/0004-Tell-a-slightly-better-fib-about-default-bootloader-.patch
new file mode 100644
index 0000000..ffd3b86
--- /dev/null
+++ b/0004-Tell-a-slightly-better-fib-about-default-bootloader-.patch
@@ -0,0 +1,46 @@
+From 338b08cb67a369069475f327b0fce74b506e5c46 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Fri, 12 Sep 2014 15:50:05 -0400
+Subject: [PATCH 4/9] Tell a slightly better fib about default bootloader
+ config paths.
+
+It's not going to be right everywhere, but... whatever.
+
+Resolves: rhbz#1001664
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ grubby.8 | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/grubby.8 b/grubby.8
+index c2b0155..bd5ccb8 100644
+--- a/grubby.8
++++ b/grubby.8
+@@ -19,16 +19,18 @@ grubby \- command line tool for configuring grub, lilo, elilo, yaboot and zipl
+ 
+ .SH DESCRIPTION
+ \fBgrubby\fR is a command line tool for updating and displaying information
+-about the configuration files for the \fBgrub\fR, \fBlilo\fR, \fBelilo\fR 
++about the configuration files for the \fBgrub\fR, \fBlilo\fR, \fBelilo\fR
+ (ia64), \fByaboot\fR (powerpc) and \fBzipl\fR (s390) boot loaders. It
+ is primarily designed to be used from scripts which install new
+ kernels and need to find information about the current boot environment.
+ 
+-On Intel x86 platforms, \fBgrub\fR is the default bootloader and the
+-configuration file is in \fB/boot/grub/grub.conf\fR. On Intel ia64 platforms, 
+-\fBelilo\fR mode is used and the default location for the configuration file 
+-is \fB/boot/grub/grub.conf\fR. On PowerPC platforms, \fByaboot\fR parsing
+-is used and the configuration file should be in \fB/etc/yaboot.conf\fR.
++On BIOS-based Intel x86 platforms, \fBgrub2\fR is the default bootloader and
++the configuration file is in \fB/boot/grub2/grub.cfg\fR.  On UEFI-based Intel
++x86 platforms, \fBgrub2\fR is the default bootloader, and the configuration
++file is in \fB/boot/efi/EFI/redhat/grub.cfg\fR.  On Intel ia64 platforms,
++\fBelilo\fR mode is used and the default location for the configuration file
++is \fB/boot/efi/EFI/redhat/elilo.conf\fR. On PowerPC platforms, \fByaboot\fR
++parsing is used and the configuration file should be in \fB/etc/yaboot.conf\fR.
+ 
+ There are a number of ways to specify the kernel used for \fB-\-info\fR,
+ \fB-\-remove-kernel\fR, and \fB-\-update-kernel\fR. Specificying \fBDEFAULT\fR
+-- 
+1.9.3
+
diff --git a/0005-Make-findTemplate-actually-return-the-saved-default.patch b/0005-Make-findTemplate-actually-return-the-saved-default.patch
new file mode 100644
index 0000000..4bcbb2a
--- /dev/null
+++ b/0005-Make-findTemplate-actually-return-the-saved-default.patch
@@ -0,0 +1,35 @@
+From f631d090d3a78327e6d2642465be6ab559dd7f4e Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 15 Sep 2014 14:31:01 -0400
+Subject: [PATCH 5/9] Make findTemplate actually return the saved default.
+
+Really not sure why this wasn't returning here before; going into the
+loop below is just going to clobber all that it's done.
+
+Related: rhbz#957681
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ grubby.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/grubby.c b/grubby.c
+index 118cb84..baf646b 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -2119,8 +2119,12 @@ struct singleEntry * findTemplate(struct grubConfig * cfg, const char * prefix,
+ 		} else {
+ 		    entry = findEntryByTitle(cfg, defTitle, &index);
+ 		}
+-		if (entry)
++		if (entry && suitableImage(entry, prefix, skipRemoved, flags)) {
+ 		    cfg->defaultImage = index;
++		    if (indexPtr)
++			*indexPtr = index;
++		    return entry;
++		}
+ 	    }
+ 	}
+     } else if (cfg->defaultImage > -1) {
+-- 
+1.9.3
+
diff --git a/0006-Support-filtering-update-kernel-by-title-as-well.patch b/0006-Support-filtering-update-kernel-by-title-as-well.patch
new file mode 100644
index 0000000..88341d6
--- /dev/null
+++ b/0006-Support-filtering-update-kernel-by-title-as-well.patch
@@ -0,0 +1,106 @@
+From 5c3bc267ba244478284c7879c7197aad168766e6 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 15 Sep 2014 15:18:48 -0400
+Subject: [PATCH 6/9] Support filtering --update-kernel= by title as well.
+
+If there are two entries with the same kernel, we need to match the
+title to uniquely identify one.
+
+Related: rhbz#957681
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ grubby.c | 40 +++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 35 insertions(+), 5 deletions(-)
+
+diff --git a/grubby.c b/grubby.c
+index baf646b..855464a 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -3308,7 +3308,8 @@ int updateImage(struct grubConfig * cfg, const char * image,
+ }
+ 
+ int addMBInitrd(struct grubConfig * cfg, const char *newMBKernel,
+-		 const char * image, const char * prefix, const char * initrd) {
++		 const char * image, const char * prefix, const char * initrd,
++		 const char * title) {
+     struct singleEntry * entry;
+     struct singleLine * line, * kernelLine, *endLine = NULL;
+     int index = 0;
+@@ -3319,6 +3320,20 @@ int addMBInitrd(struct grubConfig * cfg, const char *newMBKernel,
+         kernelLine = getLineByType(LT_MBMODULE, entry->lines);
+         if (!kernelLine) continue;
+ 
++	/* if title is supplied, the entry's title must match it. */
++	if (title) {
++	    line = getLineByType(LT_TITLE|LT_MENUENTRY, entry->lines);
++	    char *linetitle = extractTitle(line);
++
++	    if (!linetitle)
++		continue;
++	    if (strcmp(title, linetitle)) {
++		free(linetitle);
++		continue;
++	    }
++	    free(linetitle);
++	}
++
+         if (prefix) {
+             int prefixLen = strlen(prefix);
+             if (!strncmp(initrd, prefix, prefixLen))
+@@ -3344,7 +3359,7 @@ int addMBInitrd(struct grubConfig * cfg, const char *newMBKernel,
+ }
+ 
+ int updateInitrd(struct grubConfig * cfg, const char * image,
+-                 const char * prefix, const char * initrd) {
++                 const char * prefix, const char * initrd, const char * title) {
+     struct singleEntry * entry;
+     struct singleLine * line, * kernelLine, *endLine = NULL;
+     int index = 0;
+@@ -3355,6 +3370,20 @@ int updateInitrd(struct grubConfig * cfg, const char * image,
+         kernelLine = getLineByType(LT_KERNEL|LT_KERNEL_EFI|LT_KERNEL_16, entry->lines);
+         if (!kernelLine) continue;
+ 
++	/* if title is supplied, the entry's title must match it. */
++	if (title) {
++	    line = getLineByType(LT_TITLE|LT_MENUENTRY, entry->lines);
++	    char *linetitle = extractTitle(line);
++
++	    if (!linetitle)
++		continue;
++	    if (strcmp(title, linetitle)) {
++		free(linetitle);
++		continue;
++	    }
++	    free(linetitle);
++	}
++
+         line = getLineByType(LT_INITRD|LT_INITRD_EFI|LT_INITRD_16, entry->lines);
+         if (line)
+             removeLine(entry, line);
+@@ -4413,7 +4442,7 @@ int main(int argc, const char ** argv) {
+     if (newKernelPath && !newKernelTitle) {
+ 	fprintf(stderr, _("grubby: kernel title must be specified\n"));
+ 	return 1;
+-    } else if (!newKernelPath && (newKernelTitle  || copyDefault ||
++    } else if (!newKernelPath && (copyDefault ||
+ 				  (newKernelInitrd && !updateKernelPath)||
+ 				  makeDefault || extraInitrdCount > 0)) {
+ 	fprintf(stderr, _("grubby: kernel path expected\n"));
+@@ -4635,11 +4664,12 @@ int main(int argc, const char ** argv) {
+     if (updateKernelPath && newKernelInitrd) {
+ 	    if (newMBKernel) {
+ 		    if (addMBInitrd(config, newMBKernel, updateKernelPath,
+-					bootPrefix, newKernelInitrd))
++					bootPrefix, newKernelInitrd,
++					newKernelTitle))
+ 			    return 1;
+ 	    } else {
+ 		    if (updateInitrd(config, updateKernelPath, bootPrefix,
+-					newKernelInitrd))
++					newKernelInitrd, newKernelTitle))
+ 			return 1;
+ 	    }
+     }
+-- 
+1.9.3
+
diff --git a/0007-Conditionally-create-debug-entries-when-installing-k.patch b/0007-Conditionally-create-debug-entries-when-installing-k.patch
new file mode 100644
index 0000000..67df9ba
--- /dev/null
+++ b/0007-Conditionally-create-debug-entries-when-installing-k.patch
@@ -0,0 +1,310 @@
+From c3b1511221a5f542ae8b5691bcc5049249b9d29f Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 15 Sep 2014 15:20:34 -0400
+Subject: [PATCH 7/9] Conditionally create debug entries when installing
+ kernels.
+
+If /etc/sysconfig/kernel has MAKEDEBUG set to "yes", create non-default
+entries that have systemd.debug set.
+
+Resolves: rhbz#957681
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ new-kernel-pkg | 190 ++++++++++++++++++++++++++++++++++++---------------------
+ 1 file changed, 119 insertions(+), 71 deletions(-)
+
+diff --git a/new-kernel-pkg b/new-kernel-pkg
+index d9a9b67..70f6118 100755
+--- a/new-kernel-pkg
++++ b/new-kernel-pkg
+@@ -50,6 +50,7 @@ grubConfig=""
+ grub2Config=""
+ grub2EfiConfig=""
+ extlinuxConfig=""
++ubootScript="/boot/boot.scr"
+ 
+ ARCH=$(uname -m)
+ 
+@@ -120,6 +121,7 @@ mbkernel="$HYPERVISOR"
+ mbargs="$HYPERVISOR_ARGS"
+ adddracutargs=""
+ addplymouthinitrd=""
++DEBUGARG="systemd.debug"
+ 
+ usage() {
+     echo "Usage: `basename $0` [-v] [--mkinitrd] [--rminitrd] [--dracut]" >&2
+@@ -134,6 +136,41 @@ usage() {
+     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' -o $ARCH = 's390x' ]; then
++	    title=$(echo $banner | sed 's/ /_/g')
++	else
++	    title="$banner ($version)"
++	fi
++    elif [ $ARCH = 's390' -o $ARCH = 's390x' ]; then
++	title=$(echo $version | sed 's/ /_/g')
++    elif [ -f /etc/os-release ]; then
++	. /etc/os-release
++	title="$NAME ($version) $VERSION"
++    elif [ -f /etc/redhat-release ]; then
++	title="$(sed 's/ release.*$//' < /etc/redhat-release) ($version)"
++    else
++	title="Red Hat Linux ($version)"
++    fi
++}
+ 
+ install() {
+     # XXX kernel should be able to be specified also (or work right on ia64)
+@@ -184,57 +221,49 @@ install() {
+ 	cfgLilo=""
+     fi
+ 
+-
+-    if [ -n "$banner" ]; then
+-	if [ $ARCH = 's390' -o $ARCH = 's390x' ]; then
+-	    title=$(echo $banner | sed 's/ /_/g')
+-	else
+-	    title="$banner ($version)"
+-	fi
+-    elif [ $ARCH = 's390' -o $ARCH = 's390x' ]; then
+-	title=$(echo $version | sed 's/ /_/g')
+-    elif [ -f /etc/os-release ]; then
+-	. /etc/os-release
+-	title="$NAME ($version) $VERSION"
+-    elif [ -f /etc/redhat-release ]; then
+-	title="$(sed 's/ release.*$//' < /etc/redhat-release) ($version)"
+-    else
+-	title="Red Hat 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
+     if [ -n "$cfgGrub2" ]; 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
+     if [ -n "$cfgGrub2Efi" ]; 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
+@@ -242,12 +271,15 @@ install() {
+     if [ -n "$cfgLilo" ]; 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
+ 	    [ -n "$verbose" ] && echo "running $lilo"
+ 	    if [ ! -x $lilo ] ; then
+@@ -263,11 +295,15 @@ install() {
+     if [ -n "$cfgExtlinux" ]; 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
+@@ -401,6 +437,8 @@ update() {
+ 	return
+     fi
+ 
++    set_title
++
+     INITRD=""
+     if [ -f $initrdfile ]; then
+ 	[ -n "$verbose" ] && echo "found $initrdfile and using it with grubby"
+@@ -413,45 +451,53 @@ update() {
+ 
+     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
+ 
+     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
+ 
+     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
+ 
+     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
+ 	    [ -n "$verbose" ] && echo "running $lilo"
+@@ -497,11 +543,13 @@ update() {
+ 
+     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
+-- 
+1.9.3
+
diff --git a/0008-Revert-Add-bls-test-harness-bits.patch b/0008-Revert-Add-bls-test-harness-bits.patch
new file mode 100644
index 0000000..54af4f4
--- /dev/null
+++ b/0008-Revert-Add-bls-test-harness-bits.patch
@@ -0,0 +1,446 @@
+From 4b927a16d3a1a8356f4ceb78c7388ca3cb6a5d87 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 15 Sep 2014 16:49:26 -0400
+Subject: [PATCH 8/9] Revert "Add bls test harness bits."
+
+This wasn't supposed to be pushed to master yet.  woops.
+
+This reverts commit 98cab84501f86bd98f12653c11f4ecc632139399.
+---
+ test.sh                                            | 105 -------------------
+ ...724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf |   8 --
+ ...724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf |   8 --
+ ...981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf |  10 --
+ ...981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf |  10 --
+ test/grub2.15                                      | 112 ---------------------
+ test/results/grub2.15                              | 112 ---------------------
+ 7 files changed, 365 deletions(-)
+ delete mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+ delete mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+ delete mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+ delete mode 100644 test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+ delete mode 100644 test/grub2.15
+ delete mode 100644 test/results/grub2.15
+
+diff --git a/test.sh b/test.sh
+index e7be15f..864a8ce 100755
+--- a/test.sh
++++ b/test.sh
+@@ -163,102 +163,6 @@ for b in $(./grubby --help | \
+     eval "${b}DisplayTest() { [[ \"$b\" == \$opt_bootloader ]] && oneDisplayTest --$b \"\$@\"; }"
+ done
+ 
+-grub2BlsTest() {
+-    declare blsdir=$(mktemp -d) cmpdir=$(mktemp -d)
+-
+-    declare blspairs=""
+-    while [ -n "$1" ]; do
+-        if [ "$1" == "--blspair" ]; then
+-            blsin=$(echo $2 | sed 's/\(.*\),.*/\1/')
+-            blsout=$(echo $2 | sed 's/[^,]*,\(.*\)/\1/')
+-            [ -n "$blsin" ] && cp "test/grub2-support_files/$blsin" ${blsdir}/
+-            [ -n "$blsout" ] && cp "test/grub2-support_files/$blsout" ${cmpdir}/
+-            blspairs="${blspairs} $2"
+-            shift 2
+-        else
+-            break
+-        fi
+-    done
+-
+-    typeset mode=$1 cfg=test/$2 correct=test/results/$3
+-    shift 3
+-
+-    local ENV_FILE=""
+-    if [ "$mode" == "--grub2" ]; then
+-        ENV_FILE="test/grub2-support_files/env_temp"
+-        if [ "$1" == "--env" ]; then
+-            cp "test/grub2-support_files/$2" "$ENV_FILE"
+-            shift 2
+-        else
+-            cp "test/grub2-support_files/grubenv.0" "$ENV_FILE"
+-        fi
+-        ENV_FILE="--env=$ENV_FILE"
+-    fi
+-
+-    declare outfile=$(mktemp)
+-    echo "$testing ... $mode bls $cfg $correct"
+-    runme=( ./grubby "$mode" --bad-image-okay $ENV_FILE -c "$cfg" -o - --blsdir="${blsdir}" "$@" )
+-    declare -i old_fail=$fail
+-    if "${runme[@]}" 2>&1 | cmp "$correct" > /dev/null; then
+-	(( pass++ ))
+-	if $opt_verbose; then
+-	    echo -------------------------------------------------------------
+-	    echo -n "PASS: "
+-	    printf "%q " "${runme[@]}"; echo
+-	    "${runme[@]}" 2>&1 | diff -U30 "$cfg" -
+-	    echo
+-	fi
+-    else
+-	(( fail++ ))
+-	echo -------------------------------------------------------------
+-	echo -n "FAIL: "
+-	printf "%q " "${runme[@]}"; echo
+-	"${runme[@]}" 2>&1 | diff -U30 "$correct" -
+-	echo
+-    fi
+-
+-    for pair in ${blspairs} ; do
+-        blsin=$(echo $pair | sed 's/\(.*\),.*/\1/')
+-        blsout=$(echo $pair | sed 's/[^,]*,\(.*\)/\1/')
+-
+-        if [ -z "${blsout}" -a -f ${blsdir}/${blsin} ]; then
+-            (( fail++ ))
+-            echo -------------------------------------------------------------
+-            echo -n "FAIL: "
+-            printf "%q " "${runme[@]}"; echo
+-            diff -U30 /dev/null ${blsdir}/${blsin}
+-        elif [ -n "${blsout}" ] && ! cmp ${blsdir}/${blsout} ${cmpdir}/${blsout} >/dev/null ; then
+-            (( fail++ ))
+-            echo -------------------------------------------------------------
+-            echo -n "FAIL: "
+-            printf "%q " "${runme[@]}"; echo
+-            diff -U30 "${cmpdir}/${blsout}" "${blsdir}/${blsout}"
+-        else
+-            (( pass++ ))
+-            if $opt_verbose; then
+-                echo -------------------------------------------------------------
+-                echo -n "PASS: "
+-                printf "%q " "${runme[@]}"; echo
+-                diff -U30 "${cmpdir}/${blsout}" "${blsdir}/${blsout}"
+-            fi
+-        fi
+-    done
+-
+-    if [ $old_fail -eq $fail ]; then
+-	(( pass++ ))
+-	if $opt_verbose; then
+-	    echo -------------------------------------------------------------
+-	    echo -n "PASS: "
+-	    printf "%q " "${runme[@]}"; echo
+-	    "${runme[@]}" 2>&1 | diff -U30 "$cfg" -
+-	    echo
+-	fi
+-    fi
+-
+-    rm -rvf ${blsdir}/ ${cmpdir}/
+-}
+-
+-
+ #----------------------------------------------------------------------
+ # Main
+ #----------------------------------------------------------------------
+@@ -629,15 +533,6 @@ if [ "$testgrub2" == "y" ]; then
+     grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \
+         --initrd=/boot/new-initrd --boot-filesystem=/boot/
+ 
+-    testing="GRUB2 add bls kernel+initrd"
+-    grub2BlsTest \
+-        --blspair 6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf,6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf \
+-        --blspair ,6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf \
+-        --grub2 grub2.15 grub2.15 \
+-        --add-kernel=/boot/new-kernel.img \
+-        --title=title --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
+-        --copy-default
+-
+     testing="GRUB2 display default index"
+     grub2DisplayTest grub2.1 defaultindex/0 --default-index
+     grub2DisplayTest grub2.2 defaultindex/0 --default-index
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+deleted file mode 100644
+index e36a1fd..0000000
+--- a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
++++ /dev/null
+@@ -1,8 +0,0 @@
+-# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf
+-title      Fedora 19 (Rawhide)
+-version    3.8.0-2.fc19.x86_64
+-machine-id 6a9857a393724b7a981ebb5b8495b9ea
+-filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
+-linux      /boot/vmlinux-3.8.0-2.fc19.x86_64
+-options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
+-initrd     /boot/initrd-3.8.0-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+deleted file mode 100644
+index 382d1af..0000000
+--- a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
++++ /dev/null
+@@ -1,8 +0,0 @@
+-# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.1-2.fc19.x86_64.conf
+-title      Fedora 19 (Rawhide)
+-version    3.8.1-2.fc19.x86_64
+-machine-id 6a9857a393724b7a981ebb5b8495b9ea
+-filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
+-linux      /boot/vmlinux-3.8.1-2.fc19.x86_64
+-options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
+-initrd     /boot/initrd-3.8.1-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+deleted file mode 100644
+index 05c0910..0000000
+--- a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
++++ /dev/null
+@@ -1,10 +0,0 @@
+-# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.0-2.fc19.x86_64.conf
+-title      Fedora 19 (tboot) (Rawhide)
+-version    3.8.0-2.fc19.x86_64
+-machine-id 6a9857a393724b7a981ebb5b8495b9ea
+-filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
+-multiboot  /boot/tboot.gz
+-  options    logging=serial,vga,memory
+-linux      /boot/vmlinux-3.8.0-2.fc19.x86_64
+-options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
+-initrd     /boot/initrd-3.8.0-2.fc19.x86_64
+diff --git a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf b/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+deleted file mode 100644
+index db17a93..0000000
+--- a/test/grub2-support_files/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
++++ /dev/null
+@@ -1,10 +0,0 @@
+-# /boot/org/freedesktop/bls/entries/6a9857a393724b7a981ebb5b8495b9ea-tboot-3.8.1-2.fc19.x86_64.conf
+-title      Fedora 19 (tboot) (Rawhide)
+-version    3.8.1-2.fc19.x86_64
+-machine-id 6a9857a393724b7a981ebb5b8495b9ea
+-filesystem 6d3376e4-fc93-4509-95ec-a21d68011da2
+-multiboot  /boot/tboot.gz
+-  options    logging=serial,vga,memory
+-linux      /boot/vmlinux-3.8.1-2.fc19.x86_64
+-options    root=UUID=6d3376e4-fc93-4509-95ec-a21d68011da2
+-initrd     /boot/initrd-3.8.1-2.fc19.x86_64
+diff --git a/test/grub2.15 b/test/grub2.15
+deleted file mode 100644
+index 0be2d74..0000000
+--- a/test/grub2.15
++++ /dev/null
+@@ -1,112 +0,0 @@
+-#
+-# DO NOT EDIT THIS FILE
+-#
+-# It is automatically generated by grub2-mkconfig using templates
+-# from /etc/grub.d and settings from /etc/default/grub
+-#
+-
+-### BEGIN /etc/grub.d/00_header ###
+-if [ -s $prefix/grubenv ]; then
+-  load_env
+-fi
+-if [ "${next_entry}" ] ; then
+-   set default="${next_entry}"
+-   set next_entry=
+-   save_env next_entry
+-   set boot_once=true
+-else
+-   set default="${saved_entry}"
+-fi
+-
+-if [ x"${feature_menuentry_id}" = xy ]; then
+-  menuentry_id_option="--id"
+-else
+-  menuentry_id_option=""
+-fi
+-
+-export menuentry_id_option
+-
+-if [ "${prev_saved_entry}" ]; then
+-  set saved_entry="${prev_saved_entry}"
+-  save_env saved_entry
+-  set prev_saved_entry=
+-  save_env prev_saved_entry
+-  set boot_once=true
+-fi
+-
+-function savedefault {
+-  if [ -z "${boot_once}" ]; then
+-    saved_entry="${chosen}"
+-    save_env saved_entry
+-  fi
+-}
+-
+-function load_video {
+-  if [ x$feature_all_video_module = xy ]; then
+-    insmod all_video
+-  else
+-    insmod efi_gop
+-    insmod efi_uga
+-    insmod ieee1275_fb
+-    insmod vbe
+-    insmod vga
+-    insmod video_bochs
+-    insmod video_cirrus
+-  fi
+-}
+-
+-if [ x$feature_default_font_path = xy ] ; then
+-   font=unicode
+-else
+-insmod part_gpt
+-insmod btrfs
+-set root='hd0,gpt4'
+-if [ x$feature_platform_search_hint = xy ]; then
+-  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
+-else
+-  search --no-floppy --fs-uuid --set=root 5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
+-fi
+-    font="/root/usr/share/grub/unicode.pf2"
+-fi
+-
+-if loadfont $font ; then
+-  set gfxmode=auto
+-  load_video
+-  insmod gfxterm
+-  set locale_dir=$prefix/locale
+-  set lang=en_US
+-  insmod gettext
+-fi
+-terminal_output gfxterm
+-set timeout=5
+-### END /etc/grub.d/00_header ###
+-
+-### BEGIN /etc/grub.d/10_blscfg ###
+-
+-bls_import
+-
+-### END /etc/grub.d/10_blscfg ###
+-
+-### BEGIN /etc/grub.d/20_linux_xen ###
+-
+-### END /etc/grub.d/20_linux_xen ###
+-
+-### BEGIN /etc/grub.d/20_ppc_terminfo ###
+-### END /etc/grub.d/20_ppc_terminfo ###
+-
+-### BEGIN /etc/grub.d/30_os-prober ###
+-### END /etc/grub.d/30_os-prober ###
+-
+-### BEGIN /etc/grub.d/40_custom ###
+-# This file provides an easy way to add custom menu entries.  Simply type the
+-# menu entries you want to add after this comment.  Be careful not to change
+-# the 'exec tail' line above.
+-### END /etc/grub.d/40_custom ###
+-
+-### BEGIN /etc/grub.d/41_custom ###
+-if [ -f  ${config_directory}/custom.cfg ]; then
+-  source ${config_directory}/custom.cfg
+-elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
+-  source $prefix/custom.cfg;
+-fi
+-### END /etc/grub.d/41_custom ###
+diff --git a/test/results/grub2.15 b/test/results/grub2.15
+deleted file mode 100644
+index 0be2d74..0000000
+--- a/test/results/grub2.15
++++ /dev/null
+@@ -1,112 +0,0 @@
+-#
+-# DO NOT EDIT THIS FILE
+-#
+-# It is automatically generated by grub2-mkconfig using templates
+-# from /etc/grub.d and settings from /etc/default/grub
+-#
+-
+-### BEGIN /etc/grub.d/00_header ###
+-if [ -s $prefix/grubenv ]; then
+-  load_env
+-fi
+-if [ "${next_entry}" ] ; then
+-   set default="${next_entry}"
+-   set next_entry=
+-   save_env next_entry
+-   set boot_once=true
+-else
+-   set default="${saved_entry}"
+-fi
+-
+-if [ x"${feature_menuentry_id}" = xy ]; then
+-  menuentry_id_option="--id"
+-else
+-  menuentry_id_option=""
+-fi
+-
+-export menuentry_id_option
+-
+-if [ "${prev_saved_entry}" ]; then
+-  set saved_entry="${prev_saved_entry}"
+-  save_env saved_entry
+-  set prev_saved_entry=
+-  save_env prev_saved_entry
+-  set boot_once=true
+-fi
+-
+-function savedefault {
+-  if [ -z "${boot_once}" ]; then
+-    saved_entry="${chosen}"
+-    save_env saved_entry
+-  fi
+-}
+-
+-function load_video {
+-  if [ x$feature_all_video_module = xy ]; then
+-    insmod all_video
+-  else
+-    insmod efi_gop
+-    insmod efi_uga
+-    insmod ieee1275_fb
+-    insmod vbe
+-    insmod vga
+-    insmod video_bochs
+-    insmod video_cirrus
+-  fi
+-}
+-
+-if [ x$feature_default_font_path = xy ] ; then
+-   font=unicode
+-else
+-insmod part_gpt
+-insmod btrfs
+-set root='hd0,gpt4'
+-if [ x$feature_platform_search_hint = xy ]; then
+-  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
+-else
+-  search --no-floppy --fs-uuid --set=root 5a2ca487-30f7-4fa5-96bd-abe38b68ceb3
+-fi
+-    font="/root/usr/share/grub/unicode.pf2"
+-fi
+-
+-if loadfont $font ; then
+-  set gfxmode=auto
+-  load_video
+-  insmod gfxterm
+-  set locale_dir=$prefix/locale
+-  set lang=en_US
+-  insmod gettext
+-fi
+-terminal_output gfxterm
+-set timeout=5
+-### END /etc/grub.d/00_header ###
+-
+-### BEGIN /etc/grub.d/10_blscfg ###
+-
+-bls_import
+-
+-### END /etc/grub.d/10_blscfg ###
+-
+-### BEGIN /etc/grub.d/20_linux_xen ###
+-
+-### END /etc/grub.d/20_linux_xen ###
+-
+-### BEGIN /etc/grub.d/20_ppc_terminfo ###
+-### END /etc/grub.d/20_ppc_terminfo ###
+-
+-### BEGIN /etc/grub.d/30_os-prober ###
+-### END /etc/grub.d/30_os-prober ###
+-
+-### BEGIN /etc/grub.d/40_custom ###
+-# This file provides an easy way to add custom menu entries.  Simply type the
+-# menu entries you want to add after this comment.  Be careful not to change
+-# the 'exec tail' line above.
+-### END /etc/grub.d/40_custom ###
+-
+-### BEGIN /etc/grub.d/41_custom ###
+-if [ -f  ${config_directory}/custom.cfg ]; then
+-  source ${config_directory}/custom.cfg
+-elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
+-  source $prefix/custom.cfg;
+-fi
+-### END /etc/grub.d/41_custom ###
+-- 
+1.9.3
+
diff --git a/0009-Always-error-check-getLineByType.patch b/0009-Always-error-check-getLineByType.patch
new file mode 100644
index 0000000..326d485
--- /dev/null
+++ b/0009-Always-error-check-getLineByType.patch
@@ -0,0 +1,62 @@
+From 65d2f744f9546dd0ef24d4579ca722afadf41c52 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones at redhat.com>
+Date: Thu, 25 Sep 2014 13:24:15 -0400
+Subject: [PATCH 9/9] Always error check getLineByType()
+
+Signed-off-by: Peter Jones <pjones at redhat.com>
+---
+ grubby.c | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/grubby.c b/grubby.c
+index 855464a..27b4547 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -2369,9 +2369,11 @@ void displayEntry(struct singleEntry * entry, const char * prefix, int index) {
+     } else {
+ 	char * title;
+ 	line = getLineByType(LT_MENUENTRY, entry->lines);
+-	title = grub2ExtractTitle(line);
+-	if (title)
+-	    printf("title=%s\n", title);
++	if (!line) {
++	    title = grub2ExtractTitle(line);
++	    if (title)
++		printf("title=%s\n", title);
++	}
+     }
+ 
+     for (j = 0, line = entry->lines; line; line = line->next) {
+@@ -3322,9 +3324,13 @@ int addMBInitrd(struct grubConfig * cfg, const char *newMBKernel,
+ 
+ 	/* if title is supplied, the entry's title must match it. */
+ 	if (title) {
++	    char *linetitle;
++
+ 	    line = getLineByType(LT_TITLE|LT_MENUENTRY, entry->lines);
+-	    char *linetitle = extractTitle(line);
++	    if (!line)
++		continue;
+ 
++	    linetitle = extractTitle(line);
+ 	    if (!linetitle)
+ 		continue;
+ 	    if (strcmp(title, linetitle)) {
+@@ -3372,9 +3378,13 @@ int updateInitrd(struct grubConfig * cfg, const char * image,
+ 
+ 	/* if title is supplied, the entry's title must match it. */
+ 	if (title) {
++	    char *linetitle;
++
+ 	    line = getLineByType(LT_TITLE|LT_MENUENTRY, entry->lines);
+-	    char *linetitle = extractTitle(line);
++	    if (!line)
++		continue;
+ 
++	    linetitle = extractTitle(line);
+ 	    if (!linetitle)
+ 		continue;
+ 	    if (strcmp(title, linetitle)) {
+-- 
+1.9.3
+
diff --git a/grubby.spec b/grubby.spec
index aedc5d1..87e02a4 100644
--- a/grubby.spec
+++ b/grubby.spec
@@ -1,6 +1,6 @@
 Name: grubby
 Version: 8.35
-Release: 4%{?dist}
+Release: 5%{?dist}
 Summary: Command line tool for updating bootloader configs
 Group: System Environment/Base
 License: GPLv2+
@@ -9,6 +9,15 @@ URL: http://git.fedorahosted.org/git/grubby.git
 # git clone git://git.fedorahosted.org/git/grubby.git
 # git archive --format=tar --prefix=grubby-%{version}/ HEAD |bzip2 > grubby-%{version}.tar.bz2
 Source0: %{name}-%{version}.tar.bz2
+Patch0001: 0001-Don-t-go-past-the-last-element-of-indexVars-in-findE.patch
+Patch0002: 0002-Add-bls-test-harness-bits.patch
+Patch0003: 0003-grubby-fix-initrd-updating-when-multiboot-exist.patch
+Patch0004: 0004-Tell-a-slightly-better-fib-about-default-bootloader-.patch
+Patch0005: 0005-Make-findTemplate-actually-return-the-saved-default.patch
+Patch0006: 0006-Support-filtering-update-kernel-by-title-as-well.patch
+Patch0007: 0007-Conditionally-create-debug-entries-when-installing-k.patch
+Patch0008: 0008-Revert-Add-bls-test-harness-bits.patch
+Patch0009: 0009-Always-error-check-getLineByType.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: pkgconfig glib2-devel popt-devel 
@@ -41,6 +50,8 @@ git config user.name "no one"
 git add .
 git commit -a -q -m "%{version} baseline"
 git am %{patches} </dev/null
+grub config --unset user.email
+grub config --unset user.name
 
 %build
 make %{?_smp_mflags}
@@ -76,6 +87,11 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %changelog
+* Fri Sep 26 2014 Peter Jones <pjones at redhat.com> - 8.35-5
+- See if what people are seeing in 1141414 is actually 957681
+  Related: rhbz#957681
+  Related: rhbz#1141414
+
 * Sat Aug 16 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 8.35-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
 


More information about the scm-commits mailing list