merge mainline into bidi
This commit is contained in:
commit
9e71201f48
69 changed files with 17429 additions and 228 deletions
|
@ -219,8 +219,7 @@ else
|
|||
fi
|
||||
|
||||
# Create the GRUB directory if it is not present.
|
||||
test -d "$bootdir" || mkdir "$bootdir" || exit 1
|
||||
test -d "$grubdir" || mkdir "$grubdir" || exit 1
|
||||
mkdir -p "$grubdir" || exit 1
|
||||
|
||||
# If --recheck is specified, remove the device map, if present.
|
||||
if test $recheck = yes; then
|
||||
|
@ -271,7 +270,7 @@ for dir in ${localedir}/*; do
|
|||
done
|
||||
|
||||
# Write device to a variable so we don't have to traverse /dev every time.
|
||||
grub_device=`$grub_probe --target=device ${grubdir}`
|
||||
grub_device=`$grub_probe --target=device ${grubdir}` || exit 1
|
||||
|
||||
if ! test -f ${grubdir}/grubenv; then
|
||||
$grub_editenv ${grubdir}/grubenv create
|
||||
|
@ -313,11 +312,11 @@ if [ "x${devabstraction_module}" = "x" ] ; then
|
|||
if echo "${install_device}" | grep -qx "(.*)" ; then
|
||||
install_drive="${install_device}"
|
||||
else
|
||||
install_drive="`$grub_probe --target=drive --device ${install_device}`"
|
||||
install_drive="`$grub_probe --target=drive --device ${install_device}`" || exit 1
|
||||
fi
|
||||
install_drive="`echo ${install_drive} | sed -e s/,[0-9]*[a-z]*//g`"
|
||||
fi
|
||||
grub_drive="`$grub_probe --target=drive --device ${grub_device}`"
|
||||
grub_drive="`$grub_probe --target=drive --device ${grub_device}`" || exit 1
|
||||
|
||||
# Strip partition number
|
||||
grub_drive="`echo ${grub_drive} | sed -e s/,[0-9]*[a-z]*//g`"
|
||||
|
@ -344,7 +343,7 @@ if [ "x${devabstraction_module}" = "x" ] ; then
|
|||
modules="$modules search_fs_uuid"
|
||||
fi
|
||||
else
|
||||
prefix_drive=`$grub_probe --target=drive --device ${grub_device}`
|
||||
prefix_drive=`$grub_probe --target=drive --device ${grub_device}` || exit 1
|
||||
fi
|
||||
|
||||
if [ "${target_cpu}-${platform}" = "i386-pc" ] || [ "${target_cpu}-${platform}" = "sparc64-ieee1275" ] ; then
|
||||
|
|
|
@ -140,60 +140,73 @@ if [ "x${GRUB_TERMINAL}" != "x" ] ; then
|
|||
GRUB_TERMINAL_OUTPUT="${GRUB_TERMINAL}"
|
||||
fi
|
||||
|
||||
case x${GRUB_TERMINAL_OUTPUT} in
|
||||
x | xgfxterm)
|
||||
# If this platform supports gfxterm, try to use it.
|
||||
if test -e ${grub_prefix}/gfxterm.mod ; then
|
||||
# FIXME: this should do something smarter than just loading first
|
||||
# video backend.
|
||||
GRUB_VIDEO_BACKEND=$(head -n 1 ${grub_prefix}/video.lst || true)
|
||||
if [ -n "${GRUB_VIDEO_BACKEND}" ] ; then
|
||||
GRUB_TERMINAL_OUTPUT=gfxterm
|
||||
elif [ "${GRUB_TERMINAL_OUTPUT}" = "gfxterm" ] ; then
|
||||
echo "No suitable backend could be found for gfxterm." >&2 ; exit 1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
xconsole | xserial | xofconsole) ;;
|
||||
*) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;;
|
||||
esac
|
||||
termoutdefault=0
|
||||
if [ "x${GRUB_TERMINAL_OUTPUT}" == x ]; then
|
||||
GRUB_TERMINAL_OUTPUT=gfxterm;
|
||||
termoutdefault=1;
|
||||
fi
|
||||
|
||||
# check for terminals that require fonts
|
||||
case ${GRUB_TERMINAL_OUTPUT} in
|
||||
gfxterm)
|
||||
if [ -n "$GRUB_FONT" ] ; then
|
||||
if is_path_readable_by_grub ${GRUB_FONT} > /dev/null ; then
|
||||
GRUB_FONT_PATH=${GRUB_FONT}
|
||||
else
|
||||
echo "No such font or not readable by grub: ${GRUB_FONT}" >&2
|
||||
exit 1
|
||||
for x in ${GRUB_TERMINAL_OUTPUT}; do
|
||||
if [ x${x} == xgfxterm ]; then
|
||||
# If this platform supports gfxterm, try to use it.
|
||||
if ! test -e ${grub_prefix}/gfxterm.mod ; then
|
||||
if [ "x$termoutdefault" != "x1" ]; then
|
||||
echo "gfxterm isn't available on your platform" >&2 ; exit 1
|
||||
fi
|
||||
GRUB_TERMINAL_OUTPUT=
|
||||
break;
|
||||
fi
|
||||
# FIXME: this should do something smarter than just loading first
|
||||
# video backend.
|
||||
GRUB_VIDEO_BACKEND=$(head -n 1 ${grub_prefix}/video.lst || true)
|
||||
if [ -z "${GRUB_VIDEO_BACKEND}" ] ; then
|
||||
if [ "x$termoutdefault" != "x1" ]; then
|
||||
echo "No suitable backend could be found for gfxterm." >&2 ; exit 1
|
||||
fi
|
||||
GRUB_TERMINAL_OUTPUT=
|
||||
fi
|
||||
if [ -n "$GRUB_FONT" ] ; then
|
||||
if is_path_readable_by_grub ${GRUB_FONT} > /dev/null ; then
|
||||
GRUB_FONT_PATH=${GRUB_FONT}
|
||||
else
|
||||
echo "No such font or not readable by grub: ${GRUB_FONT}" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
|
||||
for basename in unicode unifont ascii; do
|
||||
path="${dir}/${basename}.pf2"
|
||||
if is_path_readable_by_grub ${path} > /dev/null ; then
|
||||
GRUB_FONT_PATH=${path}
|
||||
else
|
||||
continue
|
||||
fi
|
||||
if [ "${basename}" = "ascii" ] ; then
|
||||
# make sure all our children behave in conformance with ascii..
|
||||
export LANG=C
|
||||
fi
|
||||
break 2
|
||||
done
|
||||
done
|
||||
fi
|
||||
if [ -z "${GRUB_FONT_PATH}" ] ; then
|
||||
if [ "x$termoutdefault" != "x1" ]; then
|
||||
echo "No font for gfxterm found." >&2 ; exit 1
|
||||
fi
|
||||
GRUB_TERMINAL_OUTPUT=
|
||||
fi
|
||||
else
|
||||
for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
|
||||
for basename in unicode unifont ascii; do
|
||||
path="${dir}/${basename}.pf2"
|
||||
if is_path_readable_by_grub ${path} > /dev/null ; then
|
||||
GRUB_FONT_PATH=${path}
|
||||
else
|
||||
continue
|
||||
fi
|
||||
if [ "${basename}" = "ascii" ] ; then
|
||||
# make sure all our children behave in conformance with ascii..
|
||||
export LANG=C
|
||||
fi
|
||||
break 2
|
||||
done
|
||||
done
|
||||
fi
|
||||
if [ -z "${GRUB_FONT_PATH}" ] ; then
|
||||
# fallback to the native terminal for this platform
|
||||
unset GRUB_TERMINAL_OUTPUT
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# make sure all our children behave in conformance with ascii..
|
||||
export LANG=C
|
||||
esac
|
||||
done
|
||||
|
||||
for x in ${GRUB_TERMINAL_OUTPUT}; do
|
||||
case "x${x}" in
|
||||
xgfxterm) ;;
|
||||
xconsole | xserial | xofconsole)
|
||||
# make sure all our children behave in conformance with ascii..
|
||||
export LANG=C;;
|
||||
*) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# These are defined in this script, export them here so that user can
|
||||
# override them.
|
||||
|
@ -220,6 +233,7 @@ export GRUB_DEFAULT \
|
|||
GRUB_DISABLE_LINUX_UUID \
|
||||
GRUB_DISABLE_LINUX_RECOVERY \
|
||||
GRUB_GFXMODE \
|
||||
GRUB_BACKGROUND \
|
||||
GRUB_THEME \
|
||||
GRUB_GFXPAYLOAD_LINUX \
|
||||
GRUB_DISABLE_OS_PROBER \
|
||||
|
|
|
@ -59,19 +59,92 @@ function savedefault {
|
|||
}
|
||||
EOF
|
||||
|
||||
case ${GRUB_TERMINAL_INPUT}:${GRUB_TERMINAL_OUTPUT} in
|
||||
serial:* | *:serial)
|
||||
serial=0;
|
||||
gfxterm=0;
|
||||
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
|
||||
if [ xserial = "x$x" ]; then
|
||||
serial=1;
|
||||
fi
|
||||
if [ xgfxterm = "x$x" ]; then
|
||||
gfxterm=1;
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "x$serial" = x1 ]; then
|
||||
if ! test -e ${grub_prefix}/serial.mod ; then
|
||||
echo "Serial terminal not available on this platform." >&2 ; exit 1
|
||||
echo "Serial terminal not available on this platform." >&2 ; exit 1
|
||||
fi
|
||||
|
||||
if [ "x${GRUB_SERIAL_COMMAND}" = "x" ] ; then
|
||||
grub_warn "Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used."
|
||||
GRUB_SERIAL_COMMAND=serial
|
||||
grub_warn "Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used."
|
||||
GRUB_SERIAL_COMMAND=serial
|
||||
fi
|
||||
echo "${GRUB_SERIAL_COMMAND}"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$gfxterm" = x1 ]; then
|
||||
# Make the font accessible
|
||||
prepare_grub_to_access_device `${grub_probe} --target=device "${GRUB_FONT_PATH}"`
|
||||
|
||||
cat << EOF
|
||||
if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
|
||||
set gfxmode=${GRUB_GFXMODE}
|
||||
insmod gfxterm
|
||||
insmod ${GRUB_VIDEO_BACKEND}
|
||||
EOF
|
||||
if [ "x$GRUB_THEME" != x ] && [ -f "$GRUB_THEME" ] \
|
||||
&& is_path_readable_by_grub "$GRUB_THEME"; then
|
||||
echo "Found theme: $GRUB_THEME" >&2
|
||||
prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_THEME"` | sed -e "s/^/ /"
|
||||
cat << EOF
|
||||
insmod gfxmenu
|
||||
EOF
|
||||
themedir="`dirname "$GRUB_THEME"`"
|
||||
for x in "$themedir"/*.pf2 "$themedir"/f/*.pf2; do
|
||||
if [ -f "$x" ]; then
|
||||
cat << EOF
|
||||
loadfont (\$root)`make_system_path_relative_to_its_root $x`
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
if [ x"`echo "$themedir"/*.jpg`" != x"$themedir/*.jpg" ] || [ x"`echo "$themedir"/*.jpeg`" != x"$themedir/*.jpeg" ]; then
|
||||
cat << EOF
|
||||
insmod jpeg
|
||||
EOF
|
||||
fi
|
||||
if [ x"`echo "$themedir"/*.png`" != x"$themedir/*.png" ]; then
|
||||
cat << EOF
|
||||
insmod png
|
||||
EOF
|
||||
fi
|
||||
if [ x"`echo "$themedir"/*.tga`" != x"$themedir/*.tga" ]; then
|
||||
cat << EOF
|
||||
insmod tga
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME`
|
||||
EOF
|
||||
elif [ "x$GRUB_BACKGROUND" != x ] && [ -f "$GRUB_BACKGROUND" ] \
|
||||
&& is_path_readable_by_grub "$GRUB_BACKGROUND"; then
|
||||
echo "Found background: $GRUB_BACKGROUND" >&2
|
||||
case "$GRUB_BACKGROUND" in
|
||||
*.png) reader=png ;;
|
||||
*.tga) reader=tga ;;
|
||||
*.jpg|*.jpeg) reader=jpeg ;;
|
||||
*) echo "Unsupported image format" >&2; exit 1 ;;
|
||||
esac
|
||||
prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_BACKGROUND"` | sed -e "s/^/ /"
|
||||
cat << EOF
|
||||
insmod $reader
|
||||
background_image -m stretch `make_system_path_relative_to_its_root "$GRUB_BACKGROUND"`
|
||||
EOF
|
||||
fi
|
||||
cat << EOF
|
||||
fi
|
||||
EOF
|
||||
fi
|
||||
|
||||
case x${GRUB_TERMINAL_INPUT} in
|
||||
x)
|
||||
|
@ -89,35 +162,6 @@ EOF
|
|||
esac
|
||||
|
||||
case x${GRUB_TERMINAL_OUTPUT} in
|
||||
xgfxterm)
|
||||
# Make the font accessible
|
||||
prepare_grub_to_access_device `${grub_probe} --target=device ${GRUB_FONT_PATH}`
|
||||
|
||||
cat << EOF
|
||||
if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
|
||||
set gfxmode=${GRUB_GFXMODE}
|
||||
insmod gfxterm
|
||||
insmod ${GRUB_VIDEO_BACKEND}
|
||||
if terminal_output gfxterm ; then true ; else
|
||||
# For backward compatibility with versions of terminal.mod that don't
|
||||
# understand terminal_output
|
||||
terminal gfxterm
|
||||
fi
|
||||
EOF
|
||||
if [ x$GRUB_THEME != x ] && [ -f $GRUB_THEME ] \
|
||||
&& is_path_readable_by_grub $GRUB_THEME; then
|
||||
echo "Found theme: $GRUB_THEME" >&2
|
||||
prepare_grub_to_access_device `${grub_probe} --target=device $GRUB_THEME` | sed -e "s/^/ /"
|
||||
cat << EOF
|
||||
insmod gfxmenu
|
||||
set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME`
|
||||
set menuviewer=gfxmenu
|
||||
EOF
|
||||
fi
|
||||
cat << EOF
|
||||
fi
|
||||
EOF
|
||||
;;
|
||||
x)
|
||||
# Just use the native terminal
|
||||
;;
|
||||
|
|
|
@ -27,7 +27,7 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
|||
OS=GNU
|
||||
else
|
||||
OS="${GRUB_DISTRIBUTOR} GNU/Hurd"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]') ${CLASS}"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
|
||||
fi
|
||||
|
||||
at_least_one=false
|
||||
|
|
|
@ -30,7 +30,7 @@ CLASS="--class os"
|
|||
case "${GRUB_DISTRIBUTOR}" in
|
||||
Debian)
|
||||
OS="${GRUB_DISTRIBUTOR} GNU/kFreeBSD"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]') --class gnu-kfreebsd --class gnu ${CLASS}"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) --class gnu-kfreebsd --class gnu ${CLASS}"
|
||||
;;
|
||||
*)
|
||||
OS="FreeBSD"
|
||||
|
|
|
@ -31,7 +31,7 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
|
|||
OS=GNU/Linux
|
||||
else
|
||||
OS="${GRUB_DISTRIBUTOR} GNU/Linux"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]') ${CLASS}"
|
||||
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
|
||||
fi
|
||||
|
||||
# loop-AES arranges things so that /dev/loop/X can be our root device, but
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if [ x$1 == x ]; then
|
||||
if [ "x$1" = "x" ]; then
|
||||
echo "Filename required".
|
||||
fi
|
||||
|
||||
|
|
|
@ -145,8 +145,7 @@ else
|
|||
fi
|
||||
|
||||
# Create the GRUB directory if it is not present.
|
||||
test -d "$bootdir" || mkdir "$bootdir" || exit 1
|
||||
test -d "$grubdir" || mkdir "$grubdir" || exit 1
|
||||
mkdir -p "$grubdir" || exit 1
|
||||
|
||||
# If --recheck is specified, remove the device map, if present.
|
||||
if test $recheck = yes; then
|
||||
|
|
|
@ -141,8 +141,7 @@ fi
|
|||
# XXX warn on firmware-unreadable filesystems?
|
||||
|
||||
# Create the GRUB directory if it is not present.
|
||||
test -d "$bootdir" || mkdir "$bootdir" || exit 1
|
||||
test -d "$grubdir" || mkdir "$grubdir" || exit 1
|
||||
mkdir -p "$grubdir" || exit 1
|
||||
|
||||
# Create the device map file if it is not present.
|
||||
if test -f "$device_map"; then
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue