Subject: /etc/default/grub.d/xen.cfg: Extraneous output line causes error message at boot

From: "John E. Krokes" <[email-masked]>
Date: Mon, 01 Aug 2022 16:41:53 -0400

Package: xen-hypervisor-common
Version: 4.14.5+24-g87d90d511c-1
Severity: minor
File: /etc/default/grub.d/xen.cfg

Dear Maintainer,

When invoked via grub-mkconfig, xen.cfg outputs this as its first line:
        Including Xen overrides from /etc/default/grub.d/xen.cfg

The output of grub-mkconfig is expected to be redirected into a grub.cfg file.
Grub will read the grub.cfg at boot. Unfortunately, "Including" is not a
valid grub command. So when booting, grub emits this error message before
displaying its menu:
	error: can't find command `Including'.

The error message is obscured very quickly. It does not affect functionality
in any way. It requires booting on a VERY slow machine in order to read
the error message at all.

If I add a '#' to the start of the "Including", the resulting grub config file
boots with no error.
	echo "#Including Xen overrides from /etc/default/grub.d/xen.cfg"

I'm not sure if this line was intended to go into the generated config
file as a comment, or if it was intended to be shown to the user while
grub-mkconfig is running.

I have observed this and tested my fix against version
4.14.5+24-g87d90d511c-1 of xen-hypervisor-common. I have also checked
with the debian git at https://salsa.debian.org/xen-team/debian-xen/-/blob/master/debian/tree/xen-hypervisor-common/etc/default/grub.d/xen.cfg. This line
has not changed in a very long time.

I can also duplicate the behavior using grub-emu, with the output redirected
to a file.

Thanks for your time.

-Mag

-- System Information:
Distributor ID:	Devuan
Description:	Devuan GNU/Linux 4 (chimaera)
Release:	4
Codename:	chimaera
Architecture: x86_64

Kernel: Linux 5.10.0-16-amd64 (SMP w/2 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

-- Configuration Files:
/etc/default/grub.d/xen.cfg changed:
echo "Including Xen overrides from /etc/default/grub.d/xen.cfg"
XEN_OVERRIDE_GRUB_DEFAULT=0
if [ "$XEN_OVERRIDE_GRUB_DEFAULT" = "" ]; then
	echo "WARNING: GRUB_DEFAULT changed to boot into Xen by default!"
	echo "         Edit /etc/default/grub.d/xen.cfg to avoid this warning."
	XEN_OVERRIDE_GRUB_DEFAULT=1
fi
if [ "$XEN_OVERRIDE_GRUB_DEFAULT" = "1" ]; then
	GRUB_DEFAULT=$( \
		printf "$(gettext "%s, with Xen hypervisor")" \
		"$GRUB_DISTRIBUTOR GNU/Linux")
fi

-- no debconf information