SHA256
1
0
forked from pool/grub2

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
This commit is contained in:
Stephan Kulow 2012-06-29 12:19:02 +00:00 committed by Git OBS Bridge
parent 248261f8d1
commit 8440629747
3 changed files with 174 additions and 1 deletions

154
grub2-ppc-terminfo.patch Normal file
View File

@ -0,0 +1,154 @@
From e263907f50e496e602edd9bd846ccb6e0565a085 Mon Sep 17 00:00:00 2001
From: Mark Hamzy <hamzy@us.ibm.com>
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 <http://www.gnu.org/licenses/>.
+
+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

View File

@ -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

View File

@ -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