Update to 8.31

- Fold in patches from Fedora and RHEL 7 trees
This commit is contained in:
Peter Jones 2014-03-28 15:43:58 -04:00
parent dc1eb4a29a
commit 58f61ff2e5
6 changed files with 7 additions and 1045 deletions

View File

@ -1,81 +0,0 @@
From 392ee59b91c19c05fc91c9ed92b910d2cf1ed0a8 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 27 Nov 2013 16:59:50 +0100
Subject: [PATCH 1/4] extlinux: Understand "default" properly
The configuration looks like the following:
default Fedora (3.11.6-301.fc20.i686+PAE) 20 (Heisenbug)
title Fedora (3.11.6-301.fc20.i686+PAE) 20 (Heisenbug)
...
Grubby skips over the default clause as it has more than one element. And even
if it did not, it would not match it against the title, since it handles titles
specially, concatenating the title, but not the default clause.
This commit adds special handling for extlinux, which causes it to parse
default and title in the same way.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
grubby.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/grubby.c b/grubby.c
index 3de53b3..7010526 100644
--- a/grubby.c
+++ b/grubby.c
@@ -151,6 +151,7 @@ struct configFileInfo {
int defaultIsVariable;
int defaultSupportSaved;
int defaultIsSaved;
+ int defaultIsUnquoted;
enum lineType_e entryStart;
enum lineType_e entryEnd;
int needsBootPrefix;
@@ -622,6 +623,7 @@ struct configFileInfo extlinuxConfigType = {
.needsBootPrefix = 1,
.maxTitleLength = 255,
.mbAllowExtraInitRds = 1,
+ .defaultIsUnquoted = 1,
};
struct grubConfig {
@@ -1166,9 +1168,6 @@ static struct grubConfig * readConfig(const char * inName,
cfg->flags &= ~GRUB_CONFIG_NO_DEFAULT;
defaultLine = line;
}
- } else if (line->type == LT_DEFAULT && line->numElements == 2) {
- cfg->flags &= ~GRUB_CONFIG_NO_DEFAULT;
- defaultLine = line;
} else if (iskernel(line->type)) {
/* if by some freak chance this is multiboot and the "module"
@@ -1201,8 +1200,9 @@ static struct grubConfig * readConfig(const char * inName,
cfg->fallbackImage = strtol(line->elements[1].item, &end, 10);
if (*end) cfg->fallbackImage = -1;
- } else if (line->type == LT_TITLE && line->numElements > 1) {
- /* make the title a single argument (undoing our parsing) */
+ } else if ((line->type == LT_DEFAULT && cfi->defaultIsUnquoted) ||
+ (line->type == LT_TITLE && line->numElements > 1)) {
+ /* make the title/default a single argument (undoing our parsing) */
len = 0;
for (int i = 1; i < line->numElements; i++) {
len += strlen(line->elements[i].item);
@@ -1309,6 +1309,11 @@ static struct grubConfig * readConfig(const char * inName,
}
}
+ if (line->type == LT_DEFAULT && line->numElements == 2) {
+ cfg->flags &= ~GRUB_CONFIG_NO_DEFAULT;
+ defaultLine = line;
+ }
+
/* If we find a generic config option which should live at the
top of the file, move it there. Old versions of grubby were
probably responsible for putting new images in the wrong
--
1.8.3.1

View File

@ -1,891 +0,0 @@
From c478df5e9914fc2f7fda355b91bf816ce0bb289a Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 27 Nov 2013 16:59:49 +0100
Subject: [PATCH 2/4] extlinux: Add test suite
Strongly inspired aby GRUB test suite. Note that this does not pass currently,
since the extlinux default line gets eaten (rhbz#964178). A fix will follow.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
test.sh | 58 +++++++++++++++++++++++++++++++++++++++-
test/extlinux.1 | 17 ++++++++++++
test/extlinux.2 | 21 +++++++++++++++
test/extlinux.3 | 15 +++++++++++
test/extlinux.4 | 32 ++++++++++++++++++++++
test/results/add/extlinux1.1 | 20 ++++++++++++++
test/results/add/extlinux1.2 | 20 ++++++++++++++
test/results/add/extlinux1.3 | 21 +++++++++++++++
test/results/add/extlinux1.4 | 21 +++++++++++++++
test/results/add/extlinux2.1 | 21 +++++++++++++++
test/results/args/extlinux1.1 | 20 ++++++++++++++
test/results/args/extlinux1.2 | 20 ++++++++++++++
test/results/default/extlinux1.1 | 19 +++++++++++++
test/results/default/extlinux1.2 | 19 +++++++++++++
test/results/default/extlinux3.1 | 16 +++++++++++
test/results/default/extlinux3.2 | 15 +++++++++++
test/results/remove/extlinux3.1 | 10 +++++++
test/results/remove/extlinux4.1 | 27 +++++++++++++++++++
test/results/updargs/extlinux1.1 | 17 ++++++++++++
test/results/updargs/extlinux1.2 | 18 +++++++++++++
test/results/updargs/extlinux3.1 | 15 +++++++++++
test/results/updargs/extlinux3.2 | 15 +++++++++++
test/results/updargs/extlinux3.4 | 15 +++++++++++
test/results/updargs/extlinux3.7 | 13 +++++++++
test/results/updargs/extlinux4.2 | 32 ++++++++++++++++++++++
test/results/updargs/extlinux4.3 | 32 ++++++++++++++++++++++
test/results/updargs/extlinux4.4 | 32 ++++++++++++++++++++++
test/results/updargs/extlinux4.5 | 33 +++++++++++++++++++++++
28 files changed, 613 insertions(+), 1 deletion(-)
create mode 100644 test/extlinux.1
create mode 100644 test/extlinux.2
create mode 100644 test/extlinux.3
create mode 100644 test/extlinux.4
create mode 100644 test/results/add/extlinux1.1
create mode 100644 test/results/add/extlinux1.2
create mode 100644 test/results/add/extlinux1.3
create mode 100644 test/results/add/extlinux1.4
create mode 100644 test/results/add/extlinux2.1
create mode 100644 test/results/args/extlinux1.1
create mode 100644 test/results/args/extlinux1.2
create mode 100644 test/results/default/extlinux1.1
create mode 100644 test/results/default/extlinux1.2
create mode 100644 test/results/default/extlinux3.1
create mode 100644 test/results/default/extlinux3.2
create mode 100644 test/results/remove/extlinux3.1
create mode 100644 test/results/remove/extlinux4.1
create mode 100644 test/results/updargs/extlinux1.1
create mode 100644 test/results/updargs/extlinux1.2
create mode 100644 test/results/updargs/extlinux3.1
create mode 100644 test/results/updargs/extlinux3.2
create mode 100644 test/results/updargs/extlinux3.4
create mode 100644 test/results/updargs/extlinux3.7
create mode 100644 test/results/updargs/extlinux4.2
create mode 100644 test/results/updargs/extlinux4.3
create mode 100644 test/results/updargs/extlinux4.4
create mode 100644 test/results/updargs/extlinux4.5
diff --git a/test.sh b/test.sh
index 17b40fe..4dc4dfb 100755
--- a/test.sh
+++ b/test.sh
@@ -158,7 +158,7 @@ commandTest() {
# generate convenience functions
for b in $(./grubby --help | \
- sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader$/\1/p'); do
+ sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader.*/\1/p'); do
eval "${b}Test() { [[ \"$b\" == \$opt_bootloader ]] && oneTest --$b \"\$@\"; }"
eval "${b}DisplayTest() { [[ \"$b\" == \$opt_bootloader ]] && oneDisplayTest --$b \"\$@\"; }"
done
@@ -316,12 +316,24 @@ grubTest grub.5 fallback/g5.3 --remove-kernel=/boot/vmlinuz-2.4.7-2.5 \
--boot-filesystem=/ --copy-default --add-kernel=/boot/new-kernel \
--title="Some_Title"
+testing="Extlinux default directive"
+extlinuxTest extlinux.1 default/extlinux1.1 --boot-filesystem=/boot --add-kernel /boot/new-kernel --title Some_Title
+extlinuxTest extlinux.1 default/extlinux1.2 --boot-filesystem=/boot --add-kernel /boot/new-kernel --title Some_Title --make-default
+extlinuxTest extlinux.3 default/extlinux3.1 --boot-filesystem=/boot --set-default=/boot/vmlinuz-3.12.0-2.fc21.i686
+extlinuxTest extlinux.3 default/extlinux3.2 --boot-filesystem=/boot --set-default=/boot/vmlinuz-3.12.0-2.fc21.i686+PAE
+
testing="GRUB new kernel argument handling"
grubTest grub.1 args/g1.1 --boot-filesystem=/boot \
--add-kernel=/boot/foo --title=some_title --args="1234" --copy-default
grubTest grub.1 args/g1.2 --boot-filesystem=/boot \
--add-kernel=/boot/foo --title=some_title --args="1234"
+testing="Extlinux new kernel argument handling"
+extlinuxTest extlinux.1 args/extlinux1.1 --boot-filesystem=/boot \
+ --add-kernel=/boot/foo --title=some_title --args="1234" --copy-default
+extlinuxTest extlinux.1 args/extlinux1.2 --boot-filesystem=/boot \
+ --add-kernel=/boot/foo --title=some_title --args="1234"
+
testing="GRUB remove kernel"
grubTest grub.7 remove/g7.1 --boot-filesystem=/ \
--remove-kernel=/boot/vmlinuz-2.4.7-2.5
@@ -339,6 +351,12 @@ testing="Z/IPL remove kernel"
ziplTest zipl.1 remove/z1.1 --remove-kernel=/boot/vmlinuz-2.4.9-38
ziplTest zipl.1 remove/z1.2 --remove-kernel=DEFAULT
+testing="Extlinux remove kernel"
+extlinuxTest extlinux.4 remove/extlinux4.1 --boot-filesystem=/ \
+ --remove-kernel=/boot/vmlinuz-3.11.7-301.fc20.i686
+extlinuxTest extlinux.3 remove/extlinux3.1 --boot-filesystem=/ \
+ --remove-kernel=DEFAULT
+
testing="GRUB update kernel argument handling"
grubTest grub.1 updargs/g1.1 --update-kernel=DEFAULT --args="root=/dev/hda1"
grubTest grub.1 updargs/g1.2 --update-kernel=DEFAULT \
@@ -391,6 +409,30 @@ liloTest lilo.3 updargs/l3.1 --update-kernel=/boot/vmlinuz-2.4.18-4 \
liloTest lilo.3 updargs/l3.2 --update-kernel=ALL \
--remove-args="single" --args "root=/dev/hda2"
+testing="Extlinux update kernel argument handling"
+extlinuxTest extlinux.1 updargs/extlinux1.1 --update-kernel=DEFAULT --args="root=/dev/hda1"
+extlinuxTest extlinux.1 updargs/extlinux1.2 --update-kernel=DEFAULT \
+ --args="root=/dev/hda1 hda=ide-scsi root=/dev/hda2"
+extlinuxTest extlinux.3 updargs/extlinux3.1 --update-kernel=DEFAULT --args "hdd=notide-scsi"
+extlinuxTest extlinux.3 updargs/extlinux3.2 --update-kernel=DEFAULT \
+ --args "hdd=notide-scsi root=/dev/hdd1"
+extlinuxTest extlinux.3 updargs/extlinux3.2 --update-kernel=DEFAULT \
+ --args "root=/dev/hdd1 hdd=notide-scsi"
+extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd"
+extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd=ide-scsi"
+extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd=foobar"
+extlinuxTest extlinux.3 updargs/extlinux3.7 --update-kernel=ALL \
+ --remove-args="hdd root ro"
+extlinuxTest extlinux.4 updargs/extlinux4.2 --boot-filesystem=/ \
+ --update-kernel=ALL --args "hde=ide-scsi"
+extlinuxTest extlinux.4 updargs/extlinux4.3 --boot-filesystem=/ \
+ --update-kernel=DEFAULT --args "hde=ide-scsi"
+extlinuxTest extlinux.4 updargs/extlinux4.4 --boot-filesystem=/ \
+ --update-kernel=/vmlinuz-3.12.0-2.fc21.i686 \
+ --args "ro root=LABEL=/ console=tty0 console=ttyS1,9600n81 single"
+extlinuxTest extlinux.4 updargs/extlinux4.5 --boot-filesystem=/ \
+ --update-kernel=ALL --args "root=/dev/hda2"
+
testing="LILO add kernel"
liloTest lilo.4 add/l4.1 --add-kernel=/boot/new-kernel.img --title="title" \
--copy-default --boot-filesystem=/boot
@@ -550,6 +592,20 @@ testing="Z/IPL add kernel"
ziplTest zipl.1 add/z1.1 --add-kernel=/boot/new-kernel.img --title test
ziplTest zipl.1 add/z1.2 --add-kernel=/boot/new-kernel.img --title test --copy-default
+testing="Extlinux add kernel"
+extlinuxTest extlinux.1 add/extlinux1.1 --add-kernel=/boot/new-kernel.img --title='title' \
+ --initrd=/boot/new-initrd --boot-filesystem=/
+extlinuxTest extlinux.1 add/extlinux1.2 --add-kernel=/boot/new-kernel.img --title='title' \
+ --initrd=/boot/new-initrd --boot-filesystem=/boot
+extlinuxTest extlinux.1 add/extlinux1.3 --add-kernel=/boot/new-kernel.img --title='title' \
+ --initrd=/boot/new-initrd --boot-filesystem=/ --copy-default
+extlinuxTest extlinux.1 add/extlinux1.4 --add-kernel=/boot/new-kernel.img --title='title' \
+ --initrd=/boot/new-initrd --boot-filesystem=/boot --copy-default
+extlinuxTest extlinux.2 add/extlinux2.1 --add-kernel=/boot/vmlinuz-3.12.0-2.fc21.i686 \
+ --initrd=/boot/initrd-3.12.0-2.fc21.i686-new.img --boot-filesystem=/boot --copy-default \
+ --title="Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)" \
+ --remove-kernel="TITLE=Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)"
+
testing="LILO long titles"
liloTest lilo.1 longtitle/l1.1 --add-kernel=/boot/new-kernel.img \
--title="linux-longtitle" --copy-default --boot-filesystem=/boot
diff --git a/test/extlinux.1 b/test/extlinux.1
new file mode 100644
index 0000000..85c9272
--- /dev/null
+++ b/test/extlinux.1
@@ -0,0 +1,17 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/extlinux.2 b/test/extlinux.2
new file mode 100644
index 0000000..eae4aa7
--- /dev/null
+++ b/test/extlinux.2
@@ -0,0 +1,21 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/hda5 hdd=ide-scsi
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/extlinux.3 b/test/extlinux.3
new file mode 100644
index 0000000..63f97bf
--- /dev/null
+++ b/test/extlinux.3
@@ -0,0 +1,15 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/extlinux.4 b/test/extlinux.4
new file mode 100644
index 0000000..14b795c
--- /dev/null
+++ b/test/extlinux.4
@@ -0,0 +1,32 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.11.7-301.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-301.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-301.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1 console=tty0 console=ttyS1,9600n81
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/add/extlinux1.1 b/test/results/add/extlinux1.1
new file mode 100644
index 0000000..f81a7ed
--- /dev/null
+++ b/test/results/add/extlinux1.1
@@ -0,0 +1,20 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label title
+kernel /boot/new-kernel.img
+initrd /boot/new-initrd
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/add/extlinux1.2 b/test/results/add/extlinux1.2
new file mode 100644
index 0000000..71e0437
--- /dev/null
+++ b/test/results/add/extlinux1.2
@@ -0,0 +1,20 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label title
+kernel /new-kernel.img
+initrd /new-initrd
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/add/extlinux1.3 b/test/results/add/extlinux1.3
new file mode 100644
index 0000000..9634025
--- /dev/null
+++ b/test/results/add/extlinux1.3
@@ -0,0 +1,21 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label title
+kernel /boot/new-kernel.img
+append ro root=/dev/sda1
+initrd /boot/new-initrd
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/add/extlinux1.4 b/test/results/add/extlinux1.4
new file mode 100644
index 0000000..aa1ce63
--- /dev/null
+++ b/test/results/add/extlinux1.4
@@ -0,0 +1,21 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label title
+kernel /new-kernel.img
+append ro root=/dev/sda1
+initrd /new-initrd
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/add/extlinux2.1 b/test/results/add/extlinux2.1
new file mode 100644
index 0000000..13a4179
--- /dev/null
+++ b/test/results/add/extlinux2.1
@@ -0,0 +1,21 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/hda5 hdd=ide-scsi
+initrd /initrd-3.12.0-2.fc21.i686-new.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/args/extlinux1.1 b/test/results/args/extlinux1.1
new file mode 100644
index 0000000..2d8c800
--- /dev/null
+++ b/test/results/args/extlinux1.1
@@ -0,0 +1,20 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label some_title
+kernel /foo
+append ro root=/dev/sda1 1234
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/args/extlinux1.2 b/test/results/args/extlinux1.2
new file mode 100644
index 0000000..41cc324
--- /dev/null
+++ b/test/results/args/extlinux1.2
@@ -0,0 +1,20 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label some_title
+kernel /foo
+append 1234
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/default/extlinux1.1 b/test/results/default/extlinux1.1
new file mode 100644
index 0000000..5d7f73d
--- /dev/null
+++ b/test/results/default/extlinux1.1
@@ -0,0 +1,19 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Some_Title
+kernel /new-kernel
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/default/extlinux1.2 b/test/results/default/extlinux1.2
new file mode 100644
index 0000000..e98ff12
--- /dev/null
+++ b/test/results/default/extlinux1.2
@@ -0,0 +1,19 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Some_Title
+
+label Some_Title
+kernel /new-kernel
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/default/extlinux3.1 b/test/results/default/extlinux3.1
new file mode 100644
index 0000000..5a5495d
--- /dev/null
+++ b/test/results/default/extlinux3.1
@@ -0,0 +1,16 @@
+prompt 0
+
+default=Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/default/extlinux3.2 b/test/results/default/extlinux3.2
new file mode 100644
index 0000000..63f97bf
--- /dev/null
+++ b/test/results/default/extlinux3.2
@@ -0,0 +1,15 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/remove/extlinux3.1 b/test/results/remove/extlinux3.1
new file mode 100644
index 0000000..12b4ef5
--- /dev/null
+++ b/test/results/remove/extlinux3.1
@@ -0,0 +1,10 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/remove/extlinux4.1 b/test/results/remove/extlinux4.1
new file mode 100644
index 0000000..5e1824e
--- /dev/null
+++ b/test/results/remove/extlinux4.1
@@ -0,0 +1,27 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1 console=tty0 console=ttyS1,9600n81
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux1.1 b/test/results/updargs/extlinux1.1
new file mode 100644
index 0000000..1e2a709
--- /dev/null
+++ b/test/results/updargs/extlinux1.1
@@ -0,0 +1,17 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/hda1
+initrd /initrd-3.12.0-2.fc21.i686.img
diff --git a/test/results/updargs/extlinux1.2 b/test/results/updargs/extlinux1.2
new file mode 100644
index 0000000..764655a
--- /dev/null
+++ b/test/results/updargs/extlinux1.2
@@ -0,0 +1,18 @@
+# extlinux.conf generated by anaconda
+
+ui menu.c32
+
+menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
+menu title Fedora Boot Options.
+menu hidden
+
+timeout 50
+totaltimeout 9000
+
+default Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/hda1 hda=ide-scsi
+initrd /initrd-3.12.0-2.fc21.i686.img
+root /dev/hda2
diff --git a/test/results/updargs/extlinux3.1 b/test/results/updargs/extlinux3.1
new file mode 100644
index 0000000..ef9fa86
--- /dev/null
+++ b/test/results/updargs/extlinux3.1
@@ -0,0 +1,15 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/sda1 hdd=notide-scsi
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux3.2 b/test/results/updargs/extlinux3.2
new file mode 100644
index 0000000..c85b6bf
--- /dev/null
+++ b/test/results/updargs/extlinux3.2
@@ -0,0 +1,15 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/hdd1 hdd=notide-scsi
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux3.4 b/test/results/updargs/extlinux3.4
new file mode 100644
index 0000000..63f97bf
--- /dev/null
+++ b/test/results/updargs/extlinux3.4
@@ -0,0 +1,15 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux3.7 b/test/results/updargs/extlinux3.7
new file mode 100644
index 0000000..b542ad3
--- /dev/null
+++ b/test/results/updargs/extlinux3.7
@@ -0,0 +1,13 @@
+prompt 0
+
+label Fedora (3.12.0-2.fc21.i686+PAE) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686+PAE
+initrd /initrd-3.12.0-2.fc21.i686+PAE.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux4.2 b/test/results/updargs/extlinux4.2
new file mode 100644
index 0000000..9bf16b7
--- /dev/null
+++ b/test/results/updargs/extlinux4.2
@@ -0,0 +1,32 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda6 hde=ide-scsi
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.11.7-301.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-301.fc20.i686
+append ro root=/dev/hda6 hde=ide-scsi
+initrd /boot/initrd-3.11.7-301.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda6 hde=ide-scsi
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1 console=tty0 console=ttyS1,9600n81 hde=ide-scsi
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1 hde=ide-scsi
diff --git a/test/results/updargs/extlinux4.3 b/test/results/updargs/extlinux4.3
new file mode 100644
index 0000000..218711d
--- /dev/null
+++ b/test/results/updargs/extlinux4.3
@@ -0,0 +1,32 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.11.7-301.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-301.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-301.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda6 hde=ide-scsi
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/sda1 console=tty0 console=ttyS1,9600n81
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux4.4 b/test/results/updargs/extlinux4.4
new file mode 100644
index 0000000..dc298fb
--- /dev/null
+++ b/test/results/updargs/extlinux4.4
@@ -0,0 +1,32 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.11.7-301.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-301.fc20.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.11.7-301.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda6
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=LABEL=/ console=tty0 console=ttyS1,9600n81 single
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
diff --git a/test/results/updargs/extlinux4.5 b/test/results/updargs/extlinux4.5
new file mode 100644
index 0000000..6418a48
--- /dev/null
+++ b/test/results/updargs/extlinux4.5
@@ -0,0 +1,33 @@
+ui menu.c32
+
+menu hidden
+timeout 50
+totaltimeout 9000
+
+prompt 10
+default Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+
+label Fedora (3.11.7-300.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-300.fc20.i686
+append ro root=/dev/hda2
+initrd /boot/initrd-3.11.7-300.fc20.i686.img
+
+label Fedora (3.11.7-301.fc20.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.11.7-301.fc20.i686
+append ro root=/dev/hda2
+initrd /boot/initrd-3.11.7-301.fc20.i686.img
+
+label Fedora (3.13.0-0.rc0.git5.1.fc21.i686) 20 (Heisenbug)
+kernel /boot/vmlinuz-3.13.0-0.rc0.git5.1.fc21.i686
+append ro root=/dev/hda2
+initrd /boot/initrd-3.13.0-0.rc0.git5.1.fc21.i686.img
+
+label Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)
+kernel /vmlinuz-3.12.0-2.fc21.i686
+append ro root=/dev/hda2 console=tty0 console=ttyS1,9600n81
+initrd /initrd-3.12.0-2.fc21.i686.img
+
+label DOS
+com32 chain.c32
+append hd0 1
+root /dev/hda2
--
1.8.3.1

View File

@ -1,36 +0,0 @@
From 91d4421e96a737650720a6306b91994574f98d7a Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 27 Nov 2013 16:59:48 +0100
Subject: [PATCH 3/4] grub: Fix a crash with kernel line without being preceded
by title
Quite obviously this implies a broken configuration file where a lone kernel
line is found without ever seeing an entry start, resulting in a NULL
dereference attempt. Reproducible by running GRUB code against extlinux
configuration:
./grubby --grub -c test/extlinux.1 --default-kernel
grubby received SIGSEGV! Backtrace (6):
...
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
grubby.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grubby.c b/grubby.c
index 7010526..b0f95e3 100644
--- a/grubby.c
+++ b/grubby.c
@@ -1174,7 +1174,7 @@ static struct grubConfig * readConfig(const char * inName,
* lines came earlier in the template, make sure to use LT_HYPER
* instead of LT_KERNEL now
*/
- if (entry->multiboot)
+ if (entry && entry->multiboot)
line->type = LT_HYPER;
} else if (line->type == LT_MBMODULE) {
--
1.8.3.1

View File

@ -1,26 +0,0 @@
From c6b5d783ad88243f104b9c2d63d7ea30094667d3 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 27 Nov 2013 16:59:47 +0100
Subject: [PATCH 4/4] grub: Remove a redundant test
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
test.sh | 2 --
1 file changed, 2 deletions(-)
diff --git a/test.sh b/test.sh
index 4dc4dfb..24231a2 100755
--- a/test.sh
+++ b/test.sh
@@ -373,8 +373,6 @@ grubTest grub.3 updargs/g3.7 --update-kernel=ALL \
--remove-args="hdd root ro"
grubTest grub.7 updargs/g7.2 --boot-filesystem=/ \
--update-kernel=ALL --args "hde=ide-scsi"
-grubTest grub.7 updargs/g7.2 --boot-filesystem=/ \
- --update-kernel=ALL --args "hde=ide-scsi"
grubTest grub.7 updargs/g7.3 --boot-filesystem=/ \
--update-kernel=DEFAULT --args "hde=ide-scsi"
grubTest grub.7 updargs/g7.4 --boot-filesystem=/ \
--
1.8.3.1

View File

@ -1,6 +1,6 @@
Name: grubby
Version: 8.28
Release: 2%{?dist}
Version: 8.31
Release: 1%{?dist}
Summary: Command line tool for updating bootloader configs
Group: System Environment/Base
License: GPLv2+
@ -10,15 +10,6 @@ URL: http://git.fedorahosted.org/git/grubby.git
# git archive --format=tar --prefix=grubby-%{version}/ HEAD |bzip2 > grubby-%{version}.tar.bz2
Source0: %{name}-%{version}.tar.bz2
# https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-November/007524.html
Patch0: 0001-extlinux-Understand-default-properly.patch
# https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-November/007525.html
Patch1: 0002-extlinux-Add-test-suite.patch
# https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-November/007522.html
Patch2: 0003-grub-Fix-a-crash-with-kernel-line-without-being-prec.patch
# https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-November/007523.html
Patch3: 0004-grub-Remove-a-redundant-test.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: pkgconfig glib2-devel popt-devel
BuildRequires: libblkid-devel git
@ -84,6 +75,10 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Fri Mar 28 2014 Peter Jones <pjones@redhat.com> - 8.31-1
- Update to 8.31
- Fold in patches from Fedora and RHEL 7 trees
* Mon Jan 20 2014 Lubomir Rintel <lkundrak@v3.sk> - 8.28-2
- Fix extlinux default

View File

@ -1 +1,2 @@
4d7899a823345d852c51cc750a9a1197 grubby-8.28.tar.bz2
eb2edddc03b24b85a64a377f41f4b31b grubby-8.31.tar.bz2