[arch-commits] Commit in grub2/trunk (5 files)
Ronald van Haren
ronald at archlinux.org
Tue Mar 16 13:09:36 UTC 2010
Date: Tuesday, March 16, 2010 @ 09:09:35
Author: ronald
Revision: 72454
upgpkg: grub2 1.98-1
bump to latest version; set default colors same as grub1 theme; patch grub-mkconfig to autodetect Arch kernels
Added:
grub2/trunk/grubconfig.archlinux.patch
Modified:
grub2/trunk/PKGBUILD
grub2/trunk/grub2.install
Deleted:
grub2/trunk/grub.cfg
grub2/trunk/install-grub
----------------------------+
PKGBUILD | 25 ++---
grub.cfg | 32 -------
grub2.install | 10 +-
grubconfig.archlinux.patch | 73 ++++++++++++++++
install-grub | 187 -------------------------------------------
5 files changed, 91 insertions(+), 236 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-03-16 10:35:03 UTC (rev 72453)
+++ PKGBUILD 2010-03-16 13:09:35 UTC (rev 72454)
@@ -3,7 +3,7 @@
# Contributor: dongiovanni <dongiovanni.archlinux.de>
pkgname=grub2
-pkgver=1.97.2
+pkgver=1.98
pkgrel=1
pkgdesc="The GNU GRand Unified Bootloader"
url="http://www.gnu.org/software/grub/"
@@ -14,20 +14,21 @@
makedepends=('bdf-unifont' 'ruby')
conflicts=('grub')
provides=('grub')
-backup=('boot/grub/grub.cfg')
install=${pkgname}.install
source=(ftp://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.gz
- # use our own svn checkout so disable snapshot
- #ftp://ftp.archlinux.org/sources/${pkgname}-${pkgver}.src.tar.bz2
- 'grub.cfg')
-# don't install auto-install script. TODO: It needs a rewrite to work with grub2
-# 'install-grub')
-md5sums=('db4d23fb8897523a7e484e974ae3d1c9'
- '743215998a581a54ac77630f0db222ce')
+ 'grubconfig.archlinux.patch')
+md5sums=('c0bcf60e524739bb64e3a2d4e3732a59'
+ '16a1d27f2e0e6bcb415e3f5b52ec2b78')
build() {
- cd $srcdir/grub-${pkgver}
+ cd $srcdir/grub-${pkgver}/util/grub.d
+
+ # modify scripts to detect Arch Linux kernels & set custom default colors
+ patch -Np3 -i ${srcdir}/grubconfig.archlinux.patch || return 1
+
+
# run autogen.sh to create configure files
+ cd ../..
./autogen.sh
# fix unifont.bdf location
@@ -39,9 +40,5 @@
CFLAGS= make || return 1
make DESTDIR=${pkgdir} install || return 1
-
- install -Dm644 ${srcdir}/grub.cfg $startdir/pkg/boot/grub/grub.cfg
- #install -Dm755 ${srcdir}/install-grub $startdir/pkg/sbin/install-grub
}
-
Deleted: grub.cfg
===================================================================
--- grub.cfg 2010-03-16 10:35:03 UTC (rev 72453)
+++ grub.cfg 2010-03-16 13:09:35 UTC (rev 72454)
@@ -1,32 +0,0 @@
-# Config file for GRUB2 - The GNU GRand Unified Bootloader
-# /boot/grub/grub.cfg
-
-# DEVICE NAME CONVERSIONS
-#
-# Linux Grub
-# -------------------------
-# /dev/fd0 (fd0)
-# /dev/sda (hd0)
-# /dev/sdb2 (hd1,2)
-# /dev/sda3 (hd0,3)
-#
-
-# Timeout for menu
-set timeout=5
-
-# Set default boot entry as Entry 0
-set default=0
-
-# (0) Arch Linux
-menuentry "Arch Linux" {
-set root=(hd0,1)
-linux /vmlinuz26 root=/dev/sda1 ro
-initrd /kernel26.img
-}
-
-## (1) Windows
-#menuentry "Windows" {
-#set root=(hd0,3)
-#chainloader +1
-#}
-
Modified: grub2.install
===================================================================
--- grub2.install 2010-03-16 10:35:03 UTC (rev 72453)
+++ grub2.install 2010-03-16 13:09:35 UTC (rev 72454)
@@ -1,13 +1,17 @@
post_install() {
+ echo -n "Generating grub.cfg config file... "
+ grub-mkconfig -o /boot/grub/grub.cfg 2> /dev/null
+ echo "done."
+
cat << EOF
+ Please verify the config file installed in /boot/grub/grub.cfg
+ For more information and additional config settings please see http://wiki.archlinux.org/index.php/GRUB2
GRUB2 is still expiremental and under heavy development!.
Only install it if you know what you are doing.
- GRUB2 has a different configuration then GRUB legacy."
- Look at http://wiki.archlinux.org/index.php/GRUB2 for more information."
+EOF
-EOF
}
post_upgrade() {
Added: grubconfig.archlinux.patch
===================================================================
--- grubconfig.archlinux.patch (rev 0)
+++ grubconfig.archlinux.patch 2010-03-16 13:09:35 UTC (rev 72454)
@@ -0,0 +1,73 @@
+diff -Naur /etc/grub.d.orig/00_header /etc/grub.d/00_header
+--- /etc/grub.d.orig/00_header.in 2010-03-16 12:05:22.998499105 +0100
++++ /etc/grub.d/00_header.in 2010-03-16 13:01:21.018170738 +0100
+@@ -120,6 +120,8 @@
+ ;;
+ x)
+ # Just use the native terminal
++set menu_color_normal=light-blue/black
++set menu_color_highlight=light-cyan/blue
+ ;;
+ x*)
+ cat << EOF
+diff -Naur /etc/grub.d.orig/05_archtheme /etc/grub.d/05_archtheme
+--- /etc/grub.d.orig/05_archtheme.in 1970-01-01 01:00:00.000000000 +0100
++++ /etc/grub.d/05_archtheme.in 2010-03-16 13:05:59.878411766 +0100
+@@ -0,0 +1,6 @@
++#!/bin/bash -e
++
++cat << EOF
++set menu_color_normal=light-blue/black
++set menu_color_highlight=light-cyan/blue
++EOF
+diff -Naur /etc/grub.d.orig/10_linux /etc/grub.d/10_linux
+--- /etc/grub.d.orig/10_linux.in 2010-03-16 12:05:22.998499105 +0100
++++ /etc/grub.d/10_linux.in 2010-03-16 13:26:36.669907054 +0100
+@@ -28,10 +28,10 @@
+ CLASS="--class gnu-linux --class gnu --class os"
+
+ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+- OS=GNU/Linux
++ OS="Arch Linux"
+ else
+- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]') ${CLASS}"
++ OS="${GRUB_DISTRIBUTOR} Arch Linux"
++ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' ) ${CLASS}"
+ fi
+
+ # loop-AES arranges things so that /dev/loop/X can be our root device, but
+@@ -46,7 +46,7 @@
+ || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ; then
+ LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+ else
+- LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
++ LINUX_ROOT_DEVICE="/dev/disk/by-uuid/${GRUB_DEVICE_UUID}"
+ fi
+
+ linux_entry ()
+@@ -97,11 +97,12 @@
+ EOF
+ }
+
+-list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
++list=`for i in /boot/vmlinu[xz]* /vmlinu[xz]* ; do
+ if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
+ done`
+ prepare_boot_cache=
+
++
+ while [ "x$list" != "x" ] ; do
+ linux=`version_find_latest $list`
+ echo "Found linux image: $linux" >&2
+@@ -113,9 +114,7 @@
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+ initrd=
+- for i in "initrd.img-${version}" "initrd-${version}.img" \
+- "initrd-${version}" "initrd.img-${alt_version}" \
+- "initrd-${alt_version}.img" "initrd-${alt_version}"; do
++ for i in "$(echo $basename|sed 's|vmlinuz|kernel|'|sed 's|$|.img|')"; do
+ if test -e "${dirname}/${i}" ; then
+ initrd="$i"
+ break
Deleted: install-grub
===================================================================
--- install-grub 2010-03-16 10:35:03 UTC (rev 72453)
+++ install-grub 2010-03-16 13:09:35 UTC (rev 72454)
@@ -1,187 +0,0 @@
-#!/bin/bash
-
-#
-# This is a little helper script that tries to convert linux-style device
-# names to grub-style. It's not very smart, so it
-# probably won't work for more complicated setups.
-#
-# If it doesn't work for you, try installing grub manually:
-#
-# # mkdir -p /boot/grub
-# # cp /usr/lib/grub/i386-pc/* /boot/grub/
-#
-# Then start up the 'grub' shell and run something like the following:
-#
-# grub> root(hd0,0)
-# grub> setup(hd0)
-#
-# The "root" line should point to the partition your kernel is located on,
-# /boot if you have a separate boot partition, otherwise your root (/).
-#
-# The "setup" line tells grub which disc/partition to install the
-# bootloader to. In the example above, it will install to the MBR of the
-# primary master hard drive.
-#
-
-usage() {
- echo "usage: install-grub <install_device> [boot_device]"
- echo
- echo "where <install_device> is the device where Grub will be installed"
- echo "and [boot_device] is the partition that contains the /boot"
- echo "directory (auto-detected if omitted)"
- echo
- echo "examples: install-grub /dev/hda"
- echo " install-grub /dev/hda /dev/hda1"
- echo
- exit 0
-}
-
-## new install-grub, code was taken from setup script
-ROOTDEV=$1
-PART_ROOT=$2
-VMLINUZ=vmlinuz26
-
-if [ "$ROOTDEV" = "" ]; then
- usage
-fi
-if [ "$PART_ROOT" = "" ]; then
- PART_ROOT=$(mount | grep "on /boot type" | cut -d' ' -f 1)
-fi
-if [ "$PART_ROOT" = "" ]; then
- PART_ROOT=$(mount | grep "on / type" | cut -d' ' -f 1)
-fi
-if [ "$PART_ROOT" = "" ]; then
- echo "error: could not determine BOOT_DEVICE, please specify manually" >&2
- exit 1
-fi
-
-
-get_grub_map() {
- [ -e /tmp/dev.map ] && rm /tmp/dev.map
- /sbin/grub --no-floppy --device-map /tmp/dev.map >/tmp/grub.log 2>&1 <<EOF
-quit
-EOF
-}
-
-mapdev() {
- partition_flag=0
- device_found=0
- devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g')
- linuxdevice=$(echo $1 | cut -b1-8)
- if [ "$(echo $1 | egrep '[0-9]$')" ]; then
- # /dev/hdXY
- pnum=$(echo $1 | cut -b9-)
- pnum=$(($pnum-1))
- partition_flag=1
- fi
- for dev in $devs
- do
- if [ "(" = $(echo $dev | cut -b1) ]; then
- grubdevice="$dev"
- else
- if [ "$dev" = "$linuxdevice" ]; then
- device_found=1
- break
- fi
- fi
- done
- if [ "$device_found" = "1" ]; then
- if [ "$partition_flag" = "0" ]; then
- echo "$grubdevice"
- else
- grubdevice_stringlen=${#grubdevice}
- let grubdevice_stringlen--
- grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen)
- echo "$grubdevice,$pnum)"
- fi
- else
- echo " DEVICE NOT FOUND"
- fi
-}
-
-dogrub() {
- get_grub_map
- if [ ! -f /boot/grub/menu.lst ]; then
- echo "Error: Couldn't find /boot/grub/menu.lst. Is GRUB installed?"
- exit 1
- fi
- # try to auto-configure GRUB...
- if [ "$PART_ROOT" != "" -a "$S_GRUB" != "1" ]; then
- grubdev=$(mapdev $PART_ROOT)
- # look for a separately-mounted /boot partition
- bootdev=$(mount | grep /boot | cut -d' ' -f 1)
- if [ "$grubdev" != "" -o "$bootdev" != "" ]; then
- cp /boot/grub/menu.lst /tmp/.menu.lst
- # remove the default entries by truncating the file at our little tag (#-*)
- head -n $(cat /tmp/.menu.lst | grep -n '#-\*' | cut -d: -f 1) /tmp/.menu.lst >/boot/grub/menu.lst
- rm -f /tmp/.menu.lst
- echo "" >>/boot/grub/menu.lst
- echo "# (0) Arch Linux" >>/boot/grub/menu.lst
- echo "title Arch Linux" >>/boot/grub/menu.lst
- subdir=
- if [ "$bootdev" != "" ]; then
- grubdev=$(mapdev $bootdev)
- else
- subdir="/boot"
- fi
- echo "root $grubdev" >>/boot/grub/menu.lst
- echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst
- if [ "$VMLINUZ" = "vmlinuz26" ]; then
- echo "initrd $subdir/kernel26.img" >>/boot/grub/menu.lst
- fi
- echo "" >>/boot/grub/menu.lst
- # adding fallback/full image
- echo "# (1) Arch Linux" >>/boot/grub/menu.lst
- echo "title Arch Linux Fallback" >>/boot/grub/menu.lst
- echo "root $grubdev" >>/boot/grub/menu.lst
- echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst
- if [ "$VMLINUZ" = "vmlinuz26" ]; then
- echo "initrd $subdir/kernel26-fallback.img" >>/boot/grub/menu.lst
- fi
- echo "" >>/boot/grub/menu.lst
- fi
- fi
-
- echo "Installing the GRUB bootloader..."
- cp -a /usr/lib/grub/i386-pc/* /boot/grub/
- sync
- # freeze xfs filesystems to enable grub installation on xfs filesystems
- if [ -x /usr/sbin/xfs_freeze ]; then
- /usr/sbin/xfs_freeze -f /boot > /dev/null 2>&1
- /usr/sbin/xfs_freeze -f / > /dev/null 2>&1
- fi
- # look for a separately-mounted /boot partition
- bootpart=$(mount | grep /boot | cut -d' ' -f 1)
- if [ "$bootpart" = "" ]; then
- bootpart=$PART_ROOT
- fi
- bootpart=$(mapdev $bootpart)
- bootdev=$(mapdev $ROOTDEV)
- if [ "$bootpart" = "" ]; then
- echo "Error: Missing/Invalid root device: $bootpart"
- exit 1
- fi
- /sbin/grub --no-floppy --batch >/tmp/grub.log 2>&1 <<EOF
-root $bootpart
-setup $bootdev
-quit
-EOF
-cat /tmp/grub.log
- # unfreeze xfs filesystems
- if [ -x /usr/sbin/xfs_freeze ]; then
- /usr/sbin/xfs_freeze -u /boot > /dev/null 2>&1
- /usr/sbin/xfs_freeze -u / > /dev/null 2>&1
- fi
-
- if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then
- echo "Error installing GRUB. (see /tmp/grub.log for output)"
- exit 1
- fi
- echo "GRUB was successfully installed."
-
-rm -f /tmp/grub.log
-
-exit 0
-}
-
-dogrub
\ No newline at end of file
More information about the arch-commits
mailing list