[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#775143: grub/grub2 kernel parameter bugs



Patches attached; three commits, one to correct each issue identified,
in the given order.

I have tested these + my 775128 patch (v2 - not yet uploaded as of this
moment), and they correctly amend the menu creation. I haven't actually
tested running an image or an installer included in one, but I expect it
to work perfectly - the menus created look good!
commit 67a5f6647393c2ac1493463d05252d63d442b187
Author: jnqnfe <jnqnfe@gmail.com>
Date:   Sun Jan 11 21:14:49 2015 +0000

    Fix insertion order of user supplied kernel parameters in grub/grub2 menu creation (#775143)
    
    To match syslinux, and because I believe that placing them before the 'quiet' (d-i?) parameter is the correct place.

diff --git a/scripts/build/binary_grub b/scripts/build/binary_grub
index c311c12..2836d8f 100755
--- a/scripts/build/binary_grub
+++ b/scripts/build/binary_grub
@@ -85,19 +85,19 @@ Grub_install_entry ()
 	do
 		case "${TYPE}" in
 			Install)
-				TAPPEND="${APPEND} ${QAPPEND}"
+				TAPPEND="${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
 				;;
 
 			Expert)
-				TAPPEND="priority=low ${APPEND}"
+				TAPPEND="priority=low ${APPEND} LB_BOOTAPPEND_INSTALL"
 				;;
 
 			Rescue)
-				TAPPEND="rescue/enable=true ${APPEND} ${QAPPEND}"
+				TAPPEND="rescue/enable=true ${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
 				;;
 
 			Auto)
-				TAPPEND="auto=true priority=critical ${APPEND} ${QAPPEND}"
+				TAPPEND="auto=true priority=critical ${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
 				;;
 		esac
 
@@ -112,7 +112,7 @@ Grub_install_entry ()
 
 
 		LINUX_INSTALL="${LINUX_INSTALL}\ntitle\t\t${LABEL} ${TYPE}"
-		LINUX_INSTALL="${LINUX_INSTALL}\nkernel\t\t/${KERNEL} ${TAPPEND} ${LB_BOOTAPPEND_INSTALL}"
+		LINUX_INSTALL="${LINUX_INSTALL}\nkernel\t\t/${KERNEL} ${TAPPEND}"
 		LINUX_INSTALL="${LINUX_INSTALL}\ninitrd\t\t/${INITRD}"
 	done
 }
diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index bf5f8ce..d65e7f9 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -80,13 +80,15 @@ Grub_install_entry ()
 	INITRD="${3}"
 	APPEND="${4}"
 
+	APPEND="${APPEND} LB_BOOTAPPEND_INSTALL"
+
 	if [ "${LABEL}" != "rescue" ] && [ "${LABEL}" != "rescuegui" ]
 	then
 		APPEND="${APPEND} quiet"
 	fi
 
 	LINUX_INSTALL="${LINUX_INSTALL}\nmenuentry \"Debian GNU/Linux - ${LABEL}\" {"
-	LINUX_INSTALL="${LINUX_INSTALL}\nlinux\t\t/${KERNEL} ${APPEND} LB_BOOTAPPEND_INSTALL"
+	LINUX_INSTALL="${LINUX_INSTALL}\nlinux\t\t/${KERNEL} ${APPEND}"
 	LINUX_INSTALL="${LINUX_INSTALL}\ninitrd\t\t/${INITRD}"
 	LINUX_INSTALL="${LINUX_INSTALL}\n}"
 }
commit 9f4094cdd10e45f9db912267873f8c005aad532c
Author: jnqnfe <jnqnfe@gmail.com>
Date:   Sun Jan 11 21:20:14 2015 +0000

    Fix quiet kernel parameter being excluded from rescue menu entries instead of expert menu entries (#775143)
    
    Live-build, when building grub2 menu entries, excludes this from rescue menu entries instead of expert.
    
    This is the opposite to what is done in the following:
     - Menu entries seen in official debian 7.7 disc images (grub2 and syslinux configs)
     - Menu entries live-build creates for grub (legacy)
     - Menu entries live-build creates for syslinux
    
    The evidence strongly suggests live-build grub2 menu creation was in the wrong!

diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index d65e7f9..c2f6862 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -82,7 +82,7 @@ Grub_install_entry ()
 
 	APPEND="${APPEND} LB_BOOTAPPEND_INSTALL"
 
-	if [ "${LABEL}" != "rescue" ] && [ "${LABEL}" != "rescuegui" ]
+	if [ "${LABEL}" != "expert" ] && [ "${LABEL}" != "expertgui" ]
 	then
 		APPEND="${APPEND} quiet"
 	fi
commit 5e7713ebe2fee20768c9e3c59aee9945cf567d2c
Author: jnqnfe <jnqnfe@gmail.com>
Date:   Sun Jan 11 21:25:18 2015 +0000

    Fix missing delimiter in grub menu kernel parameter lists (Closes: #775143)
    
    The '--' delimiter should appear before the final 'quiet' parameter (which is used by the debian installer I believe).
    
    This delimiter is added by live-build in syslinux configs, and is present in both grub2 and syslinux configs in an official debian 7.7 disc image, suggesting strongly that live-build grub/grub2 menu creation code is in the wrong here by missing it.

diff --git a/scripts/build/binary_grub b/scripts/build/binary_grub
index 2836d8f..cb1fb0f 100755
--- a/scripts/build/binary_grub
+++ b/scripts/build/binary_grub
@@ -79,7 +79,7 @@ Grub_install_entry ()
 	INITRD="${3}"
 	APPEND="${4}"
 
-	QAPPEND="quiet"
+	QAPPEND="-- quiet"
 
 	for TYPE in Install Expert Rescue Auto
 	do
diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index c2f6862..eda56f2 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -84,7 +84,7 @@ Grub_install_entry ()
 
 	if [ "${LABEL}" != "expert" ] && [ "${LABEL}" != "expertgui" ]
 	then
-		APPEND="${APPEND} quiet"
+		APPEND="${APPEND} -- quiet"
 	fi
 
 	LINUX_INSTALL="${LINUX_INSTALL}\nmenuentry \"Debian GNU/Linux - ${LABEL}\" {"

Reply to: