From 8440629747fbca538f64767030dba7ef4deba3c87ef67bd4affd017ce3d6caa0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 29 Jun 2012 12:19:02 +0000 Subject: [PATCH] Accepting request 126597 from devel:openSUSE:Factory - Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. - don't enable grub-emu-usb on ppc ppc641 (forwarded request 126572 from k0da) OBS-URL: https://build.opensuse.org/request/show/126597 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/grub2?expand=0&rev=38 --- grub2-ppc-terminfo.patch | 154 +++++++++++++++++++++++++++++++++++++++ grub2.changes | 11 +++ grub2.spec | 10 ++- 3 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 grub2-ppc-terminfo.patch diff --git a/grub2-ppc-terminfo.patch b/grub2-ppc-terminfo.patch new file mode 100644 index 0000000..f9768b6 --- /dev/null +++ b/grub2-ppc-terminfo.patch @@ -0,0 +1,154 @@ +From e263907f50e496e602edd9bd846ccb6e0565a085 Mon Sep 17 00:00:00 2001 +From: Mark Hamzy +Date: Wed, 28 Mar 2012 14:46:41 -0500 +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 c41b76e..b349758 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -423,6 +423,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..10d6658 +--- /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@ ++. "@datadir@/@PACKAGE@/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.2 diff --git a/grub2.changes b/grub2.changes index 365e807..5c3052f 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Fri Jun 29 10:02:08 UTC 2012 - dvaleev@suse.com + +- Add configuration support for serial terminal consoles. This will + set the maximum screen size so that text is not overwritten. + +------------------------------------------------------------------- +Fri Jun 29 09:51:59 UTC 2012 - dvaleev@suse.com + +- don't enable grub-emu-usb on ppc ppc641 + ------------------------------------------------------------------- Thu Jun 28 09:33:26 CEST 2012 - jslaby@suse.de diff --git a/grub2.spec b/grub2.spec index 97765f7..8ce4cd7 100644 --- a/grub2.spec +++ b/grub2.spec @@ -83,6 +83,7 @@ Patch3: use-grub2-as-a-package-name.patch Patch4: grub2-linux-submenu.patch Patch6: grub2-iterate-and-hook-for-extended-partition.patch Patch7: grub2-install-opt-skip-fs-probe.patch +Patch8: grub2-ppc-terminfo.patch PreReq: perl-Bootloader Requires: gettext-runtime Requires: os-prober @@ -137,6 +138,7 @@ cd grub-%{version} #%%patch4 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 cd .. # README.openSUSE @@ -186,12 +188,16 @@ export CFLAGS CXXFLAGS FFLAGS %define _target_platform i386-%{_vendor}-%{_target_os}%{?_gnu} %endif +%ifnarch ppc ppc64 +%define extraconfigure --enable-grub-emu-usb +%endif + # -static is needed so that autoconf script is able to link # test that looks for _start symbol on 64 bit platforms %configure TARGET_LDFLAGS=-static \ --target=%{_target_platform} \ --with-platform=%{platform} \ - --enable-grub-emu-usb \ + %{extraconfigure} \ --program-transform-name=s,grub,%{name}, make %{?_smp_mflags} @@ -317,7 +323,9 @@ fi %{_bindir}/%{name}-script-check %dir %{_libdir}/%{name}/ %dir %{_libdir}/%{name}/*/ +%ifnarch ppc ppc64 %{_libdir}/%{name}/*/*.image +%endif %{_libdir}/%{name}/*/*.img %{_libdir}/%{name}/*/*.lst %{_libdir}/%{name}/*/*.mod