From f2a9f13400ac24427d4edfb222e9f2d858cd5514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 27 Mar 2012 22:34:56 +0200 Subject: [PATCH] Add support for serial terminal consoles on PPC by Mark Hamzy --- grub-1.99-Fix-tests-of-zeroed-partition.patch | 2 +- grub-1.99-ppc-terminfo.patch | 154 ++++++++++++++++++ grub2.spec | 6 +- 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 grub-1.99-ppc-terminfo.patch diff --git a/grub-1.99-Fix-tests-of-zeroed-partition.patch b/grub-1.99-Fix-tests-of-zeroed-partition.patch index ad5a770..a57711c 100644 --- a/grub-1.99-Fix-tests-of-zeroed-partition.patch +++ b/grub-1.99-Fix-tests-of-zeroed-partition.patch @@ -1,5 +1,5 @@ From c8f67c2ee40815c075f1d6e5b3d6b504fbe204f5 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas +From: Mark Hamzy Date: Sun, 25 Mar 2012 09:22:34 -0500 Subject: [PATCH] Fix tests of zeroed partition diff --git a/grub-1.99-ppc-terminfo.patch b/grub-1.99-ppc-terminfo.patch new file mode 100644 index 0000000..2b8c380 --- /dev/null +++ b/grub-1.99-ppc-terminfo.patch @@ -0,0 +1,154 @@ +From ad101ca2bd8913b989cc759bf36632c94381fc4e Mon Sep 17 00:00:00 2001 +From: Mark Hamzy +Date: Thu, 1 Mar 2012 21:18:20 -0600 +Subject: [PATCH] Migrate PPC from Yaboot to Grub2 + +Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. + +--- + Makefile.util.def | 7 +++ + util/grub.d/20_ppc_terminfo.in | 114 ++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 121 insertions(+), 0 deletions(-) + create mode 100644 util/grub.d/20_ppc_terminfo.in + +diff --git a/Makefile.util.def b/Makefile.util.def +index 058572f..1993f9b 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -360,6 +360,13 @@ script = { + }; + + script = { ++ name = '20_ppc_terminfo'; ++ common = util/grub.d/20_ppc_terminfo.in; ++ installdir = grubconf; ++ condition = COND_HOST_LINUX; ++}; ++ ++script = { + name = '30_os-prober'; + common = util/grub.d/30_os-prober.in; + installdir = grubconf; +diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/20_ppc_terminfo.in +new file mode 100644 +index 0000000..545ad62 +--- /dev/null ++++ b/util/grub.d/20_ppc_terminfo.in +@@ -0,0 +1,114 @@ ++#! /bin/sh ++set -e ++ ++# grub-mkconfig helper script. ++# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++bindir=@bindir@ ++libdir=@libdir@ ++. ${libdir}/grub/grub-mkconfig_lib ++ ++export TEXTDOMAIN=@PACKAGE@ ++export TEXTDOMAINDIR=@localedir@ ++ ++X=80 ++Y=24 ++TERMINAL=ofconsole ++ ++argument () { ++ opt=$1 ++ shift ++ ++ if test $# -eq 0; then ++ echo "$0: option requires an argument -- '$opt'" 1>&2 ++ exit 1 ++ fi ++ echo $1 ++} ++ ++check_terminfo () { ++ ++ while test $# -gt 0 ++ do ++ option=$1 ++ shift ++ ++ case "$option" in ++ terminfo | TERMINFO) ++ ;; ++ ++ -g) ++ NEWXY=`argument $option "$@"` ++ NEWX=`echo $NEWXY | cut -d x -f 1` ++ NEWY=`echo $NEWXY | cut -d x -f 2` ++ ++ if [ ${NEWX} -ge 80 ] ; then ++ X=${NEWX} ++ else ++ echo "Warning: ${NEWX} is less than the minimum size of 80" ++ fi ++ ++ if [ ${NEWY} -ge 24 ] ; then ++ Y=${NEWY} ++ else ++ echo "Warning: ${NEWY} is less than the minimum size of 24" ++ fi ++ ++ shift ++ ;; ++ ++ *) ++# # accept console or ofconsole ++# if [ "$option" != "console" -a "$option" != "ofconsole" ] ; then ++# echo "Error: GRUB_TERMINFO unknown console: $option" ++# exit 1 ++# fi ++# # perfer console ++# TERMINAL=console ++ # accept ofconsole ++ if [ "$option" != "ofconsole" ] ; then ++ echo "Error: GRUB_TERMINFO unknown console: $option" ++ exit 1 ++ fi ++ # perfer console ++ TERMINAL=ofconsole ++ ;; ++ esac ++ ++ done ++ ++} ++ ++if ! uname -m | grep -q ppc ; then ++ exit 0 ++fi ++ ++if [ "x${GRUB_TERMINFO}" != "x" ] ; then ++ F1=`echo ${GRUB_TERMINFO} | cut -d " " -f 1` ++ ++ if [ "${F1}" != "terminfo" ] ; then ++ echo "Error: GRUB_TERMINFO is set to \"${GRUB_TERMINFO}\" The first word should be terminfo." ++ exit 1 ++ fi ++ ++ check_terminfo ${GRUB_TERMINFO} ++fi ++ ++cat << EOF ++ terminfo -g ${X}x${Y} ${TERMINAL} ++EOF +-- +1.7.7.6 + diff --git a/grub2.spec b/grub2.spec index b3666b5..ce9b48f 100644 --- a/grub2.spec +++ b/grub2.spec @@ -22,7 +22,7 @@ Name: grub2 Epoch: 1 Version: 1.99 -Release: 19%{?dist}.1 +Release: 19%{?dist}.2 Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base @@ -39,6 +39,7 @@ Patch2: grub-1.99-just-say-linux.patch Patch3: grub2-handle-initramfs-on-xen.patch Patch9: grub-1.99-gcc-4.7.0.patch Patch10: grub-1.99-Fix-tests-of-zeroed-partition.patch +Patch11: grub-1.99-ppc-terminfo.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -384,6 +385,9 @@ fi %attr(0755,root,root)/%{_datarootdir}/grub/ %changelog +* Tue Mar 27 2012 Dan Horák - 1.99-19.2 +- Add support for serial terminal consoles on PPC by Mark Hamzy + * Sun Mar 25 2012 Dan Horák - 1.99-19.1 - Use Fix-tests-of-zeroed-partition patch by Mark Hamzy