summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeemant Kulleen <seemant@gentoo.org>2003-12-09 08:13:57 +0000
committerSeemant Kulleen <seemant@gentoo.org>2003-12-09 08:13:57 +0000
commit3a09a380ef4470365e58aaf172a8dc633083f35c (patch)
treea20110c13e04001056e70b856e8b6543d8c57ca8 /sys-boot
parentadded sys-boot category for bootloaders (diff)
downloadgentoo-2-3a09a380ef4470365e58aaf172a8dc633083f35c.tar.gz
gentoo-2-3a09a380ef4470365e58aaf172a8dc633083f35c.tar.bz2
gentoo-2-3a09a380ef4470365e58aaf172a8dc633083f35c.zip
moved from sys-apps to sys-boot
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/aboot/ChangeLog22
-rw-r--r--sys-boot/aboot/Manifest5
-rw-r--r--sys-boot/aboot/aboot-0.9-r1.ebuild69
-rw-r--r--sys-boot/aboot/files/aboot.conf10
-rw-r--r--sys-boot/aboot/files/digest-aboot-0.9-r11
-rw-r--r--sys-boot/aboot/metadata.xml5
-rw-r--r--sys-boot/dvhtool/ChangeLog19
-rw-r--r--sys-boot/dvhtool/Manifest5
-rw-r--r--sys-boot/dvhtool/dvhtool-1.0.1.ebuild31
-rw-r--r--sys-boot/dvhtool/files/digest-dvhtool-1.0.11
-rw-r--r--sys-boot/dvhtool/files/dvhtool-1.0.1-2.diff642
-rw-r--r--sys-boot/dvhtool/metadata.xml6
-rw-r--r--sys-boot/grub-static/ChangeLog16
-rw-r--r--sys-boot/grub-static/Manifest4
-rw-r--r--sys-boot/grub-static/files/digest-grub-static-0.93.200301181
-rw-r--r--sys-boot/grub-static/grub-static-0.93.20030118.ebuild18
-rw-r--r--sys-boot/grub-static/metadata.xml6
-rw-r--r--sys-boot/grub/ChangeLog146
-rw-r--r--sys-boot/grub/Manifest25
-rw-r--r--sys-boot/grub/files/digest-grub-0.92-r120
-rw-r--r--sys-boot/grub/files/digest-grub-0.93.2003011821
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch17
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-addsyncs.patch57
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-append.patch111
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-configfile.patch98
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-install.in.patch34
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-installcopyonly.patch85
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-passwordprompt.patch146
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-staticcurses.patch14
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-symlinkmenulst.patch16
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.90-vga16-keypressclear.patch36
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.91-bootonce.patch249
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.91-splashimagehelp.patch28
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.91-vga16-serial.patch58
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.92-automake16.patch161
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.92-nodeprecatedflags.patch11
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.92-usbfix.patch83
-rw-r--r--sys-boot/grub/files/grub-0.92/grub-0.92-vga16.patch2058
-rw-r--r--sys-boot/grub/files/grub-0.93-gcc3.3.diff17
-rw-r--r--sys-boot/grub/files/splash.xpm.gzbin0 -> 33856 bytes
-rw-r--r--sys-boot/grub/grub-0.92-r1.ebuild96
-rw-r--r--sys-boot/grub/grub-0.93.20030118.ebuild88
-rw-r--r--sys-boot/grub/metadata.xml6
-rw-r--r--sys-boot/lilo/ChangeLog177
-rw-r--r--sys-boot/lilo/Manifest23
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.1-r31
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.3.3-r12
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.3.42
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.11
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.6-r21
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.6-r31
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.7.21
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.81
-rw-r--r--sys-boot/lilo/files/digest-lilo-22.5.8-r11
-rw-r--r--sys-boot/lilo/files/lilo-22.5.6-animated-menu.patch1287
-rw-r--r--sys-boot/lilo/files/lilo-22.5.6-glibc233.patch24
-rw-r--r--sys-boot/lilo/files/lilo.conf73
-rw-r--r--sys-boot/lilo/lilo-22.1-r3.ebuild69
-rw-r--r--sys-boot/lilo/lilo-22.3.3-r1.ebuild80
-rw-r--r--sys-boot/lilo/lilo-22.3.4.ebuild80
-rw-r--r--sys-boot/lilo/lilo-22.5.1.ebuild196
-rw-r--r--sys-boot/lilo/lilo-22.5.6-r2.ebuild149
-rw-r--r--sys-boot/lilo/lilo-22.5.6-r3.ebuild159
-rw-r--r--sys-boot/lilo/lilo-22.5.7.2.ebuild168
-rw-r--r--sys-boot/lilo/lilo-22.5.8-r1.ebuild171
-rw-r--r--sys-boot/lilo/lilo-22.5.8.ebuild169
-rw-r--r--sys-boot/lilo/metadata.xml6
-rw-r--r--sys-boot/milo/ChangeLog29
-rw-r--r--sys-boot/milo/Manifest9
-rw-r--r--sys-boot/milo/files/README-gentoo99
-rw-r--r--sys-boot/milo/files/digest-milo-2.4.186
-rw-r--r--sys-boot/milo/files/linux-2.2.25-gcc3-milo.diff123
-rw-r--r--sys-boot/milo/files/milo-2.2-18-gcc3-gentoo.diff174
-rw-r--r--sys-boot/milo/files/mkserial_no.c45
-rw-r--r--sys-boot/milo/files/objstrip.c282
-rw-r--r--sys-boot/milo/metadata.xml12
-rw-r--r--sys-boot/milo/milo-2.4.18.ebuild242
-rw-r--r--sys-boot/nettrom/ChangeLog15
-rw-r--r--sys-boot/nettrom/Manifest4
-rw-r--r--sys-boot/nettrom/files/digest-nettrom-2.3.31
-rw-r--r--sys-boot/nettrom/metadata.xml5
-rw-r--r--sys-boot/nettrom/nettrom-2.3.3.ebuild28
-rw-r--r--sys-boot/palo/ChangeLog39
-rw-r--r--sys-boot/palo/Manifest7
-rw-r--r--sys-boot/palo/files/digest-palo-1.2_pre200301151
-rw-r--r--sys-boot/palo/files/digest-palo-1.2_pre200306301
-rw-r--r--sys-boot/palo/files/palo.conf7
-rw-r--r--sys-boot/palo/metadata.xml8
-rw-r--r--sys-boot/palo/palo-1.2_pre20030115.ebuild40
-rw-r--r--sys-boot/palo/palo-1.2_pre20030630.ebuild41
-rw-r--r--sys-boot/quik/ChangeLog55
-rw-r--r--sys-boot/quik/Manifest12
-rw-r--r--sys-boot/quik/files/digest-quik-2.0.1.0-r12
-rw-r--r--sys-boot/quik/files/digest-quik-2.0.1.0-r22
-rw-r--r--sys-boot/quik/files/digest-quik-2.0.1.0-r32
-rw-r--r--sys-boot/quik/files/digest-quik-2.0.1k1
-rw-r--r--sys-boot/quik/files/quik-2.0.1.0-fclose-bug.patch10
-rw-r--r--sys-boot/quik/files/quik-2.0.1.0-gcc-321.patch22
-rw-r--r--sys-boot/quik/metadata.xml5
-rw-r--r--sys-boot/quik/quik-2.0.1.0-r1.ebuild56
-rw-r--r--sys-boot/quik/quik-2.0.1.0-r2.ebuild59
-rw-r--r--sys-boot/quik/quik-2.0.1.0-r3.ebuild63
-rw-r--r--sys-boot/quik/quik-2.0.1k.ebuild46
-rw-r--r--sys-boot/silo/ChangeLog68
-rw-r--r--sys-boot/silo/Manifest9
-rw-r--r--sys-boot/silo/files/digest-silo-1.3.0-r11
-rw-r--r--sys-boot/silo/files/digest-silo-1.3.11
-rw-r--r--sys-boot/silo/files/digest-silo-1.3.21
-rw-r--r--sys-boot/silo/files/silo_1.2.5-1.diff713
-rw-r--r--sys-boot/silo/metadata.xml12
-rw-r--r--sys-boot/silo/silo-1.3.0-r1.ebuild35
-rw-r--r--sys-boot/silo/silo-1.3.1.ebuild26
-rw-r--r--sys-boot/silo/silo-1.3.2.ebuild26
-rw-r--r--sys-boot/yaboot/ChangeLog102
-rw-r--r--sys-boot/yaboot/Manifest13
-rw-r--r--sys-boot/yaboot/files/digest-yaboot-1.3.101
-rw-r--r--sys-boot/yaboot/files/digest-yaboot-1.3.10-r11
-rw-r--r--sys-boot/yaboot/files/digest-yaboot-1.3.10-r24
-rw-r--r--sys-boot/yaboot/files/digest-yaboot-1.3.111
-rw-r--r--sys-boot/yaboot/files/yabootconfig697
-rw-r--r--sys-boot/yaboot/files/yabootconfig-1.3.10.patch78
-rw-r--r--sys-boot/yaboot/files/yabootconfig-1.3.11.patch78
-rw-r--r--sys-boot/yaboot/metadata.xml5
-rw-r--r--sys-boot/yaboot/yaboot-1.3.10-r1.ebuild37
-rw-r--r--sys-boot/yaboot/yaboot-1.3.10-r2.ebuild39
-rw-r--r--sys-boot/yaboot/yaboot-1.3.10.ebuild37
-rw-r--r--sys-boot/yaboot/yaboot-1.3.11.ebuild39
127 files changed, 10961 insertions, 0 deletions
diff --git a/sys-boot/aboot/ChangeLog b/sys-boot/aboot/ChangeLog
new file mode 100644
index 000000000000..0dd5a9987f3d
--- /dev/null
+++ b/sys-boot/aboot/ChangeLog
@@ -0,0 +1,22 @@
+# ChangeLog for sys-apps/aboot
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/aboot/ChangeLog,v 1.1 2003/12/09 08:11:32 seemant Exp $
+
+*aboot-0.9-r1 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> aboot-0.9-r1.ebuild,
+ metadata.xml, files/aboot.conf:
+ moved from sys-apps to sys-boot
+
+*aboot-0.9-r1 (21 Sep 2002)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> aboot-0.9-r1.ebuild :
+ This is definitely not for mips.
+
+ 06 Jan 2002; Seemant Kulleen <seemant@gentoo.org> aboot-0.9-r1.ebuild :
+
+ PROVIDE virtual/bootloader
+
+ 21 Sep 2002; Bjoern Brauel <bjb@gentoo.org>
+ Added initial ebuild
+
diff --git a/sys-boot/aboot/Manifest b/sys-boot/aboot/Manifest
new file mode 100644
index 000000000000..e79b1c068e81
--- /dev/null
+++ b/sys-boot/aboot/Manifest
@@ -0,0 +1,5 @@
+MD5 34381b4713025b81286f10fcb051af10 aboot-0.9-r1.ebuild 2007
+MD5 057af1ec3c503b88b27529c4df03b091 ChangeLog 695
+MD5 0ed40e134501a252bb21c5c5808d8028 metadata.xml 158
+MD5 254f0c6b0c0862df2ecd486daab0bbf9 files/aboot.conf 295
+MD5 33aacae300189ee99e0df0a268dc4e4a files/digest-aboot-0.9-r1 65
diff --git a/sys-boot/aboot/aboot-0.9-r1.ebuild b/sys-boot/aboot/aboot-0.9-r1.ebuild
new file mode 100644
index 000000000000..c30bd0f75346
--- /dev/null
+++ b/sys-boot/aboot/aboot-0.9-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/aboot/aboot-0.9-r1.ebuild,v 1.1 2003/12/09 08:11:32 seemant Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="Alpha Linux boot loader for srm"
+SRC_URI="http://aboot.sourceforge.net/tarballs/aboot-0.9bpre.tar.bz2"
+HOMEPAGE="http://aboot.sourceforge.net/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="alpha -x86 -amd64 -ppc -sparc -mips"
+
+DEPEND="virtual/glibc"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${A}
+
+ mv ${WORKDIR}/aboot-0.9bpre ${WORKDIR}/${P}
+
+ cd ${S}
+ cp Makefile Makefile.orig
+ sed -e "s:/usr/man:/usr/share/man:" Makefile.orig > Makefile
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ dodir /{boot,sbin,usr/share/man/man5}
+ make \
+ root=${D} \
+ bindir=${D}/sbin \
+ bootdir=${D}/boot \
+ mandir=${D}/usr/share/man \
+ install
+
+ dodoc COPYING ChangeLog INSTALL README TODO aboot.conf
+
+ dodir /etc
+ insinto /etc
+ newins ${FILESDIR}/aboot.conf aboot.conf.example
+}
+
+pkg_postinst() {
+ einfo "To make aboot install a new bootloader on your harddisk follow"
+ einfo "these steps:"
+ einfo ""
+ einfo " - edit the file /etc/aboot.conf"
+ einfo " - cd /boot"
+ einfo " - swriteboot -c2 /dev/sda bootlx"
+ einfo " This will install a new bootsector on /dev/sda and aboot will"
+ einfo " use the second partition on this device to lookup kernel and "
+ einfo " initrd (as described in the aboot.conf file)"
+ einfo ""
+ einfo "IMPORTANT :"
+ einfo ""
+ einfo "The partition table of your boot device has to contain "
+ einfo "a BSD-DISKLABEL and the first 12 megabytes of your boot device"
+ einfo "must not be part of a partition as aboot will write its bootloader"
+ einfo "in there and not as with most x86 bootloaders into the "
+ einfo "master boot sector. If your partition table does not reflect this"
+ einfo "you are going to destroy your installation !"
+ einfo "Also note that aboot currently only supports ext2/3 partitions"
+ einfo "to boot from."
+}
diff --git a/sys-boot/aboot/files/aboot.conf b/sys-boot/aboot/files/aboot.conf
new file mode 100644
index 000000000000..02114138e938
--- /dev/null
+++ b/sys-boot/aboot/files/aboot.conf
@@ -0,0 +1,10 @@
+#
+# aboot default configurations
+#
+0:3/vmlinux.gz ro root=/dev/sda2
+1:3/vmlinux.old.gz ro root=/dev/sda2
+2:3/vmlinux.new.gz ro root=/dev/sda2
+3:3/vmlinux ro root=/dev/sda2
+8:- ro root=/dev/sda2 # fs less boot of raw kernel
+9:0/- ro root=/dev/sda2 # fs less boot of (compressed) ECOFF kernel
+-
diff --git a/sys-boot/aboot/files/digest-aboot-0.9-r1 b/sys-boot/aboot/files/digest-aboot-0.9-r1
new file mode 100644
index 000000000000..63431ca13414
--- /dev/null
+++ b/sys-boot/aboot/files/digest-aboot-0.9-r1
@@ -0,0 +1 @@
+MD5 eabf1163a4bf25c861b30226678c5490 aboot-0.9bpre.tar.bz2 11373
diff --git a/sys-boot/aboot/metadata.xml b/sys-boot/aboot/metadata.xml
new file mode 100644
index 000000000000..2a4ac3c58808
--- /dev/null
+++ b/sys-boot/aboot/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>alpha</herd>
+</pkgmetadata>
diff --git a/sys-boot/dvhtool/ChangeLog b/sys-boot/dvhtool/ChangeLog
new file mode 100644
index 000000000000..b2296f6d4220
--- /dev/null
+++ b/sys-boot/dvhtool/ChangeLog
@@ -0,0 +1,19 @@
+# ChangeLog for sys-apps/dvhtool
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/dvhtool/ChangeLog,v 1.1 2003/12/09 08:11:46 seemant Exp $
+
+*dvhtool-1.0.1 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> dvhtool-1.0.1.ebuild,
+ metadata.xml, files/dvhtool-1.0.1-2.diff:
+ moved from sys-apps to sys-boot
+
+*dvhtool-1.0.1 (23 Jan 2003)
+
+ 10 Sep 2003; Joshua Kinard <kumba@gentoo.org> metadata.xml:
+ Added metadata.xml
+
+ 23 Jan 2003; Jan Seidel <tuxus@gentoo.org> :
+ Initial import. Dvhtool contains the following patches from the
+ Debian/MIPS :
+ dvhtool-1.0.1-2.diff
diff --git a/sys-boot/dvhtool/Manifest b/sys-boot/dvhtool/Manifest
new file mode 100644
index 000000000000..970a46db5b51
--- /dev/null
+++ b/sys-boot/dvhtool/Manifest
@@ -0,0 +1,5 @@
+MD5 808e1c61525596eae38d4c42ee71d0d6 dvhtool-1.0.1.ebuild 794
+MD5 7a54d5e2413db6de95973e39109715b4 ChangeLog 669
+MD5 e6543624c262cae90cc830cde90ad3ae metadata.xml 165
+MD5 d5b240cc5c969f7bcd2144451edd8ba6 files/dvhtool-1.0.1-2.diff 21581
+MD5 215d6dff1aaf61955ec8ffc3fbd3a573 files/digest-dvhtool-1.0.1 69
diff --git a/sys-boot/dvhtool/dvhtool-1.0.1.ebuild b/sys-boot/dvhtool/dvhtool-1.0.1.ebuild
new file mode 100644
index 000000000000..e930cf2d571f
--- /dev/null
+++ b/sys-boot/dvhtool/dvhtool-1.0.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/dvhtool/dvhtool-1.0.1.ebuild,v 1.1 2003/12/09 08:11:46 seemant Exp $
+
+DESCRIPTION="Dvhtool is the tool responsible for writing MIPS kernel(s) into the SGI volume header"
+HOMEPAGE="http://packages.debian.org/unstable/utils/dvhtool.html"
+SRC_URI="http://ftp.debian.org/debian/pool/main/d/dvhtool/dvhtool_1.0.1.orig.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* mips"
+
+DEPEND="virtual/glibc"
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}.orig
+ patch -p1 < ${FILESDIR}/dvhtool-1.0.1-2.diff || die
+}
+src_compile() {
+ cd ${S}.orig
+ econf
+ emake || die "Failed to compile"
+}
+
+src_install() {
+ cd ${S}.orig
+ einstall
+
+}
diff --git a/sys-boot/dvhtool/files/digest-dvhtool-1.0.1 b/sys-boot/dvhtool/files/digest-dvhtool-1.0.1
new file mode 100644
index 000000000000..36a2aa656d24
--- /dev/null
+++ b/sys-boot/dvhtool/files/digest-dvhtool-1.0.1
@@ -0,0 +1 @@
+MD5 4448c01e6a015685af90a79fbea8da4e dvhtool_1.0.1.orig.tar.gz 53283
diff --git a/sys-boot/dvhtool/files/dvhtool-1.0.1-2.diff b/sys-boot/dvhtool/files/dvhtool-1.0.1-2.diff
new file mode 100644
index 000000000000..eb90d11fec23
--- /dev/null
+++ b/sys-boot/dvhtool/files/dvhtool-1.0.1-2.diff
@@ -0,0 +1,642 @@
+--- dvhtool-1.0.1.orig/CONTRIBUTORS
++++ dvhtool-1.0.1/CONTRIBUTORS
+@@ -3,5 +3,5 @@
+ Ralf Baechle <ralf@gnu.org>
+ Keith M. Wesolowski <wesolows@foobazco.org>
+ Tor Arntsen <tor@spacetec.no>
+- Guido Guenther <guido.guenther@gmx.net>
++ Guido Guenther <agx@debian.org>
+ Nathan Scott <nathans@debian.org>
+--- dvhtool-1.0.1.orig/Makefile.in
++++ dvhtool-1.0.1/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -46,10 +46,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -104,7 +103,7 @@
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ DEP_FILES = .deps/dvhlib.P .deps/dvhtool.P .deps/getopt.P \
+ .deps/getopt1.P .deps/pread.P
+@@ -124,7 +123,7 @@
+ $(ACLOCAL_M4): configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL)
+
+-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+ $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+@@ -173,8 +172,8 @@
+ $(mkinstalldirs) $(DESTDIR)$(sbindir)
+ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+@@ -382,7 +381,7 @@
+ all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS) config.h
+ all-redirect: all-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
+
+--- dvhtool-1.0.1.orig/aclocal.m4
++++ dvhtool-1.0.1/aclocal.m4
+@@ -1,4 +1,4 @@
+-dnl aclocal.m4 generated automatically by aclocal 1.4a
++dnl aclocal.m4 generated automatically by aclocal 1.4-p4
+
+ dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -51,8 +51,6 @@
+
+ AC_DEFUN(AM_INIT_AUTOMAKE,
+ [AC_REQUIRE([AC_PROG_INSTALL])
+-dnl We require 2.13 because we rely on SHELL being computed by configure.
+-AC_PREREQ([2.13])
+ PACKAGE=[$1]
+ AC_SUBST(PACKAGE)
+ VERSION=[$2]
+--- dvhtool-1.0.1.orig/configure
++++ dvhtool-1.0.1/configure
+@@ -689,7 +689,6 @@
+ fi
+
+
+-
+ PACKAGE=dvhtool
+
+ VERSION=1.0.1
+@@ -709,7 +708,7 @@
+
+ missing_dir=`cd $ac_aux_dir && pwd`
+ echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+-echo "configure:713: checking for working aclocal" >&5
++echo "configure:712: checking for working aclocal" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -722,7 +721,7 @@
+ fi
+
+ echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+-echo "configure:726: checking for working autoconf" >&5
++echo "configure:725: checking for working autoconf" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -735,7 +734,7 @@
+ fi
+
+ echo $ac_n "checking for working automake""... $ac_c" 1>&6
+-echo "configure:739: checking for working automake" >&5
++echo "configure:738: checking for working automake" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -748,7 +747,7 @@
+ fi
+
+ echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+-echo "configure:752: checking for working autoheader" >&5
++echo "configure:751: checking for working autoheader" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -761,7 +760,7 @@
+ fi
+
+ echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+-echo "configure:765: checking for working makeinfo" >&5
++echo "configure:764: checking for working makeinfo" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -780,7 +779,7 @@
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:784: checking for $ac_word" >&5
++echo "configure:783: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -810,7 +809,7 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:814: checking for $ac_word" >&5
++echo "configure:813: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -861,7 +860,7 @@
+ # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:865: checking for $ac_word" >&5
++echo "configure:864: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -893,7 +892,7 @@
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:897: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:896: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -904,12 +903,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 908 "configure"
++#line 907 "configure"
+ #include "confdefs.h"
+
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -935,12 +934,12 @@
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:939: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:938: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:944: checking whether we are using GNU C" >&5
++echo "configure:943: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -949,7 +948,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:952: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -968,7 +967,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:972: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:971: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1001,13 +1000,13 @@
+
+
+ echo $ac_n "checking for __attribute__""... $ac_c" 1>&6
+-echo "configure:1005: checking for __attribute__" >&5
++echo "configure:1004: checking for __attribute__" >&5
+ if eval "test \"`echo '$''{'ac_cv___attribute__'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+
+ cat > conftest.$ac_ext <<EOF
+-#line 1011 "configure"
++#line 1010 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -1024,7 +1023,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv___attribute__=yes
+ else
+@@ -1045,7 +1044,7 @@
+ echo "$ac_t""$ac_cv___attribute__" 1>&6
+
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1049: checking how to run the C preprocessor" >&5
++echo "configure:1048: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -1060,13 +1059,13 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 1064 "configure"
++#line 1063 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1077,13 +1076,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 1081 "configure"
++#line 1080 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1087: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1094,13 +1093,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 1098 "configure"
++#line 1097 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1103: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1128,17 +1127,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:1132: checking for $ac_hdr" >&5
++echo "configure:1131: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1137 "configure"
++#line 1136 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1167,12 +1166,12 @@
+ for ac_func in pread
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:1171: checking for $ac_func" >&5
++echo "configure:1170: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1176 "configure"
++#line 1175 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -1195,7 +1194,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -1224,12 +1223,12 @@
+ for ac_func in getopt_long
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:1228: checking for $ac_func" >&5
++echo "configure:1227: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1233 "configure"
++#line 1232 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -1252,7 +1251,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+--- dvhtool-1.0.1.orig/dvh.h
++++ dvhtool-1.0.1/dvh.h
+@@ -127,6 +127,8 @@
+ #define PTYPE_XFSLOG 11 /* partition is sgi XFS log */
+ #define PTYPE_XLV 12 /* partition is part of an XLV vol */
+ #define PTYPE_XVM 13 /* partition is sgi XVM */
++#define PTYPE_LSWAP 0x82 /* partition is Linux swap */
++#define PTYPE_LINUX 0x83 /* partition is Linux native */
+ #define NPTYPES 16
+
+ #define VHMAGIC 0xbe5a941 /* randomly chosen value */
+--- dvhtool-1.0.1.orig/dvhlib.c
++++ dvhtool-1.0.1/dvhlib.c
+@@ -50,6 +50,8 @@
+ case PTYPE_XFSLOG: return "XFS Log";
+ case PTYPE_XLV: return "XLV Volume";
+ case PTYPE_XVM: return "XVM Volume";
++ case PTYPE_LSWAP: return "Linux Swap";
++ case PTYPE_LINUX: return "Linux Native";
+ }
+ return "Unknown Partition Type";
+ }
+@@ -325,8 +327,10 @@
+ if (res == -1)
+ die("Couldn't stat source file");
+
+- /* XXX pad to blocksize? */
+- size = vh->vh_pt[8].pt_nblks * blksize - istat.st_size;
++ /* calculate free blocks in vh */
++ size = vh->vh_pt[8].pt_nblks /* total vh size */
++ - ( vh->vh_pt[8].pt_firstlbn + 4 ) /* reserved area */
++ - (( istat.st_size + blksize - 1 ) / blksize ); /* pad to blocksize */
+ /*
+ * Are we replacing an existing file, check for enough space and free
+ * entry in volume header
+@@ -336,16 +340,15 @@
+ /* It's an existing file, delete it. */
+ memset(vd->vd_name, 0, VDNAMESIZE);
+ vd->vd_nbytes = 0;
+- break;
+ }
+ if ( vd->vd_nbytes ) {
+- size -= vd->vd_nbytes;
++ size -= (vd->vd_nbytes + blksize - 1 ) / blksize; /* pad to blocksize */
+ num++;
+ }
+ vd++;
+ }
+
+- if ( num == NVDIR )
++ if ( num == NVDIR )
+ die("No more free entries in volume header");
+ if ( size <= 0 )
+ die("Not enough space left in volume header");
+@@ -403,7 +406,7 @@
+ die("Short write");
+ }
+ }
+- dest += (vd->vd_nbytes + 511) / 512; /* XXX Blocksize */
++ dest += (vd->vd_nbytes + blksize - 1) / blksize;
+ vd++;
+ }
+
+--- dvhtool-1.0.1.orig/dvhtool.8
++++ dvhtool-1.0.1/dvhtool.8
+@@ -1,4 +1,4 @@
+-.TH DVHTOOL 1 "July 2000"
++.TH DVHTOOL 8 "July 2000"
+ .UC 4
+ .SH NAME
+ dvhtool \- Disk volume header manipulation tool
+@@ -85,4 +85,4 @@
+ .PP
+ .I dvhtool
+ was written by Ralf Baechle <ralf@oss.sgi.com>, Keith M. Wesolowski <wesolows@foobazco.org>,
+-Tor Arntsen <tor@spacetec.no>, Guido Guenther <guido.guenther@gmx.net>.
++Tor Arntsen <tor@spacetec.no>, Guido Guenther <agx@debian.org>.
+--- dvhtool-1.0.1.orig/debian/README.Debian
++++ dvhtool-1.0.1/debian/README.Debian
+@@ -0,0 +1,8 @@
++dvhtool for Debian
++----------------------
++
++You can check out the original source from oss.sgi.com's cvs archive (password cvs):
++cvs -d:pserver:cvs@oss.sgi.com:/cvs login
++cvs -d:pserver:cvs@oss.sgi.com:/cvs dvhtool
++
++ -- Guido Guenther <agx@debian.org>, Tue, 17 Oct 2000 00:14:57 +0200
+--- dvhtool-1.0.1.orig/debian/changelog
++++ dvhtool-1.0.1/debian/changelog
+@@ -0,0 +1,54 @@
++dvhtool (1.0.1-2) unstable; urgency=low
++
++ * cosmetics only for woody
++ * dvhtool should no longer be used to move kernels into the vh
++ on MIPS so fix the package description
++ * move dvhtool's manpage to section 8
++
++ -- Guido Guenther <agx@debian.org> Sat, 23 Feb 2002 02:16:30 +0100
++
++dvhtool (1.0.1-1) unstable; urgency=low
++
++ * new upstream version
++ * one upstream author in debian/copyright must be enough
++ * fix wrong calculation of free space in vh (which could cause
++ disk corruption)
++ * add Linux partition types
++
++ -- Guido Guenther <agx@debian.org> Fri, 5 Oct 2001 22:43:11 +0200
++
++dvhtool (1.0-2) unstable; urgency=low
++
++ * removed dh_suidregister from debian/rules
++ * fixed packet description
++ * build on all architectures
++ * bump standards version to 3.5.5
++ * use install -s since we're building with -g
++
++ -- Guido Guenther <agx@debian.org> Thu, 19 Jul 2001 23:31:15 +0200
++
++dvhtool (1.0-1) unstable; urgency=low
++
++ * New upstream version
++ * add build-dependency on debhelper
++ * install volhdr-1.dat as example
++ * install CONTRIBUTORS file
++ * cleanup copyright file
++
++ -- Guido Guenther <agx@debian.org> Mon, 13 Nov 2000 00:27:08 +0100
++
++dvhtool (0.20001101-1) unstable; urgency=low
++
++ * New upstream version
++
++ -- Guido Guenther <agx@debian.org> Wed, 1 Nov 2000 15:48:49 +0100
++
++dvhtool (0.20001017-1) unstable; urgency=low
++
++ * Initial Release.
++
++ -- Guido Guenther <agx@debian.org> Tue, 17 Oct 2000 00:14:57 +0200
++
++Local variables:
++mode: debian-changelog
++End:
+--- dvhtool-1.0.1.orig/debian/control
++++ dvhtool-1.0.1/debian/control
+@@ -0,0 +1,13 @@
++Source: dvhtool
++Section: utils
++Priority: optional
++Maintainer: Guido Guenther <agx@debian.org>
++Standards-Version: 3.5.5
++Build-Depends: debhelper
++
++Package: dvhtool
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: Manipulate the volume header on sgi partition layouts
++ This tool is used to manipulate volume headers of devices using sgi disk labels,
++ like moving files into and out of the volume header.
+--- dvhtool-1.0.1.orig/debian/copyright
++++ dvhtool-1.0.1/debian/copyright
+@@ -0,0 +1,13 @@
++This package was debianized by Guido Guenther <agx@debian.org> on
++Tue, 17 Oct 2000 00:14:57 +0200.
++
++It was downloaded from oss.sgi.com's cvs repository. See README.Debian
++for details.
++
++Upstream Author(s): Ralf Baechle <ralf@gnu.org>
++
++Copyright:
++
++ You are free to distribute this software under the terms of the GNU General
++ Public License. The full text of this license can be found in the file
++ /usr/share/common-licenses/GPL
+--- dvhtool-1.0.1.orig/debian/dirs
++++ dvhtool-1.0.1/debian/dirs
+@@ -0,0 +1 @@
++usr/sbin
+--- dvhtool-1.0.1.orig/debian/docs
++++ dvhtool-1.0.1/debian/docs
+@@ -0,0 +1 @@
++CONTRIBUTORS
+--- dvhtool-1.0.1.orig/debian/examples
++++ dvhtool-1.0.1/debian/examples
+@@ -0,0 +1 @@
++volhdr-1.dat
+--- dvhtool-1.0.1.orig/debian/rules
++++ dvhtool-1.0.1/debian/rules
+@@ -0,0 +1,76 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatability version to use.
++export DH_COMPAT=3
++PREFIX=`pwd`/debian/dvhtool/usr
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++
++
++ # Add here commands to compile the package.
++ ./configure --prefix=$(PREFIX)
++ $(MAKE)
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++
++ # Add here commands to clean up after the build process.
++ -$(MAKE) distclean
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # It's easier if we install by hand instead of using 'make install'
++ install -s -m 755 dvhtool $(PREFIX)/sbin
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++# dh_testversion
++ dh_testdir
++ dh_testroot
++# dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++# dh_installemacsen
++# dh_installpam
++# dh_installinit
++ dh_installcron
++ dh_installman dvhtool.8
++ dh_installinfo
++# dh_undocumented
++ dh_installchangelogs
++ dh_link
++# dh_strip
++ dh_compress
++ dh_fixperms
++# dh_makeshlibs
++ dh_installdeb
++# dh_perl
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install
diff --git a/sys-boot/dvhtool/metadata.xml b/sys-boot/dvhtool/metadata.xml
new file mode 100644
index 000000000000..ef0805e71ae1
--- /dev/null
+++ b/sys-boot/dvhtool/metadata.xml
@@ -0,0 +1,6 @@
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/sys-boot/grub-static/ChangeLog b/sys-boot/grub-static/ChangeLog
new file mode 100644
index 000000000000..fb7e322258e9
--- /dev/null
+++ b/sys-boot/grub-static/ChangeLog
@@ -0,0 +1,16 @@
+# ChangeLog for sys-apps/grub-static
+# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub-static/ChangeLog,v 1.1 2003/12/09 08:12:17 seemant Exp $
+
+*grub-static-0.93.20030118 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org>
+ grub-static-0.93.20030118.ebuild, metadata.xml:
+ moved from sys-apps to sys-boot
+
+*grub-static-0.93.20030118 (26 Jul 2003)
+
+ 26 Jul 2003; Olivier Crete <tester@gentoo.org>
+ grub-static-0.93.20030118.ebuild:
+ Initial version of grub static for amd64 since there is no 64-bit bootloader
+
diff --git a/sys-boot/grub-static/Manifest b/sys-boot/grub-static/Manifest
new file mode 100644
index 000000000000..3c41efb7f3af
--- /dev/null
+++ b/sys-boot/grub-static/Manifest
@@ -0,0 +1,4 @@
+MD5 770d1f68b75ef36bc43f8eb84c7467c7 grub-static-0.93.20030118.ebuild 568
+MD5 11da79c942294d0f1b2977fdfff81989 ChangeLog 609
+MD5 e6543624c262cae90cc830cde90ad3ae metadata.xml 165
+MD5 0ecf5f0bee59b2978382a9dbd544f9e6 files/digest-grub-static-0.93.20030118 75
diff --git a/sys-boot/grub-static/files/digest-grub-static-0.93.20030118 b/sys-boot/grub-static/files/digest-grub-static-0.93.20030118
new file mode 100644
index 000000000000..e89bc77c43ca
--- /dev/null
+++ b/sys-boot/grub-static/files/digest-grub-static-0.93.20030118
@@ -0,0 +1 @@
+MD5 db3bf0ccf7f59d38bcd93f981ada88e7 grub-static-0.93.20030118.tbz2 706129
diff --git a/sys-boot/grub-static/grub-static-0.93.20030118.ebuild b/sys-boot/grub-static/grub-static-0.93.20030118.ebuild
new file mode 100644
index 000000000000..64454f4c9713
--- /dev/null
+++ b/sys-boot/grub-static/grub-static-0.93.20030118.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub-static/grub-static-0.93.20030118.ebuild,v 1.1 2003/12/09 08:12:17 seemant Exp $
+
+DESCRIPTION="Static GNU GRUB boot loader"
+
+HOMEPAGE="http://www.gnu.org/software/grub/"
+SRC_URI="mirror://gentoo/grub-static-${PVR}.tbz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86 -ppc -sparc -alpha -mips -hppa"
+IUSE=""
+DEPEND="!sys-apps/grub"
+PROVIDE="virtual/bootloader"
+
+src_install() {
+ cp -a ${WORKDIR}/* ${D}/
+}
diff --git a/sys-boot/grub-static/metadata.xml b/sys-boot/grub-static/metadata.xml
new file mode 100644
index 000000000000..ef0805e71ae1
--- /dev/null
+++ b/sys-boot/grub-static/metadata.xml
@@ -0,0 +1,6 @@
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/sys-boot/grub/ChangeLog b/sys-boot/grub/ChangeLog
new file mode 100644
index 000000000000..2ada773faf8e
--- /dev/null
+++ b/sys-boot/grub/ChangeLog
@@ -0,0 +1,146 @@
+# ChangeLog for sys-apps/grub
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/ChangeLog,v 1.1 2003/12/09 08:12:07 seemant Exp $
+
+*grub-0.93.20030118 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> grub-0.92-r1.ebuild,
+ grub-0.93.20030118.ebuild, metadata.xml, files/grub-0.93-gcc3.3.diff,
+ files/splash.xpm.gz,
+ files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch,
+ files/grub-0.92/grub-0.90-addsyncs.patch,
+ files/grub-0.92/grub-0.90-append.patch,
+ files/grub-0.92/grub-0.90-configfile.patch,
+ files/grub-0.92/grub-0.90-install.in.patch,
+ files/grub-0.92/grub-0.90-installcopyonly.patch,
+ files/grub-0.92/grub-0.90-passwordprompt.patch,
+ files/grub-0.92/grub-0.90-staticcurses.patch,
+ files/grub-0.92/grub-0.90-symlinkmenulst.patch,
+ files/grub-0.92/grub-0.90-vga16-keypressclear.patch,
+ files/grub-0.92/grub-0.91-bootonce.patch,
+ files/grub-0.92/grub-0.91-splashimagehelp.patch,
+ files/grub-0.92/grub-0.91-vga16-serial.patch,
+ files/grub-0.92/grub-0.92-automake16.patch,
+ files/grub-0.92/grub-0.92-nodeprecatedflags.patch,
+ files/grub-0.92/grub-0.92-usbfix.patch,
+ files/grub-0.92/grub-0.92-vga16.patch:
+ moved from sys-apps to sys-boot
+
+ 01 Dec 2003; Alexander Gabert <pappy@gentoo.org> grub-0.93.20030118.ebuild:
+ added CC -yno_propolice because configure has problems with -nostdlib
+ requesting __guard symbol but cannot be resolved, future releases of
+ hardened-gcc will honour this behaviour
+
+ 07 Sep 2003; Alexander Gabert <pappy@gentoo.org> grub-0.93.20030118.ebuild:
+ added hardened-gcc excludes
+
+ 14 Sep 2003; John Mylchreest <johnm@gentoo.org>; grub-0.93.20030118.ebuild,
+ files/grub-0.93-gcc3.3.diff:
+ Updating for gcc 3.3 compat
+
+ 27 Jul 2003; Olivier Crete <tester@gentoo.org> grub-0.93.20030118.ebuild:
+ Added support for static building
+
+ 24 Jan 2002; <woodchip@gentoo.org> *.ebuild : Reorder mount-boot.eclass
+ function, clean some fluff.
+
+*grub-0.93.20030118 (18 Jan 2003)
+
+ 11 Apr 2003; Joshua Brindle <method@gentoo.org> grub-0.92-r1.ebuild,
+ grub-0.93.20030118.ebuild:
+ Added filter-flags -fstack-protector
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> grub-0.93.20030118.ebuild :
+ This is definitely not for mips. Maybe sometime in the future...
+
+ 18 Jan 2003; Donny Davies <woodchip@gentoo.org> grub-0.93.20030118.ebuild :
+ New testing release; closing #11821, #13242, #9180. See the ebuild
+ for the detailed patch list.
+
+*grub-0.92-r1 (02 Oct 2002)
+
+ 10 Mar 2003; Seemant Kulleen <seemant@gentoo.org> grub-0.92-r1.ebuild:
+ change to use epatch instead, much prettier output
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> grub-0.92-r1.ebuild :
+ This is definitely not for mips. Maybe sometime in the future...
+
+ 06 Jan 2002; Seemant Kulleen <seemant@gentoo.org> *.ebuild :
+ PROVIDE virtual/bootloader
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+ 02 Oct 2002; Donny Davies <woodchip@gentoo.org> :
+ Merge changes from Markus Krainer <markus-krainer@chello.at> to fix:
+ bootlogo; #6820. menu.lst was renamed to grub.conf; #6300.
+
+*grub-0.92 (25 Jun 2002)
+
+ 29 Sep 2002; Donny Davies <woodchip@gentoo.org> grub-0.92.ebuild :
+ Now uses mount-boot eclass; from #7903.
+
+ 13 Aug 2002; Joachim Blaabjerg <styx@gentoo.org> grub-0.92.ebuild :
+ Added grub-0.92-usbfix.patch to hopefully fix bug #6372. It still compiles!
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> grub-0.92.ebuild :
+ Added KEYWORDS.
+
+ 25 Jun 2002; Martin Schlemmer <azarah@gentoo.org> :
+ Add the latest version thanks to good work from (bug #4020)
+ Markus Krainer <markus-krainer@chello.at>. Slotified the lot,
+ as well as move splash.xpm.gz to ${FILESDIR}/, as having three
+ seems a bit much.
+
+*grub-0.90-r7 (14 July 2002)
+
+ 29 Sep 2002; Donny Davies <woodchip@gentoo.org> grub-0.90-r7.ebuild :
+ Now uses mount-boot eclass; from #7903.
+
+ 21 Jul 2002; Mark Guertin <gerk@gentoo.org>:
+ updated keywords (-ppc -sparc -sparc64)
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> grub-0.90-r7.ebuild :
+ Added KEYWORDS.
+
+*grub-0.90-r4 (8 Mar 2002)
+*grub-0.91-r3 (8 Mar 2002)
+
+ 29 Sep 2002; Donny Davies <woodchip@gentoo.org> grub-0.91-r3.ebuild :
+ Now uses mount-boot eclass; from #7903.
+
+ 19 Aug 2002; Sascha Schwabbauer <cybersystem@gentoo.org> grub-0.91-r3.ebuild :
+ Added -ppc to keywords
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> grub-0.91-r3.ebuild :
+ Added KEYWORDS.
+
+ 8 Mar 2002; Bruce A. Locke <blocke@shivan.org> : grub-0.90-r4.ebuild,
+ grub-0.91-r3.ebuild: made check of /etc/fstab not match on commented out
+ entries and added a notice telling users to remove invalid /boot entries
+ from their /etc/fstab (a user had this problem while installing)
+
+*grub-0.90-r6 (4 Feb 2002)
+*grub-0.91-r1 (4 Feb 2002)
+
+ 4 Feb 2002; Daniel Robbins <drobbins@gentoo.org>: grub-0.90-r6.ebuild,
+ grub-0.91-r1.ebuild: unset CFLAGS to ensure that GRUB code is i486-compatible,
+ a good thing for a boot loader. Upgraded /boot mounting code to be compatible
+ with systems without a dedicated /boot filesystem. Tweaked GRUB installation
+ so that the /boot/grub/*stage* files don't get overwritten, since this could
+ mess up the currently-in-the-MBR GRUB. These fixes also close bug #527.
+
+*grub-0.90-r5 (4 Feb 2002)
+
+ 4 Feb 2002; G.Bevin <gbevin@gentoo.org> grub-0.90-r5.ebuild, grub-0.91.ebuild :
+ Added new setup function which detects if /boot is mounted or not, in case
+ it's not mounted it will try to do it automatically and in case of a failure
+ exit with an error message.
+
+*grub-0.90-r4 (1 Feb 2002)
+
+ 1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
+ Added initial ChangeLog which should be updated whenever the package is
+ updated in any way. This changelog is targetted to users. This means that the
+ comments should well explained and written in clean English. The details about
+ writing correct changelogs are explained in the skel.ChangeLog file which you
+ can find in the root directory of the portage repository.
diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
new file mode 100644
index 000000000000..dfbdeca2aa3f
--- /dev/null
+++ b/sys-boot/grub/Manifest
@@ -0,0 +1,25 @@
+MD5 434ca34580a47e5b2afb09c4a95807ca grub-0.92-r1.ebuild 3207
+MD5 16e7f774fbfdf05caddcbadbfdcc36f3 ChangeLog 6050
+MD5 df80617024893a2415f0cd21931eeaa8 grub-0.93.20030118.ebuild 2417
+MD5 e6543624c262cae90cc830cde90ad3ae metadata.xml 165
+MD5 cdd6c89d48982ecd544c0b4774755afd files/splash.xpm.gz 33856
+MD5 b302edf756d9f8996d9e1ae6d3a49768 files/digest-grub-0.93.20030118 1764
+MD5 ca87163749e014bc3424d53c6bd76dce files/digest-grub-0.92-r1 1680
+MD5 8d898cd9d1928916596cc3f9883eac67 files/grub-0.93-gcc3.3.diff 639
+MD5 03404170b492e04031b0da877991efd2 files/grub-0.92/grub-0.90-symlinkmenulst.patch 518
+MD5 aa18890ce9d1679091e382aeb8294194 files/grub-0.92/grub-0.90-configfile.patch 3833
+MD5 f31b7278a8a83d245c4ca27382cf54b3 files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch 632
+MD5 f105856e2fedfdb0cb5982e6ef8294fd files/grub-0.92/grub-0.92-usbfix.patch 2072
+MD5 3086a3674abb6c7e59a2627f25b3cca3 files/grub-0.92/grub-0.92-automake16.patch 5956
+MD5 4d871cd43370b130057788f07db38cc3 files/grub-0.92/grub-0.90-install.in.patch 1079
+MD5 82efba51ac305b8381d3122996eb3136 files/grub-0.92/grub-0.92-vga16.patch 43815
+MD5 bd8b83027e46c01ee7b67cbccd06fa08 files/grub-0.92/grub-0.90-passwordprompt.patch 3612
+MD5 bb016a75234fb52358a2f5412afc2e58 files/grub-0.92/grub-0.91-splashimagehelp.patch 944
+MD5 6ad20fdf6c7c5d16bf3ac56ff8fd704d files/grub-0.92/grub-0.91-vga16-serial.patch 1628
+MD5 e4f6b75eb4518eaad834f177ad98a25a files/grub-0.92/grub-0.91-bootonce.patch 6748
+MD5 75011272c27e8d9926633851e29a9a22 files/grub-0.92/grub-0.90-staticcurses.patch 600
+MD5 e1afae6eadfc123e08920e3f78e0b38b files/grub-0.92/grub-0.90-vga16-keypressclear.patch 920
+MD5 f3aa6906e6a340e3b38536b1fd0571f5 files/grub-0.92/grub-0.90-installcopyonly.patch 2017
+MD5 59c9235025c9048d6165d68562dbc0ec files/grub-0.92/grub-0.90-append.patch 2893
+MD5 93c92f5020925b376742d2ad8022160b files/grub-0.92/grub-0.92-nodeprecatedflags.patch 375
+MD5 d4ac36a6a292a66b276ebc8a4ce2a41d files/grub-0.92/grub-0.90-addsyncs.patch 2071
diff --git a/sys-boot/grub/files/digest-grub-0.92-r1 b/sys-boot/grub/files/digest-grub-0.92-r1
new file mode 100644
index 000000000000..c9f9b3f8d413
--- /dev/null
+++ b/sys-boot/grub/files/digest-grub-0.92-r1
@@ -0,0 +1,20 @@
+MD5 cdd6c89d48982ecd544c0b4774755afd /files/splash.xpm.gz 33856
+MD5 03404170b492e04031b0da877991efd2 /files/grub-0.92/grub-0.90-symlinkmenulst.patch 518
+MD5 aa18890ce9d1679091e382aeb8294194 /files/grub-0.92/grub-0.90-configfile.patch 3833
+MD5 f31b7278a8a83d245c4ca27382cf54b3 /files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch 632
+MD5 f105856e2fedfdb0cb5982e6ef8294fd /files/grub-0.92/grub-0.92-usbfix.patch 2072
+MD5 3086a3674abb6c7e59a2627f25b3cca3 /files/grub-0.92/grub-0.92-automake16.patch 5956
+MD5 4d871cd43370b130057788f07db38cc3 /files/grub-0.92/grub-0.90-install.in.patch 1079
+MD5 82efba51ac305b8381d3122996eb3136 /files/grub-0.92/grub-0.92-vga16.patch 43815
+MD5 bd8b83027e46c01ee7b67cbccd06fa08 /files/grub-0.92/grub-0.90-passwordprompt.patch 3612
+MD5 bb016a75234fb52358a2f5412afc2e58 /files/grub-0.92/grub-0.91-splashimagehelp.patch 944
+MD5 6ad20fdf6c7c5d16bf3ac56ff8fd704d /files/grub-0.92/grub-0.91-vga16-serial.patch 1628
+MD5 e4f6b75eb4518eaad834f177ad98a25a /files/grub-0.92/grub-0.91-bootonce.patch 6748
+MD5 75011272c27e8d9926633851e29a9a22 /files/grub-0.92/grub-0.90-staticcurses.patch 600
+MD5 e1afae6eadfc123e08920e3f78e0b38b /files/grub-0.92/grub-0.90-vga16-keypressclear.patch 920
+MD5 f3aa6906e6a340e3b38536b1fd0571f5 /files/grub-0.92/grub-0.90-installcopyonly.patch 2017
+MD5 59c9235025c9048d6165d68562dbc0ec /files/grub-0.92/grub-0.90-append.patch 2893
+MD5 93c92f5020925b376742d2ad8022160b /files/grub-0.92/grub-0.92-nodeprecatedflags.patch 375
+MD5 d4ac36a6a292a66b276ebc8a4ce2a41d /files/grub-0.92/grub-0.90-addsyncs.patch 2071
+MD5 67c5dc359348e825f53accd3716ea685 /grub-0.92-r1.ebuild 3200
+MD5 50f2786e7bf96b1115ee82b9c101a816 grub-0.92.tar.gz 877112
diff --git a/sys-boot/grub/files/digest-grub-0.93.20030118 b/sys-boot/grub/files/digest-grub-0.93.20030118
new file mode 100644
index 000000000000..226666a48f32
--- /dev/null
+++ b/sys-boot/grub/files/digest-grub-0.93.20030118
@@ -0,0 +1,21 @@
+MD5 cdd6c89d48982ecd544c0b4774755afd /files/splash.xpm.gz 33856
+MD5 03404170b492e04031b0da877991efd2 /files/grub-0.92/grub-0.90-symlinkmenulst.patch 518
+MD5 aa18890ce9d1679091e382aeb8294194 /files/grub-0.92/grub-0.90-configfile.patch 3833
+MD5 f31b7278a8a83d245c4ca27382cf54b3 /files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch 632
+MD5 f105856e2fedfdb0cb5982e6ef8294fd /files/grub-0.92/grub-0.92-usbfix.patch 2072
+MD5 3086a3674abb6c7e59a2627f25b3cca3 /files/grub-0.92/grub-0.92-automake16.patch 5956
+MD5 4d871cd43370b130057788f07db38cc3 /files/grub-0.92/grub-0.90-install.in.patch 1079
+MD5 82efba51ac305b8381d3122996eb3136 /files/grub-0.92/grub-0.92-vga16.patch 43815
+MD5 bd8b83027e46c01ee7b67cbccd06fa08 /files/grub-0.92/grub-0.90-passwordprompt.patch 3612
+MD5 bb016a75234fb52358a2f5412afc2e58 /files/grub-0.92/grub-0.91-splashimagehelp.patch 944
+MD5 6ad20fdf6c7c5d16bf3ac56ff8fd704d /files/grub-0.92/grub-0.91-vga16-serial.patch 1628
+MD5 e4f6b75eb4518eaad834f177ad98a25a /files/grub-0.92/grub-0.91-bootonce.patch 6748
+MD5 75011272c27e8d9926633851e29a9a22 /files/grub-0.92/grub-0.90-staticcurses.patch 600
+MD5 e1afae6eadfc123e08920e3f78e0b38b /files/grub-0.92/grub-0.90-vga16-keypressclear.patch 920
+MD5 f3aa6906e6a340e3b38536b1fd0571f5 /files/grub-0.92/grub-0.90-installcopyonly.patch 2017
+MD5 59c9235025c9048d6165d68562dbc0ec /files/grub-0.92/grub-0.90-append.patch 2893
+MD5 93c92f5020925b376742d2ad8022160b /files/grub-0.92/grub-0.92-nodeprecatedflags.patch 375
+MD5 d4ac36a6a292a66b276ebc8a4ce2a41d /files/grub-0.92/grub-0.90-addsyncs.patch 2071
+MD5 4e26a27cce3a7a48266c9f10108c002c /grub-0.93.20030118.ebuild 1981
+MD5 289ed7946dec7ac4eac146b3a5c0c608 grub-0.93.tar.gz 891032
+MD5 a1d905b0ec3450c44e7142ef1671aa76 grub-0.93.20030118-gentoo.diff.bz2 29995
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch b/sys-boot/grub/files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch
new file mode 100644
index 000000000000..15176e7c19da
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.5.96.1-special-raid-devices.patch
@@ -0,0 +1,17 @@
+--- grub-0.5.96.1/lib/device.c.pix Mon Oct 16 16:41:54 2000
++++ grub-0.5.96.1/lib/device.c Tue Apr 3 12:01:41 2001
+@@ -616,7 +616,13 @@
+ if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+ strcat (dev + strlen(dev) - 5, "/part");
+ }
+- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++ sprintf (dev + strlen(dev), "%s%d",
++ /* Compaq smart and others */
++ (strncmp(dev, "/dev/ida/", 9) == 0 ||
++ strncmp(dev, "/dev/cciss/", 11) == 0 ||
++ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++ ((partition >> 16) & 0xFF) + 1);
+
+ /* Open the partition. */
+ fd = open (dev, O_RDWR);
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-addsyncs.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-addsyncs.patch
new file mode 100644
index 000000000000..4c53344a3cbe
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-addsyncs.patch
@@ -0,0 +1,57 @@
+
+I just found another semi-critical bug, whose fix should really get
+into 0.91.
+
+It turns out that "grub-install" doesn't have any "sync" calls to make
+sure any filesystem caches are coherent with the raw devices they are
+on top of... so if your filesystem waits to write out any data from the
+copy command in the script to put the "stage1" and "stage2" in their
+final location, you're hosed.
+
+I found this because it just bit me on one of my systems running stock
+RedHat 7.2 with a large "stage2".
+
+The only script that is patched here is "grub-install". The others
+don't appear to need it as they either unmount things first or don't
+refer to devices.
+
+Hmm. Maybe the right fix is to make the "sync" system call when
+starting the GRUB shell with a device map that refers to any real disks
+or something like that.
+
+------------------------(start patch)-----------------------
+--- grub.orig/util/grub-install.in Mon Oct 22 16:46:07 2001
++++ grub/util/grub-install.in Sat Oct 27 13:06:33 2001
+@@ -244,6 +244,10 @@
+ # Create a safe temporary file.
+ test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
+
++ # Before all invocations of the grub shell, call sync to make sure
++ # the raw device is in sync with any bufferring in filesystems.
++ sync
++
+ $grub_shell --batch --device-map=$device_map <<EOF >$log_file
+ quit
+ EOF
+@@ -318,6 +322,10 @@
+ # Create a safe temporary file.
+ test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
+
++# Before all invocations of the grub shell, call sync to make sure
++# the raw device is in sync with any bufferring in filesystems.
++sync
++
+ # Now perform the installation.
+ $grub_shell --batch --device-map=$device_map <<EOF >$log_file
+ root $root_drive
+------------------------(end patch)-----------------------
+
+--
+ Erich Stefan Boleyn <erich@uruk.org> http://www.uruk.org/
+"Reality is truly stranger than fiction; Probably why fiction is so popular"
+
+_______________________________________________
+Bug-grub mailing list
+Bug-grub@gnu.org
+http://mail.gnu.org/mailman/listinfo/bug-grub
+
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-append.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-append.patch
new file mode 100644
index 000000000000..99cd0285faef
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-append.patch
@@ -0,0 +1,111 @@
+--- grub-0.90/stage2/stage2.c.append Thu Dec 20 08:20:48 2001
++++ grub-0.90/stage2/stage2.c Thu Dec 20 17:01:20 2001
+@@ -500,7 +500,8 @@
+ if (config_entries)
+ printf ("\
+ Press enter to boot the selected OS, \'e\' to edit the\n\
+- commands before booting, or \'c\' for a command-line.");
++ commands before booting, \'a\' to modify the kernel arguments\n\
++ before booting, or \'c\' for a command-line.");
+ else
+ printf ("\
+ Press \'b\' to boot, \'e\' to edit the selected command in the\n\
+@@ -787,6 +788,98 @@
+ enter_cmdline (heap, 0);
+ goto restart;
+ }
++ if (config_entries && c == 'a')
++ {
++ int new_num_entries = 0, i = 0, j;
++ int needs_padding, amount;
++ char *new_heap;
++ char * entries;
++ char * entry_copy;
++ char * append_line;
++ char * start;
++
++ entry_copy = new_heap = heap;
++ cur_entry = get_entry (config_entries, first_entry + entryno,
++ 1);
++
++ do
++ {
++ while ((*(new_heap++) = cur_entry[i++]) != 0);
++ new_num_entries++;
++ }
++ while (config_entries && cur_entry[i]);
++
++ /* this only needs to be done if config_entries is non-NULL,
++ but it doesn't hurt to do it always */
++ *(new_heap++) = 0;
++
++ new_heap = heap + NEW_HEAPSIZE + 1;
++
++ entries = entry_copy;
++ while (*entries)
++ {
++ if ((strstr(entries, "kernel") == entries) &&
++ isspace(entries[6]))
++ break;
++
++ while (*entries) entries++;
++ entries++;
++ }
++
++ if (!*entries)
++ goto restart;
++
++ start = entries + 6;
++
++ /* skip the white space */
++ while (*start && isspace(*start)) start++;
++ /* skip the kernel name */
++ while (*start && !isspace(*start)) start++;
++
++ /* skip the white space */
++ needs_padding = (!*start || !isspace(*start));
++ while (*start && isspace(*start)) start++;
++
++ append_line = new_heap;
++ grub_strcpy(append_line, start);
++
++ cls();
++ print_cmdline_message (0);
++
++ if (get_cmdline(PACKAGE " append> ",
++ append_line, NEW_HEAPSIZE + 1,
++ 0, 1))
++ goto restart;
++
++ /* have new args; append_line points to the
++ new args and start points to the old
++ args */
++
++ i = grub_strlen(start);
++ j = grub_strlen(append_line);
++
++ if (i > (j + needs_padding))
++ amount = i;
++ else
++ amount = j + needs_padding;
++
++ /* align rest of commands properly */
++ memmove (start + j + needs_padding, start + i,
++ ((int) append_line) - ((int) start) - (amount));
++
++ if (needs_padding)
++ *start = ' ';
++
++ /* copy command to correct area */
++ memmove (start + needs_padding, append_line, j);
++
++ /* set up this entry to boot */
++ config_entries = NULL;
++ cur_entry = entry_copy;
++ heap = new_heap;
++
++ break;
++ }
+ #ifdef GRUB_UTIL
+ if (c == 'q')
+ {
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-configfile.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-configfile.patch
new file mode 100644
index 000000000000..c12160da08fd
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-configfile.patch
@@ -0,0 +1,98 @@
+diff -ur grub-0.90/grub/asmstub.c grub/grub/asmstub.c
+--- grub-0.90/grub/asmstub.c Thu May 3 04:34:56 2001
++++ grub/grub/asmstub.c Mon Jul 16 11:01:52 2001
+@@ -70,7 +70,7 @@
+ unsigned long boot_drive = 0;
+ int saved_entryno = 0;
+ char version_string[] = VERSION;
+-char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
++char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
+ unsigned long linux_text_len = 0;
+ unsigned short io_map[IO_MAP_SIZE];
+ struct apm_info apm_bios_info;
+diff -ur grub-0.90/stage2/asm.S grub/stage2/asm.S
+--- grub-0.90/stage2/asm.S Mon Jul 16 10:39:14 2001
++++ grub/stage2/asm.S Mon Jul 16 11:02:39 2001
+@@ -98,7 +98,7 @@
+ .string VERSION
+ VARIABLE(config_file)
+ #ifndef STAGE1_5
+- .string "/boot/grub/menu.lst"
++ .string "/boot/grub/grub.conf"
+ #else /* STAGE1_5 */
+ .long 0xffffffff
+ .string "/boot/grub/stage2"
+diff -ur grub-0.90/stage2/builtins.c grub/stage2/builtins.c
+--- grub-0.90/stage2/builtins.c Mon Jul 16 10:39:14 2001
++++ grub/stage2/builtins.c Mon Jul 16 11:02:26 2001
+@@ -3939,7 +3939,7 @@
+
+ /* The prefix was determined. */
+ grub_sprintf (stage2, "%s%s", prefix, "/stage2");
+- grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
++ grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
+ *real_config_filename = 0;
+
+ /* Check if stage2 exists. */
+diff -ur --exclude *~ --exclude *config grub-0.90/docs/grub.8 grub/docs/grub.8
+--- grub-0.90/docs/grub.8 Thu Jul 5 07:29:56 2001
++++ grub/docs/grub.8 Mon Jul 16 11:43:07 2001
+@@ -15,7 +15,7 @@
+ specify stage2 boot_drive [default=0x0]
+ .TP
+ \fB\-\-config\-file\fR=\fIFILE\fR
+-specify stage2 config_file [default=/boot/grub/menu.lst]
++specify stage2 config_file [default=/boot/grub/grub.conf]
+ .TP
+ \fB\-\-device\-map\fR=\fIFILE\fR
+ Use the device map file FILE
+diff -ur --exclude *~ --exclude *config grub-0.90/docs/grub.texi grub/docs/grub.texi
+--- grub-0.90/docs/grub.texi Thu Jul 5 07:14:21 2001
++++ grub/docs/grub.texi Mon Jul 16 11:47:04 2001
+@@ -971,7 +971,7 @@
+ keys) that will do everything to boot an OS.
+
+ To enable the menu, you need a configuration file,
+-@file{menu.lst} under the boot directory. We'll analyze an example
++@file{grub.conf} under the boot directory. We'll analyze an example
+ file.
+
+ The file first contains some general settings, the menu interface
+@@ -1512,8 +1512,8 @@
+
+ An absolute file name resembles a Unix absolute file name, using
+ @samp{/} for the directory separator (not @samp{\} as in DOS). One
+-example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
+-@file{/boot/grub/menu.lst} in the first partition of the first hard
++example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
++@file{/boot/grub/grub.conf} in the first partition of the first hard
+ disk. If you omit the device name in an absolute file name, GRUB uses
+ GRUB's @dfn{root device} implicitly. So if you set the root device to,
+ say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
+@@ -3112,7 +3112,7 @@
+
+ @item --config-file=@var{file}
+ Read the configuration file @var{file} instead of
+-@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
++@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
+ syntax. See @ref{Filesystem}, for more information.
+
+ @item --boot-drive=@var{drive}
+@@ -3369,7 +3369,7 @@
+
+ @item
+ Copy the GRUB images to @file{/mnt/boot/grub}. Only @file{stage1},
+-@file{stage2} and @file{menu.lst} are necessary. You may not copy
++@file{stage2} and @file{grub.conf} are necessary. You may not copy
+ @dfn{stage1.5}s.
+
+ @item
+@@ -3497,7 +3497,7 @@
+ @example
+ @group
+ grub> @kbd{root (hd0,1)}
+-grub> @kbd{install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst}
++grub> @kbd{install /grub/stage1 d (hd0) /grub/stage2 p /grub/grub.conf}
+ @end group
+ @end example
+ @end enumerate
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-install.in.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-install.in.patch
new file mode 100644
index 000000000000..c714196a4402
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-install.in.patch
@@ -0,0 +1,34 @@
+--- grub-0.90/util/grub-install.in~ Wed Feb 28 06:19:39 2001
++++ grub-0.90/util/grub-install.in Thu Jul 19 16:01:12 2001
+@@ -224,6 +224,15 @@
+ test -d "$bootdir" || mkdir "$bootdir" || exit 1
+ test -d "$grubdir" || mkdir "$grubdir" || exit 1
+
++# Copy the GRUB images to the GRUB directory.
++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++ rm -f $file || exit 1
++done
++for file in \
++ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
++ cp -f $file ${grubdir} || exit 1
++done
++
+ # If --recheck is specified, remove the device map, if present.
+ if test $recheck = yes; then
+ rm -f $device_map
+@@ -297,15 +306,6 @@
+ EOF
+ exit 1
+ fi
+-
+-# Copy the GRUB images to the GRUB directory.
+-for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+- rm -f $file || exit 1
+-done
+-for file in \
+- ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
+- cp -f $file ${grubdir} || exit 1
+-done
+
+ # Create a safe temporary file.
+ test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-installcopyonly.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-installcopyonly.patch
new file mode 100644
index 000000000000..1083ab507e71
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-installcopyonly.patch
@@ -0,0 +1,85 @@
+--- grub-0.90/util/grub-install.in~ Thu Jul 19 18:42:58 2001
++++ grub-0.90/util/grub-install.in Thu Jul 19 18:43:12 2001
+@@ -38,6 +38,7 @@
+ force_lba=
+ recheck=no
+ debug=no
++justcopy=no
+
+ # Usage: usage
+ # Print the usage.
+@@ -149,6 +150,17 @@
+ fi
+ }
+
++copy_images() {
++ # Copy the GRUB images to the GRUB directory.
++ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++ rm -f $file || exit 1
++ done
++ for file in \
++ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
++ cp -f $file ${grubdir} || exit 1
++ done
++}
++
+ # Check the arguments.
+ for option in "$@"; do
+ case "$option" in
+@@ -166,6 +178,8 @@
+ force_lba="--force-lba" ;;
+ --recheck)
+ recheck=yes ;;
++ --just-copy)
++ justcopy=yes ;;
+ # This is an undocumented feature...
+ --debug)
+ debug=yes ;;
+@@ -179,12 +193,6 @@
+ esac
+ done
+
+-if test "x$install_device" = x; then
+- echo "install_device not specified." 1>&2
+- usage
+- exit 1
+-fi
+-
+ # If the debugging feature is enabled, print commands.
+ if test $debug = yes; then
+ set -x
+@@ -195,6 +203,18 @@
+ grubdir=${bootdir}/grub
+ device_map=${grubdir}/device.map
+
++# if they just want the images copied, copy the images and then exit
++if test $justcopy = yes; then
++ copy_images
++ exit 0
++fi
++
++if test "x$install_device" = x; then
++ echo "install_device not specified." 1>&2
++ usage
++ exit 1
++fi
++
+ # Check if GRUB is installed
+ if test -f "$grub_shell"; then
+ :
+@@ -224,14 +244,7 @@
+ test -d "$bootdir" || mkdir "$bootdir" || exit 1
+ test -d "$grubdir" || mkdir "$grubdir" || exit 1
+
+-# Copy the GRUB images to the GRUB directory.
+-for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+- rm -f $file || exit 1
+-done
+-for file in \
+- ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
+- cp -f $file ${grubdir} || exit 1
+-done
++copy_images
+
+ # If --recheck is specified, remove the device map, if present.
+ if test $recheck = yes; then
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-passwordprompt.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-passwordprompt.patch
new file mode 100644
index 000000000000..47810a9ca9b9
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-passwordprompt.patch
@@ -0,0 +1,146 @@
+diff -ur grub-0.90/stage2/stage2.c grub/stage2/stage2.c
+--- grub-0.90/stage2/stage2.c Thu Jul 19 01:58:59 2001
++++ grub/stage2/stage2.c Thu Jul 19 01:59:11 2001
+@@ -316,6 +316,7 @@
+ char *cur_entry = 0;
+ int disp_up = DISP_UP;
+ int disp_down = DISP_DOWN;
++ int ask_pass = 0;
+
+ /*
+ * Main loop for menu UI.
+@@ -423,8 +424,72 @@
+ grub_printf ("\n\
+ Use the %c and %c keys to select which entry is highlighted.\n",
+ disp_up, disp_down);
+-
+- if (! auth && password)
++
++ if (! auth && password && ask_pass)
++ {
++ /* Do password check here! */
++ char entered[32];
++ char *pptr = password;
++
++ /* we've asked, so don't ask again */
++ ask_pass = 0;
++
++ if (terminal & TERMINAL_DUMB)
++ grub_printf ("\n\nThe selected entry is %d ", entryno);
++ else
++ {
++ print_entries (view_y0 + 3, 12, first_entry, menu_entries);
++ /* highlight initial line */
++ set_line_highlight (view_y0 + 4 + entryno, first_entry + entryno,
++ menu_entries);
++ }
++
++ /* Wipe out the previously entered password */
++ memset (entered, 0, sizeof (entered));
++ gotoxy (view_x0 + 1, view_y0 + 16);
++ get_cmdline (" Password: ", entered, 31, '*', 0);
++
++ while (! isspace (*pptr) && *pptr)
++ pptr++;
++
++ /* Make sure that PASSWORD is NUL-terminated. */
++ *pptr++ = 0;
++
++ if (! check_password (entered, password, password_type))
++ {
++ char *new_file = config_file;
++
++ while (isspace (*pptr))
++ pptr++;
++
++ /* If *PPTR is NUL, then allow the user to use
++ privileged instructions, otherwise, load
++ another configuration file. */
++ if (*pptr != 0)
++ {
++ while ((*(new_file++) = *(pptr++)) != 0)
++ ;
++
++ /* Make sure that the user will not have
++ authority in the next configuration. */
++ auth = 0;
++ return;
++ }
++ else
++ {
++ /* Now the user is superhuman. */
++ auth = 1;
++ goto restart;
++ }
++ }
++ else
++ {
++ printf (" Failed!\n Press any key to continue...");
++ getkey ();
++ goto restart;
++ }
++ }
++ else if (! auth && password)
+ {
+ printf ("\
+ Press enter to boot the selected OS or \'p\' to enter a\n\
+@@ -637,57 +702,8 @@
+ {
+ if (c == 'p')
+ {
+- /* Do password check here! */
+- char entered[32];
+- char *pptr = password;
+-
+- if (terminal & TERMINAL_DUMB)
+- grub_printf ("\r ");
+- else
+- gotoxy (view_x0 + 1, view_y1 + 21);
+-
+- /* Wipe out the previously entered password */
+- memset (entered, 0, sizeof (entered));
+- get_cmdline (" Password: ", entered, 31, '*', 0);
+-
+- while (! isspace (*pptr) && *pptr)
+- pptr++;
+-
+- /* Make sure that PASSWORD is NUL-terminated. */
+- *pptr++ = 0;
+-
+- if (! check_password (entered, password, password_type))
+- {
+- char *new_file = config_file;
+- while (isspace (*pptr))
+- pptr++;
+-
+- /* If *PPTR is NUL, then allow the user to use
+- privileged instructions, otherwise, load
+- another configuration file. */
+- if (*pptr != 0)
+- {
+- while ((*(new_file++) = *(pptr++)) != 0)
+- ;
+-
+- /* Make sure that the user will not have
+- authority in the next configuration. */
+- auth = 0;
+- return;
+- }
+- else
+- {
+- /* Now the user is superhuman. */
+- auth = 1;
+- goto restart;
+- }
+- }
+- else
+- {
+- printf ("Failed!\n Press any key to continue...");
+- getkey ();
+- goto restart;
+- }
++ ask_pass = 1;
++ goto restart;
+ }
+ }
+ else
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-staticcurses.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-staticcurses.patch
new file mode 100644
index 000000000000..0dff39b17c2e
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-staticcurses.patch
@@ -0,0 +1,14 @@
+--- grub-0.90/configure.in~ Thu Aug 2 20:14:19 2001
++++ grub-0.90/configure.in Fri Aug 3 12:52:20 2001
+@@ -171,9 +171,9 @@
+
+ # Unless the user specify --without-curses, check for curses.
+ if test "x$with_curses" != "xno"; then
+- AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
++ AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS /usr/lib/libncurses.a"
+ AC_DEFINE(HAVE_LIBCURSES)],
+- [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
++ [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS /usr/lib/libncurses.a"
+ AC_DEFINE(HAVE_LIBCURSES)])])
+ fi
+
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-symlinkmenulst.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-symlinkmenulst.patch
new file mode 100644
index 000000000000..553d15a6c016
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-symlinkmenulst.patch
@@ -0,0 +1,16 @@
+Only in grub: ChangeLog~
+diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in
+--- grub-0.90/util/grub-install.in Wed Sep 5 15:50:06 2001
++++ grub/util/grub-install.in Wed Sep 5 15:50:24 2001
+@@ -320,6 +320,10 @@
+ exit 1
+ fi
+
++if ! test -e ${grubdir}/grub.conf ; then
++ test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
++fi
++
+ # Create a safe temporary file.
+ test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX`
+
+Only in grub/util: grub-install.in.orig
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.90-vga16-keypressclear.patch b/sys-boot/grub/files/grub-0.92/grub-0.90-vga16-keypressclear.patch
new file mode 100644
index 000000000000..e1678344ba12
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.90-vga16-keypressclear.patch
@@ -0,0 +1,36 @@
+diff -ur grub/stage2/stage2.c grub-0.90/stage2/stage2.c
+--- grub/stage2/stage2.c Thu Jul 19 01:43:41 2001
++++ grub-0.90/stage2/stage2.c Thu Jul 19 01:50:23 2001
+@@ -503,19 +503,6 @@
+
+ c = translate_keycode (getkey ());
+
+- if (grub_timeout >= 0)
+- {
+- if (terminal & TERMINAL_DUMB)
+- grub_putchar ('\r');
+- else
+- gotoxy (view_x0 + 3, 22);
+- printf (" ");
+- grub_timeout = -1;
+- fallback_entry = -1;
+- if (! (terminal & TERMINAL_DUMB))
+- gotoxy (view_x1 - 6, view_x0 + 4 + entryno);
+- }
+-
+ /* We told them above (at least in SUPPORT_SERIAL) to use
+ '^' or 'v' so accept these keys. */
+ if (c == 16 || c == '^')
+@@ -792,6 +779,12 @@
+ }
+ #endif
+ }
++ if (grub_timeout >= 0)
++ {
++ grub_timeout = -1;
++ fallback_entry = -1;
++ goto restart;
++ }
+ }
+ }
+
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.91-bootonce.patch b/sys-boot/grub/files/grub-0.92/grub-0.91-bootonce.patch
new file mode 100644
index 000000000000..90d7cfd3fda4
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.91-bootonce.patch
@@ -0,0 +1,249 @@
+To: bug-grub@gnu.org
+cc: Keir.Fraser@cl.cam.ac.uk
+Subject: PATCH (updated): 'lilo -R' functionality
+From: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
+Message-Id: <E16iFu3-0002VK-00@wisbech.cl.cam.ac.uk>
+
+The following is a slight modification to the patch I submitted a week
+or so ago. This will cause GRUB to skip displaying the boot menu if a
+one-shot default has been specified (just as lilo does with '-R').
+
+Same caveats as for previous patch:
+ * The new 'savedefault' function in the GRUB shell is incomplete.
+ Only works if the filesystem containing stage2 file is mounted.
+ * Patch is against grub-0.90, but patches directly to 0.91
+
+I hope this goes into CVS in the next round of updates :-)
+
+ -- Keir Fraser
+
+
+
+diff -urBP grub-0.90-old/stage2/builtins.c grub-0.90-modified/stage2/builtins.c
+--- grub-0.90-old/stage2/builtins.c Fri Feb 22 11:59:57 2002
++++ grub-0.90-modified/stage2/builtins.c Fri Feb 22 13:48:36 2002
+@@ -785,6 +785,17 @@
+ default_func (char *arg, int flags)
+ {
+ #ifndef SUPPORT_DISKLESS
++#ifndef GRUB_UTIL
++ /* Has a forced once-only default been specified? */
++ static int savedefault_helper(int);
++ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++ {
++ grub_timeout = 0;
++ default_entry = saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
++ savedefault_helper(0);
++ return 0;
++ }
++#endif
+ if (grub_strcmp (arg, "saved") == 0)
+ {
+ default_entry = saved_entryno;
+@@ -3074,22 +3085,15 @@
+ };
+
+
+-/* savedefault */
++
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
++/* Write specified default entry number into stage2 file. */
+ static int
+-savedefault_func (char *arg, int flags)
++savedefault_helper(int new_default)
+ {
+-#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
+ char buffer[512];
+ int *entryno_ptr;
+-
+- /* This command is only useful when you boot an entry from the menu
+- interface. */
+- if (! (flags & BUILTIN_SCRIPT))
+- {
+- errnum = ERR_UNRECOGNIZED;
+- return 1;
+- }
+-
++
+ /* Get the geometry of the boot drive (i.e. the disk which contains
+ this stage2). */
+ if (get_diskinfo (boot_drive, &buf_geom))
+@@ -3115,10 +3119,10 @@
+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
+
+ /* Check if the saved entry number differs from current entry number. */
+- if (*entryno_ptr != current_entryno)
++ if (*entryno_ptr != new_default)
+ {
+ /* Overwrite the saved entry number. */
+- *entryno_ptr = current_entryno;
++ *entryno_ptr = new_default;
+
+ /* Save the image in the disk. */
+ if (! rawwrite (boot_drive, install_second_sector, buffer))
+@@ -3129,6 +3133,117 @@
+ }
+
+ return 0;
++}
++#endif
++
++#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
++/*
++ * Full implementation of new `savedefault' for GRUB shell.
++ * XXX This needs fixing for stage2 files which aren't accessible
++ * through a mounted filesystem.
++ */
++static int
++savedefault_shell(char *arg, int flags)
++{
++ char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
++ FILE *fp;
++ char buffer[512];
++ int *entryno_ptr;
++ int new_default = 0;
++
++ while (1)
++ {
++ if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++ {
++ stage2_os_file = arg + sizeof ("--stage2=") - 1;
++ arg = skip_to (0, arg);
++ nul_terminate (stage2_os_file);
++ }
++ else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
++ {
++ char *p = arg + sizeof ("--default=") - 1;
++ if (! safe_parse_maxint (&p, &new_default))
++ return 1;
++ arg = skip_to (0, arg);
++ }
++ else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
++ {
++ new_default |= STAGE2_ONCEONLY_ENTRY;
++ arg = skip_to (0, arg);
++ }
++ else
++ break;
++ }
++
++ if (! (fp = fopen(stage2_os_file, "r+")))
++ {
++ errnum = ERR_FILE_NOT_FOUND;
++ return 1;
++ }
++
++ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++ {
++ fclose (fp);
++ errnum = ERR_BAD_VERSION;
++ return 1;
++ }
++
++ if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++ {
++ fclose (fp);
++ errnum = ERR_READ;
++ return 1;
++ }
++
++ /* Sanity check. */
++ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++ {
++ errnum = ERR_BAD_VERSION;
++ return 1;
++ }
++
++ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
++ *entryno_ptr = new_default;
++
++ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++ {
++ fclose (fp);
++ errnum = ERR_BAD_VERSION;
++ return 1;
++ }
++
++ if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++ {
++ fclose (fp);
++ errnum = ERR_WRITE;
++ return 1;
++ }
++
++ (void)fflush (fp);
++ fclose (fp);
++ return 0;
++}
++#endif
++
++/* savedefault */
++static int
++savedefault_func (char *arg, int flags)
++{
++#if !defined(SUPPORT_DISKLESS)
++#if !defined(GRUB_UTIL)
++ /* This command is only useful when you boot an entry from the menu
++ interface. */
++ if (! (flags & BUILTIN_SCRIPT))
++ {
++ errnum = ERR_UNRECOGNIZED;
++ return 1;
++ }
++
++ return savedefault_helper(current_entryno);
++#else /* defined(GRUB_UTIL) */
++ return savedefault_shell(arg, flags);
++#endif
+ #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
+ errnum = ERR_UNRECOGNIZED;
+ return 1;
+@@ -3140,8 +3255,14 @@
+ "savedefault",
+ savedefault_func,
+ BUILTIN_CMDLINE,
++#ifdef GRUB_UTIL
++ "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
++ "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
++ " is specified, the default is reset after the next reboot."
++#else
+ "savedefault",
+ "Save the current entry as the default boot entry."
++#endif
+ };
+
+
+@@ -4217,6 +4338,15 @@
+ static int
+ timeout_func (char *arg, int flags)
+ {
++ /* One-shot default shenanigans -- don't piss around with the menu! */
++ if (grub_timeout != -1)
++ return 0;
++ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++ {
++ grub_timeout = 0;
++ return 0;
++ }
++
+ if (! safe_parse_maxint (&arg, &grub_timeout))
+ return 1;
+
+diff -urBP grub-0.90-old/stage2/shared.h grub-0.90-modified/stage2/shared.h
+--- grub-0.90-old/stage2/shared.h Fri Feb 22 11:59:53 2002
++++ grub-0.90-modified/stage2/shared.h Fri Feb 22 10:51:49 2002
+@@ -199,6 +199,8 @@
+ #define STAGE2_FORCE_LBA 0x11
+ #define STAGE2_VER_STR_OFFS 0x12
+
++#define STAGE2_ONCEONLY_ENTRY 0x10000
++
+ /* Stage 2 identifiers */
+ #define STAGE2_ID_STAGE2 0
+ #define STAGE2_ID_FFS_STAGE1_5 1
+
+_______________________________________________
+Bug-grub mailing list
+Bug-grub@gnu.org
+http://mail.gnu.org/mailman/listinfo/bug-grub
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.91-splashimagehelp.patch b/sys-boot/grub/files/grub-0.92/grub-0.91-splashimagehelp.patch
new file mode 100644
index 000000000000..cc7807350493
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.91-splashimagehelp.patch
@@ -0,0 +1,28 @@
+diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi
+--- grub-0.91/docs/grub.texi Mon Jan 21 22:57:46 2002
++++ grub/docs/grub.texi Mon Jan 21 22:57:51 2002
+@@ -1891,6 +1891,7 @@
+ * rarp:: Initialize a network device via RARP
+ * serial:: Set up a serial device
+ * setkey:: Configure the key map
++* splashimage:: Use a splash image
+ * terminal:: Choose a terminal
+ * tftpserver:: Specify a TFTP server
+ * unhide:: Unhide a partition
+@@ -2260,6 +2261,16 @@
+ @end deffn
+
+
++@node splashimage
++@subsection splashimage
++
++@deffn Command splashimage file
++Select an image to use as the background image. This should be
++specified using normal GRUB device naming syntax. The format of the
++file is a gzipped xpm which is 640x480 with a 14 color palette.
++@end deffn
++
++
+ @node terminal
+ @subsection terminal
+
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.91-vga16-serial.patch b/sys-boot/grub/files/grub-0.92/grub-0.91-vga16-serial.patch
new file mode 100644
index 000000000000..97d6f7dfa56f
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.91-vga16-serial.patch
@@ -0,0 +1,58 @@
+2002-04-14 Grant Edwards <grante@visi.com>
+
+ * stage2/builtins.c (terminal_func): Force VGA16 code
+ to use "text" display if serial console is selected.
+ Enables use of serial and splashimage/vga16 console
+ combination.
+diff -U5 -r grub-0.91-vga/stage2/builtins.c grub-0.91-vga-fixed/stage2/builtins.c
+--- grub-0.91-vga/stage2/builtins.c Sun Apr 14 13:18:30 2002
++++ grub-0.91-vga-fixed/stage2/builtins.c Sun Apr 14 10:51:53 2002
+@@ -159,10 +159,12 @@
+ BUILTIN_CMDLINE | BUILTIN_MENU,
+ "background RRGGBB",
+ "Sets the background color when in graphics mode."
+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
+ };
++
++extern int vga_disabled;
+ #endif /* VGA16 */
+
+
+ /* blocklist */
+ static int
+@@ -4170,11 +4172,15 @@
+ }
+ else if ((terminal & TERMINAL_SERIAL) && serial_checkkey () != -1)
+ {
+ terminal &= (TERMINAL_SERIAL | TERMINAL_DUMB);
+ (void) getkey ();
+-
++#ifdef VGA16
++ vga_disabled = 1;
++ display_idx = 0;
++ display = &display_entries[0];
++#endif
+ /* If the interface is currently the command-line, restart
+ it to repaint the screen. */
+ if (flags & BUILTIN_CMDLINE)
+ grub_longjmp (restart_cmdline_env, 0);
+
+@@ -4182,10 +4188,18 @@
+ }
+ }
+
+ /* Expired. */
+ terminal &= (default_terminal | TERMINAL_DUMB);
++#ifdef VGA16
++ if (!(terminal & TERMINAL_CONSOLE))
++ {
++ vga_disabled = 1;
++ display_idx = 0;
++ display = &display_entries[0];
++ }
++#endif
+ }
+ #endif /* SUPPORT_SERIAL */
+
+ return 0;
+ }
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.92-automake16.patch b/sys-boot/grub/files/grub-0.92/grub-0.92-automake16.patch
new file mode 100644
index 000000000000..5b07ed9ec8cb
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.92-automake16.patch
@@ -0,0 +1,161 @@
+diff -ur grub-0.92/configure.in grub/configure.in
+--- grub-0.92/configure.in Wed May 1 20:54:16 2002
++++ grub/configure.in Wed May 1 20:55:39 2002
+@@ -55,8 +55,8 @@
+ _AM_DEPENDENCIES(CC)
+
+ dnl Because recent automake complains about AS, set it here.
+-AS="$CC"
+-AC_SUBST(AS)
++CCAS="$CC"
++AC_SUBST(CCAS)
+
+ AC_ARG_WITH(binutils,
+ [ --with-binutils=DIR search the directory DIR to find binutils])
+@@ -607,9 +607,9 @@
+ AC_SUBST(NET_EXTRAFLAGS)
+ AC_SUBST(NETBOOT_DRIVERS)
+
+-dnl Because recent automake complains about ASFLAGS, set it here.
+-ASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
+-AC_SUBST(ASFLAGS)
++dnl Because recent automake complains about CCASFLAGS, set it here.
++CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
++AC_SUBST(CCASFLAGS)
+
+ AC_ARG_ENABLE(vga16,
+ [ --disable-vga16 disable VGA graphics interface])
+diff -ur grub-0.92/stage1/Makefile.am grub/stage1/Makefile.am
+--- grub-0.92/stage1/Makefile.am Wed Jul 4 03:33:48 2001
++++ grub/stage1/Makefile.am Wed May 1 20:56:58 2002
+@@ -4,7 +4,7 @@
+ CLEANFILES = $(nodist_pkgdata_DATA)
+
+ # We can't use builtins or standard includes.
+-AM_ASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
++AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+ LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
+
+ noinst_PROGRAMS = stage1.exec
+Only in grub/stage1: Makefile.am~
+diff -ur grub-0.92/stage2/Makefile.am grub/stage2/Makefile.am
+--- grub-0.92/stage2/Makefile.am Sun Feb 3 23:55:48 2002
++++ grub/stage2/Makefile.am Wed May 1 20:57:51 2002
+@@ -87,7 +87,7 @@
+ fsys_vstafs.c fsys_xfs.c hercules.c serial.c smp-imps.c \
+ stage2.c md5.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+-pre_stage2_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
++pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+
+ if NETBOOT_SUPPORT
+@@ -108,7 +108,7 @@
+ echo "#define STAGE2_SIZE $$6" > stage2_size.h
+
+ start_exec_SOURCES = start.S
+-start_exec_ASFLAGS = $(STAGE2_COMPILE)
++start_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_exec_LDFLAGS = $(START_LINK)
+
+ # XXX: automake doesn't provide a way to specify dependencies for object
+@@ -126,7 +126,7 @@
+ stage1_5.c fsys_ext2fs.c bios.c
+ e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+ -DNO_BLOCK_FILES=1
+-e2fs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
++e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+ -DNO_BLOCK_FILES=1
+ e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -135,7 +135,7 @@
+ stage1_5.c fsys_fat.c bios.c
+ fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+ -DNO_BLOCK_FILES=1
+-fat_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
++fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+ -DNO_BLOCK_FILES=1
+ fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -144,7 +144,7 @@
+ stage1_5.c fsys_ffs.c bios.c
+ ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+ -DNO_BLOCK_FILES=1
+-ffs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
++ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+ -DNO_BLOCK_FILES=1
+ ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -153,7 +153,7 @@
+ stage1_5.c fsys_minix.c bios.c
+ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+ -DNO_BLOCK_FILES=1
+-minix_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
++minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+ -DNO_BLOCK_FILES=1
+ minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -162,7 +162,7 @@
+ disk_io.c stage1_5.c fsys_reiserfs.c bios.c
+ reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ -DNO_BLOCK_FILES=1
+-reiserfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
++reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ -DNO_BLOCK_FILES=1
+ reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -171,7 +171,7 @@
+ disk_io.c stage1_5.c fsys_vstafs.c bios.c
+ vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+ -DNO_BLOCK_FILES=1
+-vstafs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
++vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+ -DNO_BLOCK_FILES=1
+ vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -180,7 +180,7 @@
+ disk_io.c stage1_5.c fsys_jfs.c bios.c
+ jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+ -DNO_BLOCK_FILES=1
+-jfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+ -DNO_BLOCK_FILES=1
+ jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -189,7 +189,7 @@
+ disk_io.c stage1_5.c fsys_xfs.c bios.c
+ xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+ -DNO_BLOCK_FILES=1
+-xfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+ -DNO_BLOCK_FILES=1
+ xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+@@ -197,7 +197,7 @@
+ diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
+ diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+ -DSUPPORT_DISKLESS=1
+-diskless_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
++diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+ -DSUPPORT_DISKLESS=1
+ diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+ diskless_exec_LDADD = ../netboot/libdrivers.a
+@@ -209,7 +209,7 @@
+
+ # For nbloader target.
+ nbloader_exec_SOURCES = nbloader.S
+-nbloader_exec_ASFLAGS = $(STAGE2_COMPILE)
++nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ nbloader_exec_LDFLAGS = $(NBLOADER_LINK)
+
+ # XXX: See the comment for start_exec-start.o.
+@@ -222,7 +222,7 @@
+
+ # For pxeloader target.
+ pxeloader_exec_SOURCES = pxeloader.S
+-pxeloader_exec_ASFLAGS = $(STAGE2_COMPILE)
++pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ pxeloader_exec_LDFLAGS = $(PXELOADER_LINK)
+
+ # XXX: See the comment for start_exec-start.o.
+Only in grub/stage2: Makefile.am~
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.92-nodeprecatedflags.patch b/sys-boot/grub/files/grub-0.92/grub-0.92-nodeprecatedflags.patch
new file mode 100644
index 000000000000..592a8fc4a9fd
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.92-nodeprecatedflags.patch
@@ -0,0 +1,11 @@
+--- configure.in.cppflags Wed May 1 20:12:18 2002
++++ configure.in Wed May 1 20:14:15 2002
+@@ -110,7 +110,7 @@
+ ])
+
+ # Force no alignment to save space.
+-CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
++CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
+
+ if test "x$undef_flag" = xyes; then
+ CPPFLAGS="$CPPFLAGS -Wundef"
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.92-usbfix.patch b/sys-boot/grub/files/grub-0.92/grub-0.92-usbfix.patch
new file mode 100644
index 000000000000..2ec17311a52e
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.92-usbfix.patch
@@ -0,0 +1,83 @@
+diff -ur grub-0.92/stage2/shared.h grub/stage2/shared.h
+--- grub-0.92/stage2/shared.h 25 Mar 2002 21:43:55 -0000
++++ grub/stage2/shared.h 7 May 2002 18:34:23 -0000
+@@ -258,14 +258,18 @@
+ #define VARIABLE(x) ENTRY(x)
+
+
++/* Keyboard controller defines */
+ #define K_RDWR 0x60 /* keyboard data & cmds (read/write) */
+-#define K_STATUS 0x64 /* keyboard status */
++#define K_STATUS 0x64 /* keyboard status (read-only) */
+ #define K_CMD 0x64 /* keybd ctlr command (write-only) */
+
+ #define K_OBUF_FUL 0x01 /* output buffer full */
+ #define K_IBUF_FUL 0x02 /* input buffer full */
+
+-#define KC_CMD_WIN 0xd0 /* read output port */
++#define KC_CMD_KBDIS 0xad /* disable keyboard */
++#define KC_CMD_KBEN 0xae /* enable keyboard */
++
++#define KC_CMD_ROUT 0xd0 /* read output port */
+ #define KC_CMD_WOUT 0xd1 /* write output port */
+ #define KB_OUTPUT_MASK 0xdd /* enable output buffer full interrupt
+ enable data line
+diff -ur grub-0.92/stage2/asm.S grub/stage2/asm.S
+--- grub-0.92/stage2/asm.S 12 Nov 2001 06:57:29 -0000
++++ grub/stage2/asm.S 7 May 2002 18:34:28 -0000
+@@ -1694,10 +1694,24 @@
+ */
+
+ ENTRY(gateA20)
++ pushl %ebp
++ movl %esp, %ebp
+ pushl %eax
++ pushl %ebx
+
+ call gloop1
+
++ /* mask PS/2 interrupts */
++ movb $0x10, %al
++ outb $0xa1
++ movb $1, %al
++ outb $0x21
++ /* disable keyboard */
++ movb $KC_CMD_KBDIS, %al
++ outb $K_CMD
++ call gloop1
++
++ /* set up to write keyboard controller "output port" */
+ movb $KC_CMD_WOUT, %al
+ outb $K_CMD
+
+@@ -1707,16 +1721,29 @@
+ jnz gloopint1
+
+ movb $KB_OUTPUT_MASK, %al
+- cmpb $0, 0x8(%esp)
++ cmpb $0, 0x8(%ebp)
+ jz gdoit
+
+ orb $KB_A20_ENABLE, %al
+ gdoit:
++ /* write keyboard controller "output port" */
+ outb $K_RDWR
+
+ call gloop1
+
++ /* enable keyboard again (this also adds a bit of delay...) */
++ movb $KC_CMD_KBEN, %al
++ outb $K_CMD
++ call gloop1
++ /* unmask PS/2 interrupts */
++ movb $0, %al
++ outb $0xa1
++ movb $0, %al
++ outb $0x21
++
++ popl %ebx
+ popl %eax
++ popl %ebp
+ ret
+
+ gloop1:
diff --git a/sys-boot/grub/files/grub-0.92/grub-0.92-vga16.patch b/sys-boot/grub/files/grub-0.92/grub-0.92-vga16.patch
new file mode 100644
index 000000000000..0a915352e6ef
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.92/grub-0.92-vga16.patch
@@ -0,0 +1,2058 @@
+diff -ur grub-0.92/ChangeLog grub/ChangeLog
+--- grub-0.92/ChangeLog Mon Apr 29 14:51:03 2002
++++ grub/ChangeLog Wed May 1 20:29:20 2002
+@@ -2104,6 +2104,18 @@
+ [!STAGE1_5] (CMDLINE_WIDTH): New macro.
+ [!STAGE1_5] (CMDLINE_MARGIN): Likewise.
+ * stage2/shared.h (TERMINAL_DUMB): Likewise.
++
++2000-08-29 Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
++
++ * configure.in: Added --disable-vga16 option, in case user does not
++ want the new VGA graphics interface.
++ * stage2/asm.S: Added some new functions, for graphics operations,
++ and renamed several functions to allow wrapping them.
++ * stage2/stage2.c: Main changes for VGA16 support.
++ * stage2/char_io.c: Modified calls of grub_putchar to putchar
++ * stage2/disk_io.c: Same as for char_io.c
++ * stage2/cmdline.c: Also, the same as for char_io.c
++ * stage2/shared.h: Definitions for externs and wrapping functions.
+
+ 2000-08-28 OKUJI Yoshinori <okuji@gnu.org>
+
+diff -ur grub-0.92/configure.in grub/configure.in
+--- grub-0.92/configure.in Fri Mar 29 05:24:17 2002
++++ grub/configure.in Wed May 1 20:29:20 2002
+@@ -18,6 +18,7 @@
+ AC_PREREQ(2.13)
+
+ AC_CANONICAL_HOST
++AM_PROG_LIBTOOL
+
+ case "$host_cpu" in
+ i[[3456]]86) host_cpu=i386 ;;
+@@ -610,6 +611,12 @@
+ ASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
+ AC_SUBST(ASFLAGS)
+
++AC_ARG_ENABLE(vga16,
++ [ --disable-vga16 disable VGA graphics interface])
++
++if test x"$enable_vga16" != xno; then
++ STAGE2_CFLAGS="$STAGE2_CFLAGS -DVGA16=1"
++fi
+
+ dnl Output.
+ AC_OUTPUT([Makefile stage1/Makefile stage2/Makefile docs/Makefile \
+diff -ur grub-0.92/stage2/asm.S grub/stage2/asm.S
+--- grub-0.92/stage2/asm.S Mon Nov 12 01:57:29 2001
++++ grub/stage2/asm.S Wed May 1 20:29:20 2002
+@@ -1865,7 +1865,7 @@
+ * %cl = cursor ending scanline
+ */
+
+-ENTRY(nocursor)
++ENTRY(grub_nocursor)
+ push %ebp
+ push %ebx /* save EBX */
+
+@@ -1951,7 +1951,7 @@
+
+
+ /*
+- * console_set_attrib(attr) : Sets the character attributes for character at
++ * grub_set_attrib(attr) : Sets the character attributes for character at
+ * current cursor position.
+ *
+ * Bitfields for character's display attribute:
+@@ -1985,7 +1985,7 @@
+ * %cx = count to display (???, possible side-effects!!)
+ */
+
+-ENTRY(console_set_attrib)
++ENTRY(grub_set_attrib)
+ push %ebp
+ push %ebx
+
+@@ -2009,6 +2009,263 @@
+ pop %ebp
+ ret
+
++#ifdef VGA16
++VARIABLE(cursorX)
++.word 0
++VARIABLE(cursorY)
++.word 0
++VARIABLE(cursorWidth)
++.word 0
++VARIABLE(cursorHeight)
++.word 0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++/*
++ * set_int1c_handler(void)
++ */
++ENTRY(set_int1c_handler)
++ pushl %edi
++
++ /* save the original int1c handler */
++ movl $0x70, %edi
++ movw (%edi), %ax
++ movw %ax, ABS(int1c_offset)
++ movw 2(%edi), %ax
++ movw %ax, ABS(int1c_segment)
++
++ /* save the new int1c handler */
++ movw $ABS(int1c_handler), %ax
++ movw %ax, (%edi)
++ xorw %ax, %ax
++ movw %ax, 2(%edi)
++
++ popl %edi
++ ret
++
++
++/*
++ * unset_int1c_handler(void)
++ */
++ENTRY(unset_int1c_handler)
++ pushl %edi
++
++ /* check if int1c_handler is set */
++ movl $0x70, %edi
++ movw $ABS(int1c_handler), %ax
++ cmpw %ax, (%edi)
++ jne int1c_1
++ xorw %ax, %ax
++ cmpw %ax, 2(%edi)
++ jne int1c_1
++
++ /* restore the original */
++ movw ABS(int1c_offset), %ax
++ movw %ax, (%edi)
++ movw ABS(int1c_segment), %ax
++ movw %ax, 2(%edi)
++
++int1c_1:
++ popl %edi
++ ret
++
++/*
++ * blinks graphics cursor
++ */
++ .code16
++write_data:
++ movw $0, %ax
++ movw %ax, %ds
++
++ mov $0xA000, %ax /* video in es:di */
++ mov %ax, %es
++ mov $80, %ax
++ movw $ABS(cursorY), %si
++ mov %ds:(%si), %bx
++ mul %bx
++ movw $ABS(cursorX), %si
++ mov %ds:(%si), %bx
++ shr $3, %bx /* %bx /= 8 */
++ add %bx, %ax
++ mov %ax, %di
++
++ movw $ABS(cursorBuf), %si /* fontBuf in ds:si */
++
++ /* prepare for data moving */
++ mov $16, %dx /* altura da fonte */
++ mov $80, %bx /* bytes por linha */
++
++write_loop:
++ movb %ds:(%si), %al
++ xorb $0xff, %al
++ movb %al, %ds:(%si) /* invert cursorBuf */
++ movb %al, %es:(%di) /* write to video */
++ add %bx, %di
++ inc %si
++ dec %dx
++ jg write_loop
++ ret
++
++int1c_handler:
++ pusha
++ mov $0, %ax
++ mov %ax, %ds
++ mov $ABS(cursorCount), %si
++ mov %ds:(%si), %ax
++ inc %ax
++ mov %ax, %ds:(%si)
++ cmp $9, %ax
++ jne int1c_done
++
++ mov $0, %ax
++ mov %ax, %ds:(%si)
++/*
++ movw $0x3c4, %dx
++ movb $0x020f, %ax
++ outw %ax, %dx
++*/
++ call write_data
++
++int1c_done:
++ popa
++ iret
++ /* call previous int1c handler */
++ /* ljmp */
++ .byte 0xea
++int1c_offset: .word 0
++int1c_segment: .word 0
++ .code32
++
++
++ENTRY(get_font)
++ push %ebp
++ push %ebx
++ push %ecx
++ push %edx
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ movw $0x1130, %ax
++ movb $6, %bh /* font 8x16 */
++ int $0x10
++ movw %bp, %dx
++ movw %es, %cx
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ xorl %eax, %eax
++ movw %cx, %ax
++ shll $4, %eax
++ movw %dx, %ax
++
++ pop %edx
++ pop %ecx
++ pop %ebx
++ pop %ebp
++ ret
++
++/*
++ * set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ * Call with %ah = 0x0
++ * %al = video mode
++ */
++ENTRY(set_videomode)
++ push %ebp
++ push %ebx
++ push %ecx
++
++ movb 0x10(%esp), %cl
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ xorw %bx, %bx
++ movb $0xf, %ah
++ int $0x10 /* Get Current Video mode */
++ movb %al, %ch
++ xorb %ah, %ah
++ movb %cl, %al
++ int $0x10 /* Set Video mode */
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ xorb %ah, %ah
++ movb %ch, %al
++
++ pop %ecx
++ pop %ebx
++ pop %ebp
++ ret
++
++/*
++ * set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ * Call with %ah = 0x10
++ * %bx = register number
++ * %ch = new value for green (0-63)
++ * %cl = new value for blue (0-63)
++ * %dh = new value for red (0-63)
++ */
++
++ENTRY(set_palette)
++ push %ebp
++ push %eax
++ push %ebx
++ push %ecx
++ push %edx
++
++ movw $0x3c8, %bx /* address write mode register */
++
++ /* wait vertical retrace */
++
++ movw $0x3da, %dx
++l1b: inb %dx, %al /* wait vertical active display */
++ test $8, %al
++ jnz l1b
++
++l2b: inb %dx, %al /* wait vertical retrace */
++ test $8, %al
++ jnz l2b
++
++ mov %bx, %dx
++ movb 0x18(%esp), %al /* index */
++ outb %al, %dx
++ inc %dx
++
++ movb 0x1c(%esp), %al /* red */
++ outb %al, %dx
++
++ movb 0x20(%esp), %al /* green */
++ outb %al, %dx
++
++ movb 0x24(%esp), %al /* blue */
++ outb %al, %dx
++
++ movw 0x18(%esp), %bx
++
++ call EXT_C(prot_to_real)
++ .code16
++
++ movb %bl, %bh
++ movw $0x1000, %ax
++ int $0x10
++
++ DATA32 call EXT_C(real_to_prot)
++ .code32
++
++ pop %edx
++ pop %ecx
++ pop %ebx
++ pop %eax
++ pop %ebp
++ ret
++#endif
+
+ /*
+ * getrtsecs()
+diff -ur grub-0.92/stage2/builtins.c grub/stage2/builtins.c
+--- grub-0.92/stage2/builtins.c Sun Apr 28 20:26:49 2002
++++ grub/stage2/builtins.c Wed May 1 20:30:30 2002
+@@ -133,6 +133,36 @@
+ grub_printf ("[%d,%d,%d]", sector, offset, length);
+ }
+
++#ifdef VGA16
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++ if (grub_strlen(arg) == 6) {
++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++ background = (r << 16) | (g << 8) | b;
++ if (vga_inited)
++ set_palette(0, r, g, b);
++ return (0);
++ }
++
++ return (1);
++}
++
++static struct builtin builtin_background =
++{
++ "background",
++ background_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "background RRGGBB",
++ "Sets the background color when in graphics mode."
++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++#endif /* VGA16 */
++
+
+ /* blocklist */
+ static int
+@@ -399,6 +429,40 @@
+ #endif /* SUPPORT_NETBOOT */
+
+
++#ifdef VGA16
++
++/* foreground */
++static int
++border_func(char *arg, int flags)
++{
++ if (grub_strlen(arg) == 6) {
++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++ border = (r << 16) | (g << 8) | b;
++ if (vga_inited)
++ set_palette(0x11, r, g, b);
++
++ return (0);
++ }
++
++ return (1);
++}
++
++static struct builtin builtin_border =
++{
++ "border",
++ border_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "border RRGGBB",
++ "Sets the border video color when in graphics mode."
++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* VGA16 */
++
++
+ /* cat */
+ static int
+ cat_func (char *arg, int flags)
+@@ -409,7 +473,7 @@
+ return 1;
+
+ while (grub_read (&c, 1))
+- grub_putchar (c);
++ putchar (c);
+
+ grub_close ();
+ return 0;
+@@ -963,6 +1027,44 @@
+ return 0;
+ }
+
++
++#ifdef VGA16
++/* display */
++static int
++display_func(char *arg, int flags)
++{
++ int i;
++
++ for (i = 0; i < MAX_DISPLAYS; i++) {
++ if (grub_strcmp(arg, display_entries[i].name) == 0)
++ break;
++ }
++
++ if (i >= MAX_DISPLAYS)
++ return (1);
++
++ display_idx = i;
++ if (display->End)
++ (*display->End)();
++ display = &display_entries[display_idx];
++
++ /* Restart cmain */
++ grub_longjmp (restart_env, 0);
++ /*NOTREACHED*/
++
++ return (0);
++}
++
++static struct builtin builtin_display =
++{
++ "display",
++ display_func,
++ BUILTIN_CMDLINE,
++ "display MODEL",
++ "Changes display type. Available modes are \"text\" and \"vga16\"."
++};
++#endif /* VGA16 */
++
+ static struct builtin builtin_displaymem =
+ {
+ "displaymem",
+@@ -1298,6 +1400,39 @@
+ " the devices which contain the file."
+ };
+
++#ifdef VGA16
++
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++ if (grub_strlen(arg) == 6) {
++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++ foreground = (r << 16) | (g << 8) | b;
++ if (vga_inited)
++ set_palette(15, r, g, b);
++
++ return (0);
++ }
++
++ return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++ "foreground",
++ foreground_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "foreground RRGGBB",
++ "Sets the foreground color when in graphics mode."
++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* VGA16 */
++
+
+ /* fstest */
+ static int
+@@ -1450,13 +1585,13 @@
+
+
+ /* help */
+-#define MAX_SHORT_DOC_LEN 39
+-#define MAX_LONG_DOC_LEN 66
+
+ static int
+ help_func (char *arg, int flags)
+ {
+ int all = 0;
++ int MAX_SHORT_DOC_LEN = (view_x1 - view_x0 + 1) / 2 - 1;
++ int MAX_LONG_DOC_LEN = (view_x1 - view_x0) - 14;
+
+ if (grub_memcmp (arg, "--all", sizeof ("--all") - 1) == 0)
+ {
+@@ -1491,13 +1626,13 @@
+ len = MAX_SHORT_DOC_LEN - 1;
+
+ for (i = 0; i < len; i++)
+- grub_putchar ((*builtin)->short_doc[i]);
++ putchar ((*builtin)->short_doc[i]);
+
+ for (; i < MAX_SHORT_DOC_LEN; i++)
+- grub_putchar (' ');
++ putchar (' ');
+
+ if (! left)
+- grub_putchar ('\n');
++ putchar ('\n');
+
+ left = ! left;
+ }
+@@ -1552,8 +1687,8 @@
+
+ grub_printf (" ");
+ for (i = 0; i < len; i++)
+- grub_putchar (*doc++);
+- grub_putchar ('\n');
++ putchar (*doc++);
++ putchar ('\n');
+ }
+ }
+ }
+@@ -3260,6 +3395,74 @@
+ "Save the current entry as the default boot entry."
+ };
+
++#ifdef VGA16
++/*splashimage*/
++static int
++splashimage_func(char *arg, int flags)
++{
++ if (strlen(arg) > 63)
++ return (1);
++ if (flags == BUILTIN_CMDLINE) {
++ if (!grub_open(arg))
++ return (1);
++ grub_close();
++ }
++
++ if (flags == BUILTIN_CMDLINE || !splash_set) {
++ strcpy(splashimage, arg);
++ splash_set = 1;
++ }
++
++ if (flags == BUILTIN_CMDLINE && vga_inited) {
++ display->End();
++ display->Begin();
++ cls();
++/* grub_longjmp(restart_env, 0);*/
++ }
++
++ return (0);
++}
++
++static struct builtin builtin_splashimage =
++{
++ "splashimage",
++ splashimage_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "splashimage FILE",
++ "Load FILE as the background image when in graphics mode."
++};
++
++/*shade*/
++static int
++shade_func(char *arg, int flags)
++{
++ int new_shade;
++
++ if (!arg || safe_parse_maxint(&arg, &new_shade) == 0)
++ return (1);
++
++ if (shade != new_shade) {
++ shade = new_shade;
++ if (flags == BUILTIN_CMDLINE && vga_inited) {
++ display->End();
++ display->Begin();
++ cls();
++ }
++ }
++
++ return (0);
++}
++
++static struct builtin builtin_shade =
++{
++ "shade",
++ shade_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "shade INTEGER",
++ "If set to 0, disables the use of shaded text, else enables it."
++};
++#endif /* VGA16 */
++
+
+ #ifdef SUPPORT_SERIAL
+ /* serial */
+@@ -4572,16 +4775,79 @@
+ "Probe VBE information. If the mode number MODE is specified, show only"
+ " the information about only the mode."
+ };
+-
++
++#ifdef VGA16
+
++/* viewport */
++static int
++viewport_func (char *arg, int flags)
++{
++ int i;
++ int x0 = 80, y0 = 25, x1 = 0, y1 = 0;
++ int *pos[4] = { &x0, &y0, &x1, &y1 };
++ extern int viewport_set;
++
++ if (!arg)
++ return (1);
++ for (i = 0; i < 4; i++) {
++ if (!*arg)
++ return (1);
++ while (*arg && (*arg == ' ' || *arg == '\t'))
++ ++arg;
++ if (!safe_parse_maxint(&arg, pos[i]))
++ return (1);
++ while (*arg && (*arg != ' ' && *arg != '\t'))
++ ++arg;
++ }
++
++ x1 += x0;
++ y1 += y0;
++
++ /* minimum size is 60 colums and 16 rows */
++ if (x0 > x1 - 60 || y0 > y1 - 16 || x0 < 0 || y0 < 0 || x1 > 80 || y1 > 30)
++ return (1);
++
++ viewport_set = 1;
++ view_x0 = x0;
++ view_y0 = y0;
++ view_x1 = x1;
++ view_y1 = y1;
++
++ if (flags == BUILTIN_CMDLINE && vga_inited) {
++ display->End();
++ display->Begin();
++ cls();
++ }
++
++ return (0);
++}
++
++static struct builtin builtin_viewport =
++{
++ "viewport",
++ viewport_func,
++ BUILTIN_CMDLINE | BUILTIN_MENU,
++ "viewport x y width height",
++ "Changes grub internals to output text in the window defined by"
++ " four parameters. The x and y parameters are 0 based. This option"
++ " only works with the vga interface."
++};
++#endif /* VGA16 */
++
+ /* The table of builtin commands. Sorted in dictionary order. */
+ struct builtin *builtin_table[] =
+ {
++#ifdef VGA16
++ &builtin_background,
++#endif /* VGA16 */
+ &builtin_blocklist,
+ &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+ &builtin_bootp,
+ #endif /* SUPPORT_NETBOOT */
++#ifdef VGA16
++ &builtin_border,
++#endif /* VGA16 */
+ &builtin_cat,
+ &builtin_chainloader,
+ &builtin_cmp,
+@@ -4597,12 +4863,18 @@
+ #endif /* SUPPORT_NETBOOT */
+ &builtin_displayapm,
+ &builtin_displaymem,
++#ifdef VGA16
++ &builtin_display,
++#endif /* VGA16 */
+ #ifdef GRUB_UTIL
+ &builtin_dump,
+ #endif /* GRUB_UTIL */
+ &builtin_embed,
+ &builtin_fallback,
+ &builtin_find,
++#ifdef VGA16
++ &builtin_foreground,
++#endif /* VGA16 */
+ &builtin_fstest,
+ &builtin_geometry,
+ &builtin_halt,
+@@ -4646,6 +4918,10 @@
+ #endif /* SUPPORT_SERIAL */
+ &builtin_setkey,
+ &builtin_setup,
++#ifdef VGA16
++ &builtin_shade,
++ &builtin_splashimage,
++#endif /* VGA16 */
+ #if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
+ &builtin_terminal,
+ #endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
+@@ -4659,5 +4935,8 @@
+ &builtin_unhide,
+ &builtin_uppermem,
+ &builtin_vbeprobe,
++#ifdef VGA16
++ &builtin_viewport,
++#endif /* VGA16 */
+ 0
+ };
+diff -ur grub-0.92/stage2/char_io.c grub/stage2/char_io.c
+--- grub-0.92/stage2/char_io.c Mon Mar 25 16:43:55 2002
++++ grub/stage2/char_io.c Wed May 1 20:29:20 2002
+@@ -265,8 +265,8 @@
+
+ /* XXX: These should be defined in shared.h, but I leave these here,
+ until this code is freezed. */
+-#define CMDLINE_WIDTH 78
+-#define CMDLINE_MARGIN 10
++ int CMDLINE_WIDTH = (view_x1 - view_x0) - 2;
++ int CMDLINE_MARGIN = 10;
+
+ int xpos, lpos, c, section;
+ /* The length of PROMPT. */
+@@ -316,7 +316,7 @@
+ {
+ int y = getxy () & 0xFF;
+
+- gotoxy (xpos, y);
++ gotoxy (xpos + view_x0, y);
+ }
+ # ifdef SUPPORT_SERIAL
+ else if (! (terminal & TERMINAL_DUMB) && (count > 4))
+@@ -328,7 +328,7 @@
+ int i;
+
+ for (i = 0; i < count; i++)
+- grub_putchar ('\b');
++ putchar ('\b');
+ }
+ # endif /* SUPPORT_SERIAL */
+ }
+@@ -354,7 +354,7 @@
+ {
+ int y = getxy () & 0xFF;
+
+- gotoxy (xpos, y);
++ gotoxy (xpos + view_x0, y);
+ }
+ # ifdef SUPPORT_SERIAL
+ else if (! (terminal & TERMINAL_DUMB) && (count > 4))
+@@ -368,9 +368,9 @@
+ for (i = lpos - count; i < lpos; i++)
+ {
+ if (! echo_char)
+- grub_putchar (buf[i]);
++ putchar (buf[i]);
+ else
+- grub_putchar (echo_char);
++ putchar (echo_char);
+ }
+ }
+ # endif /* SUPPORT_SERIAL */
+@@ -398,7 +398,7 @@
+ /* From the start to the end. */
+ len = CMDLINE_WIDTH;
+ pos = 0;
+- grub_putchar ('\r');
++ putchar ('\r');
+
+ /* If SECTION is the first section, print the prompt, otherwise,
+ print `<'. */
+@@ -410,7 +410,7 @@
+ }
+ else
+ {
+- grub_putchar ('<');
++ putchar ('<');
+ len--;
+ pos++;
+ }
+@@ -446,9 +446,9 @@
+ for (i = start; i < start + len && i < llen; i++)
+ {
+ if (! echo_char)
+- grub_putchar (buf[i]);
++ putchar (buf[i]);
+ else
+- grub_putchar (echo_char);
++ putchar (echo_char);
+
+ pos++;
+ }
+@@ -458,7 +458,7 @@
+ /* Fill up the rest of the line with spaces. */
+ for (; i < start + len; i++)
+ {
+- grub_putchar (' ');
++ putchar (' ');
+ pos++;
+ }
+
+@@ -467,9 +467,9 @@
+ if (pos == CMDLINE_WIDTH)
+ {
+ if (start + len < llen)
+- grub_putchar ('>');
++ putchar ('>');
+ else
+- grub_putchar (' ');
++ putchar (' ');
+
+ pos++;
+ }
+@@ -483,7 +483,7 @@
+ {
+ int y = getxy () & 0xFF;
+
+- gotoxy (xpos, y);
++ gotoxy (xpos + view_x0, y);
+ }
+ # ifdef SUPPORT_SERIAL
+ else if (! (terminal & TERMINAL_SERIAL) && (pos - xpos > 4))
+@@ -493,7 +493,7 @@
+ else
+ {
+ for (i = 0; i < pos - xpos; i++)
+- grub_putchar ('\b');
++ putchar ('\b');
+ }
+ # endif /* SUPPORT_SERIAL */
+ }
+@@ -503,7 +503,7 @@
+ void cl_init (void)
+ {
+ /* Distinguish us from other lines and error messages! */
+- grub_putchar ('\n');
++ putchar ('\n');
+
+ /* Print full line and set position here. */
+ cl_refresh (1, 0);
+@@ -634,7 +634,7 @@
+ /* There are more than one candidates, so print
+ the list. */
+
+- grub_putchar ('\n');
++ putchar ('\n');
+ /* Enable the auto fill mode temporarily. */
+ auto_fill = 1;
+ print_completions (is_filename, 0);
+@@ -776,7 +776,7 @@
+ }
+ }
+
+- grub_putchar ('\n');
++ putchar ('\n');
+
+ /* If ECHO_CHAR is NUL, remove the leading spaces. */
+ lpos = 0;
+@@ -1122,7 +1122,7 @@
+ {
+ /* Fold a line only if AUTO_FILL is true. */
+ if (auto_fill && col >= 79)
+- grub_putchar ('\n');
++ putchar ('\n');
+
+ col++;
+ }
+@@ -1173,7 +1173,7 @@
+
+ #ifndef STAGE1_5
+ void
+-gotoxy (int x, int y)
++grub_gotoxy (int x, int y)
+ {
+ if (terminal & TERMINAL_CONSOLE)
+ console_gotoxy (x, y);
+@@ -1197,7 +1197,7 @@
+ #endif /* SUPPORT_SERIAL */
+
+ int
+-getxy (void)
++grub_getxy (void)
+ {
+ int ret = 0;
+
+@@ -1302,7 +1302,7 @@
+ #endif /* SUPPORT_SERIAL */
+
+ void
+-cls (void)
++grub_cls (void)
+ {
+ if (terminal & TERMINAL_CONSOLE)
+ console_cls ();
+@@ -1323,7 +1323,7 @@
+ {
+ /* If the terminal is dumb, there is no way to clean the terminal. */
+ if (terminal & TERMINAL_DUMB)
+- grub_putchar ('\n');
++ putchar ('\n');
+ else
+ grub_printf ("\e[H\e[J");
+ }
+diff -ur grub-0.92/stage2/cmdline.c grub/stage2/cmdline.c
+--- grub-0.92/stage2/cmdline.c Sun Mar 24 07:28:54 2002
++++ grub/stage2/cmdline.c Wed May 1 20:29:20 2002
+@@ -125,7 +125,7 @@
+ init_page ();
+ #ifdef SUPPORT_DISKLESS
+ print_network_configuration ();
+- grub_putchar ('\n');
++ putchar ('\n');
+ #endif
+ print_cmdline_message (forever);
+
+diff -ur grub-0.92/stage2/disk_io.c grub/stage2/disk_io.c
+--- grub-0.92/stage2/disk_io.c Wed Nov 28 13:43:56 2001
++++ grub/stage2/disk_io.c Wed May 1 20:29:20 2002
+@@ -1267,7 +1267,7 @@
+ }
+
+ if (! is_completion)
+- grub_putchar ('\n');
++ putchar ('\n');
+
+ print_error ();
+ do_completion = 0;
+@@ -1334,7 +1334,7 @@
+ }
+
+ if (! is_completion)
+- grub_putchar ('\n');
++ putchar ('\n');
+ }
+ else
+ {
+@@ -1408,7 +1408,7 @@
+ }
+
+ if (! is_completion)
+- grub_putchar ('\n');
++ putchar ('\n');
+ }
+ else
+ errnum = ERR_BAD_FILENAME;
+diff -ur grub-0.92/stage2/shared.h grub/stage2/shared.h
+--- grub-0.92/stage2/shared.h Mon Mar 25 16:43:55 2002
++++ grub/stage2/shared.h Wed May 1 20:29:20 2002
+@@ -44,6 +44,12 @@
+ # define RAW_SEG(x) (x)
+ #endif
+
++#if defined(VGA16)
++#if defined(GRUB_UTIL) || defined(STAGE1_5)
++#undef VGA16
++#endif
++#endif
++
+ /*
+ * Integer sizes
+ */
+@@ -367,8 +373,10 @@
+ #define isspace grub_isspace
+ #define printf grub_printf
+ #define sprintf grub_sprintf
++#ifndef VGA16
+ #undef putchar
+ #define putchar grub_putchar
++#endif
+ #define strncat grub_strncat
+ #define strstr grub_strstr
+ #define memcmp grub_memcmp
+@@ -383,6 +391,9 @@
+ /*
+ * Below this should be ONLY defines and other constructs for C code.
+ */
++#ifdef VGA16
++#define VIDEO 0xA0000
++#endif
+
+ /* multiboot stuff */
+
+@@ -779,26 +790,26 @@
+ int currticks (void);
+
+ /* Clear the screen. */
+-void cls (void);
++void grub_cls (void);
+
+ /* The console part of cls. */
+ void console_cls (void);
+
+ #ifndef GRUB_UTIL
+ /* Turn off cursor. */
+-void nocursor (void);
++void grub_nocursor (void);
+ #endif
+
+ /* Get the current cursor position (where 0,0 is the top left hand
+ corner of the screen). Returns packed values, (RET >> 8) is x,
+ (RET & 0xff) is y. */
+-int getxy (void);
++int grub_getxy (void);
+
+ /* The console part of getxy. */
+ int console_getxy (void);
+
+ /* Set the cursor position. */
+-void gotoxy (int x, int y);
++void grub_gotoxy (int x, int y);
+
+ /* The console part of gotoxy. */
+ void console_gotoxy (int x, int y);
+@@ -828,8 +839,64 @@
+ constants defined above. */
+ void set_attrib (int attr);
+
++extern int view_x0, view_y0, view_x1, view_y1;
++#ifdef VGA16
++#define MAX_DISPLAYS 2
++
++#define cls() (display->Cls ? (*display->Cls)() : 0)
++#define gotoxy(x, y) (display->Gotoxy ? (*display->Gotoxy)(x, y) : 0)
++#define putchar(c) (display->Putchar ? (*display->Putchar)(c) : 0)
++#define console_set_attrib(a) (display->SetAttrib ? (*display->SetAttrib)(a) : 0)
++#define getxy() (display->Getxy ? (*display->Getxy)() : 0)
++#define nocursor() (display->Nocursor ? (*display->Nocursor)() : 0)
++struct display_entry {
++ char *name;
++ int (*Begin)(void);
++ void (*End)(void);
++ void (*Cls)(void);
++ void (*Gotoxy)(int x, int y);
++ void (*Putchar)(int ch);
++ void (*SetAttrib)(int attr);
++ int (*Getxy)(void);
++ void (*Nocursor)(void);
++};
++struct display_entry display_entries[MAX_DISPLAYS + 1];
++extern struct display_entry *display;
++
++extern int vga_inited, foreground, background, shade, border;
++extern int display_idx, splash_set;
++extern short cursorX, cursorY, cursorWidth, cursorHeight;
++extern char cursorBuf[16], splashimage[64];
++
++int vga16_begin(void);
++void vga16_end(void);
++void vga16_cls(void);
++void vga16_gotoxy(int x, int y);
++void vga16_putchar(int ch);
++int vga16_getxy(void);
++void vga16_nocursor(void);
++void vga16_set_attrib(int attr);
++
++int read_image();
++void set_palette(int index, int red, int green, int blue);
++void *get_font(void);
++/* return previous video mode */
++int set_videomode(int mode);
++
++int hex(int);
++void set_int1c_handler();
++void unset_int1c_handler();
++void cursor(int state);
++#else
++#define cls grub_cls
++#define gotoxy grub_gotoxy
++#define console_set_attrib grub_set_attrib
++#define getxy grub_getxy
++#define nocursor grub_nocursor
++#endif
++
+ /* The console part of set_attrib. */
+-void console_set_attrib (int attr);
++void grub_set_attrib (int attr);
+
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+diff -ur grub-0.92/stage2/stage2.c grub/stage2/stage2.c
+--- grub-0.92/stage2/stage2.c Sun Mar 24 07:28:54 2002
++++ grub/stage2/stage2.c Wed May 1 20:31:22 2002
+@@ -19,7 +19,12 @@
+
+ #include "shared.h"
+
++int view_x0 = 0, view_y0 = 0, view_x1 = 80, view_y1 = 25;
+ grub_jmp_buf restart_env;
++#ifdef VGA16
++int vga_disabled = 0, viewport_set = 0;
++int sx0, sy0, sx1, sy1;
++#endif
+
+ #if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS)
+
+@@ -109,12 +114,12 @@
+ }
+ #endif /* SUPPORT_SERIAL */
+
+- gotoxy (77, y + 1);
++ gotoxy (view_x1 - 3, y + 1);
+
+ if (first)
+- grub_putchar (disp_up);
++ putchar (disp_up);
+ else
+- grub_putchar (' ');
++ putchar (' ');
+
+ menu_entries = get_entry (menu_entries, first, 0);
+
+@@ -122,13 +127,13 @@
+ {
+ int j = 0;
+
+- gotoxy (3, y + i);
++ gotoxy (view_x0 + 3, y + i);
+
+ while (*menu_entries)
+ {
+- if (j < 71)
++ if (j < (view_x1 - view_x0) - 9)
+ {
+- grub_putchar (*menu_entries);
++ putchar (*menu_entries);
+ j++;
+ }
+
+@@ -138,16 +143,16 @@
+ if (*(menu_entries - 1))
+ menu_entries++;
+
+- for (; j < 71; j++)
+- grub_putchar (' ');
++ for (; j < (view_x1 - view_x0) - 9; j++)
++ putchar (' ');
+ }
+
+- gotoxy (77, y + size);
++ gotoxy (view_x0 + 3, y + size);
+
+ if (*menu_entries)
+- grub_putchar (disp_down);
++ putchar (disp_down);
+ else
+- grub_putchar (' ');
++ putchar (' ');
+ }
+
+
+@@ -211,10 +216,10 @@
+ )
+ # endif
+ {
+- for (i = 0; i < 14; i++)
++ for (i = 0; i < 12; i++)
+ {
+ int j;
+- for (j = 0; j < 75; j++)
++ for (j = view_x0; j < (view_x1 - view_x0) - 5; j++)
+ {
+ gotoxy (j + 1, i + y);
+ set_attrib (normal_color);
+@@ -223,33 +228,33 @@
+ }
+ #endif
+
+- gotoxy (1, y);
++ gotoxy (view_x0 + 1, y);
+
+- grub_putchar (disp_ul);
+- for (i = 0; i < 73; i++)
+- grub_putchar (disp_horiz);
+- grub_putchar (disp_ur);
++ putchar (disp_ul);
++ for (i = view_x0; i < view_x1 - 7; i++)
++ putchar (disp_horiz);
++ putchar (disp_ur);
+
+ i = 1;
+
+ while (1)
+ {
+- gotoxy (1, y + i);
++ gotoxy (view_x0 + 1, y + i);
+
+ if (i > size)
+ break;
+
+- grub_putchar (disp_vert);
+- gotoxy (75, y + i);
+- grub_putchar (disp_vert);
++ putchar (disp_vert);
++ gotoxy (view_x1 - 5, y + i);
++ putchar (disp_vert);
+
+ i++;
+ }
+
+- grub_putchar (disp_ll);
+- for (i = 0; i < 73; i++)
+- grub_putchar (disp_horiz);
+- grub_putchar (disp_lr);
++ putchar (disp_ll);
++ for (i = view_x0; i < view_x1 - 7; i++)
++ putchar (disp_horiz);
++ putchar (disp_lr);
+ }
+
+ static void
+@@ -261,27 +266,27 @@
+ if (terminal & TERMINAL_SERIAL)
+ {
+ menu_entries = get_entry (menu_entries, entryno, 0);
+- gotoxy (2, y);
+- grub_putchar (' ');
+- for (x = 3; x < 75; x++)
++ gotoxy (view_x0 + 2, y);
++ putchar (' ');
++ for (x = view_x0 + 3; x < view_x1 - 5; x++)
+ {
+- if (*menu_entries && x < 71)
+- grub_putchar (*menu_entries++);
++ if (*menu_entries && x < view_x1 - 9)
++ putchar (*menu_entries++);
+ else
+- grub_putchar (' ');
++ putchar (' ');
+ }
+ }
+ else
+ #endif /* SUPPORT_SERIAL */
+ {
+- for (x = 2; x < 75; x++)
++ for (x = view_x0 + 2; x < view_x1 - 5; x++)
+ {
+ gotoxy (x, y);
+ set_attrib (attr);
+ }
+ }
+
+- gotoxy (74, y);
++ gotoxy (view_x1 - 6, y);
+ }
+
+ /* Set the attribute of the line Y to normal state. */
+@@ -334,7 +339,8 @@
+ invariant for TERMINAL_DUMB: first_entry == 0 */
+ if (! (terminal & TERMINAL_DUMB))
+ {
+- while (entryno > 11)
++ errnum = ERR_NONE;
++ while (entryno > 9)
+ {
+ first_entry++;
+ entryno--;
+@@ -399,7 +405,7 @@
+ #endif /* ! GRUB_UTIL */
+
+ if (! (terminal & TERMINAL_DUMB))
+- print_border (3, 12);
++ print_border (3 + view_y0, 12);
+
+ #ifdef GRUB_UTIL
+ /* In the grub shell, always use ACS_*. */
+@@ -455,10 +461,10 @@
+ grub_printf ("\n\nThe selected entry is %d ", entryno);
+ else
+ {
+- print_entries (3, 12, first_entry, menu_entries);
++ print_entries (view_y0 + 3, 12, first_entry, menu_entries);
+
+ /* highlight initial line */
+- set_line_highlight (4 + entryno, first_entry + entryno,
++ set_line_highlight (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ }
+ }
+@@ -487,9 +493,9 @@
+ entryno, grub_timeout);
+ else
+ {
+- gotoxy (3, 22);
++ gotoxy (view_x0 + 3, view_y1 - 3);
+ printf ("The highlighted entry will be booted automatically in %d seconds. ", grub_timeout);
+- gotoxy (74, 4 + entryno);
++ gotoxy (view_x0 - 6, view_y0 + 4 + entryno);
+ }
+
+ grub_timeout--;
+@@ -515,12 +521,12 @@
+ if (terminal & TERMINAL_DUMB)
+ grub_putchar ('\r');
+ else
+- gotoxy (3, 22);
++ gotoxy (view_x0 + 3, 22);
+ printf (" ");
+ grub_timeout = -1;
+ fallback_entry = -1;
+ if (! (terminal & TERMINAL_DUMB))
+- gotoxy (74, 4 + entryno);
++ gotoxy (view_x1 - 6, view_x0 + 4 + entryno);
+ }
+
+ /* We told them above (at least in SUPPORT_SERIAL) to use
+@@ -536,17 +542,17 @@
+ {
+ if (entryno > 0)
+ {
+- set_line_normal (4 + entryno, first_entry + entryno,
++ set_line_normal (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ entryno--;
+- set_line_highlight (4 + entryno, first_entry + entryno,
++ set_line_highlight (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ }
+ else if (first_entry > 0)
+ {
+ first_entry--;
+- print_entries (3, 12, first_entry, menu_entries);
+- set_line_highlight (4, first_entry + entryno,
++ print_entries (view_y0 + 3, 12, first_entry, menu_entries);
++ set_line_highlight (view_y0 + 4, first_entry + entryno,
+ menu_entries);
+ }
+ }
+@@ -558,17 +564,17 @@
+ else
+ if (entryno < 11)
+ {
+- set_line_normal (4 + entryno, first_entry + entryno,
++ set_line_normal (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ entryno++;
+- set_line_highlight (4 + entryno, first_entry + entryno,
++ set_line_highlight (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ }
+ else if (num_entries > 12 + first_entry)
+ {
+ first_entry++;
+- print_entries (3, 12, first_entry, menu_entries);
+- set_line_highlight (15, first_entry + entryno, menu_entries);
++ print_entries (view_y0 + 3, 12, first_entry, menu_entries);
++ set_line_highlight (view_y0 + 15, first_entry + entryno, menu_entries);
+ }
+ }
+
+@@ -582,7 +588,7 @@
+ if ((c == 'd') || (c == 'o') || (c == 'O'))
+ {
+ if (! (terminal & TERMINAL_DUMB))
+- set_line_normal (4 + entryno, first_entry + entryno,
++ set_line_normal (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+
+ /* insert after is almost exactly like insert before */
+@@ -640,8 +646,8 @@
+ }
+ else
+ {
+- print_entries (3, 12, first_entry, menu_entries);
+- set_line_highlight (4 + entryno, first_entry + entryno,
++ print_entries (view_y0 + 3, 12, first_entry, menu_entries);
++ set_line_highlight (view_y0 + 4 + entryno, first_entry + entryno,
+ menu_entries);
+ }
+ }
+@@ -664,7 +670,7 @@
+ if (terminal & TERMINAL_DUMB)
+ grub_printf ("\r ");
+ else
+- gotoxy (1, 21);
++ gotoxy (view_x0 + 1, view_y1 + 21);
+
+ /* Wipe out the previously entered password */
+ memset (entered, 0, sizeof (entered));
+@@ -809,6 +815,11 @@
+ auto_fill = 1;
+
+ cls ();
++#ifdef VGA16
++ if (display->End)
++ (*display->End)();
++ display = &display_entries[0];
++#endif
+
+ while (1)
+ {
+@@ -840,6 +851,16 @@
+ break;
+ }
+
++#ifdef VGA16
++ if (display_idx >= 0)
++ display = &display_entries[display_idx];
++ else if (!vga_disabled)
++ display = &display_entries[1];
++
++ if (!display->Begin || !(*display->Begin)())
++ display = &display_entries[0];
++#endif
++
+ show_menu = 1;
+ goto restart;
+ }
+@@ -904,6 +925,560 @@
+ return pos;
+ }
+
++#ifdef VGA16
++struct display_entry display_entries[MAX_DISPLAYS + 1] = {
++ {"text", 0, 0, grub_cls, grub_gotoxy, grub_putchar, grub_set_attrib,
++ grub_getxy, grub_nocursor},
++ {"vga16",
++ vga16_begin, vga16_end, vga16_cls, vga16_gotoxy, vga16_putchar,
++ vga16_set_attrib, vga16_getxy, vga16_nocursor},
++ {0, 0, 0, 0, 0, 0, 0, 0, 0}
++};
++struct display_entry *display;
++int display_idx = -1;
++
++/* default vga palette */
++char vga16pal[16][3] = {
++ { 0, 0, 0},
++ { 0, 0, 42},
++ { 0, 42, 0},
++ { 0, 42, 42},
++ {42, 0, 0},
++ {42, 0, 42},
++ {42, 21, 0},
++ {42, 42, 42},
++ {21, 21, 21},
++ {21, 21, 63},
++ {21, 63, 21},
++ {21, 63, 63},
++ {63, 21, 21},
++ {63, 21, 63},
++ {63, 63, 21},
++ {63, 63, 63},
++};
++
++int fontx, fonty;
++unsigned char *font8x16;
++int saved_videomode, no_scroll = 0, no_cursor = 0, shade = 1, vga_inited = 0;
++unsigned short text[80 * 30];
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++int splash_set;
++char splashimage[64];
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++static inline void
++outb(unsigned short port, unsigned char val)
++{
++ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void
++ModeReg(int value)
++{
++ outb(0x3ce, 5);
++ outb(0x3cf, value);
++}
++
++static void
++MapMask(int value)
++{
++ outb(0x3c4, 2);
++ outb(0x3c5, value);
++}
++
++/* set/reset register */
++static void
++SetRes(int value)
++{
++ outb(0x3ce, 0);
++ outb(0x3cf, value);
++}
++
++/* enable set/reset register */
++static void
++ESetRes(int value)
++{
++ outb(0x3ce, 1);
++ outb(0x3cf, value);
++}
++
++static void
++ReadMap(int value)
++{
++ outb(0x3ce, 4);
++ outb(0x3cf, value);
++}
++
++/* bit mask register */
++static void
++BitMask(int value)
++{
++ outb(0x3ce, 8);
++ outb(0x3cf, value);
++}
++
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++ int i;
++ register char *d = (char*)dest, *s = (char*)src;
++
++ for (i = 0; i < len; i++)
++ d[i] = s[i];
++}
++
++int
++hex(int v)
++{
++ if (v >= 'A' && v <= 'F')
++ return (v - 'A' + 10);
++ if (v >= 'a' && v <= 'f')
++ return (v - 'a' + 10);
++ return (v - '0');
++}
++
++static void
++SetXY(int col, int row)
++{
++ if (col >= view_x0 && col < view_x1) {
++ fontx = col;
++ cursorX = col << 3;
++ }
++ if (row >= view_y0 && row < view_y1) {
++ fonty = row;
++ cursorY = row << 4;
++ }
++}
++
++void
++cursor(int set)
++{
++ unsigned char *pat, *mem, *ptr, chr[16 << 2];
++ int i, ch, invert, offset;
++
++ if (set && (no_cursor || no_scroll))
++ return;
++
++ offset = cursorY * 80 + fontx;
++ ch = text[fonty * 80 + fontx] & 0xff;
++ invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++ pat = font8x16 + (ch << 4);
++
++ mem = (unsigned char*)VIDEO + offset;
++
++ if (!set) {
++ for (i = 0; i < 16; i++) {
++ unsigned char mask = pat[i];
++
++ if (!invert) {
++ chr[i ] = ((unsigned char*)VSHADOW1)[offset];
++ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++ if (shade) {
++ if (ch == DISP_VERT || ch == DISP_LL ||
++ ch == DISP_UR || ch == DISP_LR) {
++ unsigned char pmask = ~(pat[i] >> 1);
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ }
++ if (i > 0 && ch != DISP_VERT) {
++ unsigned char pmask = ~(pat[i - 1] >> 1);
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++ pmask = ~pat[i - 1];
++
++ chr[i ] &= pmask;
++ chr[16 + i] &= pmask;
++ chr[32 + i] &= pmask;
++ chr[48 + i] &= pmask;
++ }
++ }
++ }
++ chr[i ] |= mask;
++ chr[16 + i] |= mask;
++ chr[32 + i] |= mask;
++ chr[48 + i] |= mask;
++
++ offset += 80;
++ }
++ else {
++ chr[i ] = mask;
++ chr[16 + i] = mask;
++ chr[32 + i] = mask;
++ chr[48 + i] = mask;
++ }
++ }
++ }
++ else {
++ MapMask(15);
++ ptr = mem;
++ for (i = 0; i < 16; i++, ptr += 80) {
++ cursorBuf[i] = pat[i];
++ *ptr = ~pat[i];
++ }
++ return;
++ }
++
++ offset = 0;
++ for (i = 1; i < 16; i <<= 1, offset += 16) {
++ int j;
++
++ MapMask(i);
++ ptr = mem;
++ for (j = 0; j < 16; j++, ptr += 80)
++ *ptr = chr[j + offset];
++ }
++
++ MapMask(15);
++}
++
++int
++read_image(void)
++{
++ char buf[32], pal[16];
++ unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++ unsigned i, len, idx, colors, x, y, width, height;
++
++ if (!grub_open(splashimage))
++ return (0);
++
++ /* read header */
++ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
++ grub_close();
++ return (0);
++ }
++
++ /* parse info */
++ while (grub_read(&c, 1)) {
++ if (c == '"')
++ break;
++ }
++
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ i = 0;
++ width = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ width = width * 10 + c - '0';
++ else
++ break;
++ }
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ height = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ height = height * 10 + c - '0';
++ else
++ break;
++ }
++ while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++ ;
++
++ colors = c - '0';
++ while (grub_read(&c, 1)) {
++ if (c >= '0' && c <= '9')
++ colors = colors * 10 + c - '0';
++ else
++ break;
++ }
++
++ base = 0;
++ while (grub_read(&c, 1) && c != '"')
++ ;
++
++ /* palette */
++ for (i = 0, idx = 1; i < colors; i++) {
++ len = 0;
++
++ while (grub_read(&c, 1) && c != '"')
++ ;
++ grub_read(&c, 1); /* char */
++ base = c;
++ grub_read(buf, 4); /* \t c # */
++
++ while (grub_read(&c, 1) && c != '"') {
++ if (len < sizeof(buf))
++ buf[len++] = c;
++ }
++
++ if (len == 6 && idx < 15) {
++ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++ pal[idx] = base;
++ set_palette(idx, r, g, b);
++ ++idx;
++ }
++ }
++
++ x = y = len = 0;
++
++ s1 = (unsigned char*)VSHADOW1;
++ s2 = (unsigned char*)VSHADOW2;
++ s4 = (unsigned char*)VSHADOW4;
++ s8 = (unsigned char*)VSHADOW8;
++
++ for (i = 0; i < 38400; i++)
++ s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++ /* parse xpm data */
++ while (y < height) {
++ while (1) {
++ if (!grub_read(&c, 1)) {
++ grub_close();
++ return (0);
++ }
++ if (c == '"')
++ break;
++ }
++
++ while (grub_read(&c, 1) && c != '"') {
++ for (i = 1; i < 15; i++)
++ if (pal[i] == c) {
++ c = i;
++ break;
++ }
++
++ mask = 0x80 >> (x & 7);
++ if (c & 1)
++ s1[len + (x >> 3)] |= mask;
++ if (c & 2)
++ s2[len + (x >> 3)] |= mask;
++ if (c & 4)
++ s4[len + (x >> 3)] |= mask;
++ if (c & 8)
++ s8[len + (x >> 3)] |= mask;
++
++ if (++x >= 640) {
++ x = 0;
++
++ if (y < 480)
++ len += 80;
++ ++y;
++ }
++ }
++ }
++
++ grub_close();
++
++ set_palette(0, (background >> 16), (background >> 8) & 63, background & 63);
++ set_palette(15, (foreground >> 16), (foreground >> 8) & 63, foreground & 63);
++
++ set_palette(0x11, (border >> 16), (border >> 8) & 63, border & 63);
++
++ return (1);
++}
++
++int
++vga16_begin(void)
++{
++ if (vga_inited)
++ return (1);
++
++ if (!*splashimage)
++ grub_strcpy(splashimage, "/boot/grub/splash.xpm");
++
++ saved_videomode = set_videomode(0x12);
++ if (!read_image()) {
++ set_videomode(saved_videomode);
++ return (0);
++ }
++
++ font8x16 = (unsigned char*)get_font();
++
++ cursorWidth = 8;
++ cursorHeight = 16;
++
++ set_int1c_handler();
++
++ view_x0 = sx0;
++ view_y0 = sy0;
++ view_x1 = sx1;
++ view_y1 = sy1;
++
++ return (vga_inited = 1);
++}
++
++void
++vga16_end(void)
++{
++ if (vga_inited) {
++ unset_int1c_handler();
++ set_videomode(saved_videomode);
++ vga_inited = 0;
++ no_cursor = 0;
++ }
++
++ sx0 = view_x0;
++ sy0 = view_y0;
++ sx1 = view_x1;
++ sy1 = view_y1;
++ view_x0 = 0;
++ view_x1 = 80;
++ view_y0 = 0;
++ view_y1 = 25;
++}
++
++void
++vga16_cls(void)
++{
++ int i;
++ unsigned char *mem, *s1, *s2, *s4, *s8;
++
++ SetXY(view_x0, view_y0);
++
++ mem = (unsigned char*)VIDEO;
++ s1 = (unsigned char*)VSHADOW1;
++ s2 = (unsigned char*)VSHADOW2;
++ s4 = (unsigned char*)VSHADOW4;
++ s8 = (unsigned char*)VSHADOW8;
++
++ for (i = 0; i < 80 * 30; i++)
++ text[i] = ' ';
++
++ BitMask(0xff);
++
++ /* plano 1 */
++ MapMask(1);
++ grub_memcpy(mem, s1, 38400);
++
++ /* plano 2 */
++ MapMask(2);
++ grub_memcpy(mem, s2, 38400);
++
++ /* plano 3 */
++ MapMask(4);
++ grub_memcpy(mem, s4, 38400);
++
++ /* plano 4 */
++ MapMask(8);
++ grub_memcpy(mem, s8, 38400);
++
++ MapMask(15);
++
++ if (no_cursor) {
++ no_cursor = 0;
++ set_int1c_handler();
++ }
++}
++
++void
++vga16_gotoxy(int x, int y)
++{
++ cursor(0);
++
++ SetXY(x, y);
++
++ cursor(1);
++}
++
++static void
++scroll(void)
++{
++ int i, j;
++
++ if (no_scroll)
++ return;
++
++ no_scroll = 1;
++
++ for (j = view_y0 + 1; j < view_y1; j++) {
++ gotoxy(view_x0, j - 1);
++ for (i = view_x0; i < view_x1; i++)
++ putchar(text[j * 80 + i]);
++ }
++
++ gotoxy(view_x0, view_y1 - 1);
++ for (i = view_x0; i < view_x1; i++)
++ putchar(' ');
++
++ SetXY(view_x0, view_y1 - 1);
++
++ no_scroll = 0;
++}
++
++void
++vga16_putchar(int ch)
++{
++ ch &= 0xff;
++
++ cursor(0);
++
++ if (ch == '\n') {
++ SetXY(view_x0, fonty);
++ if (fonty + 1 < view_y1)
++ SetXY(view_x0, fonty + 1);
++ else
++ scroll();
++ cursor(1);
++ return;
++ }
++ else if (ch == '\r') {
++ SetXY(view_x0, fonty);
++ cursor(1);
++ return;
++ }
++
++ text[fonty * 80 + fontx] = ch;
++
++ cursor(0);
++
++ if ((fontx + 1) >= view_x1) {
++ SetXY(view_x0, fonty);
++ if (fonty + 1 < view_y1)
++ SetXY(view_x0, fonty + 1);
++ else
++ scroll();
++ }
++ else
++ SetXY(fontx + 1, fonty);
++
++ cursor(1);
++}
++
++int
++vga16_getxy()
++{
++ return ((fontx << 8) | fonty);
++}
++
++void
++vga16_nocursor()
++{
++ if (!no_cursor) {
++ no_cursor = 1;
++ unset_int1c_handler();
++ cursor(0);
++ }
++}
++
++void
++vga16_set_attrib(int attrib)
++{
++ text[fonty * 80 + fontx] &= 0x00ff;
++ if (attrib & 0xf0)
++ text[fonty * 80 + fontx] |= 0x100;
++ cursor(0);
++}
++#endif
+
+ /* This is the starting function in C. */
+ void
+@@ -924,6 +1499,14 @@
+ menu_entries = (char *) MENU_BUF;
+ init_config ();
+ }
++
++#ifdef VGA16
++ /* Make sure it points to a valid entry */
++ display = &display_entries[0];
++
++ if (ASCII_CHAR(checkkey()) == 0x1b)
++ vga_disabled = 1;
++#endif
+
+ /* Initialize the environment for restarting Stage 2. */
+ grub_setjmp (restart_env);
+@@ -1069,6 +1652,29 @@
+ while (is_preset);
+ }
+
++#ifdef VGA16
++ if (display_idx >= 0)
++ display = &display_entries[display_idx];
++ else if (!vga_disabled) {
++ display = &display_entries[1];
++ }
++ if (!viewport_set)
++ view_y1 = 30;
++ sx0 = view_x0;
++ sy0 = view_y0;
++ sx1 = view_x1;
++ sy1 = view_y1;
++
++ if (!display->Begin || !(*display->Begin)())
++ display = &display_entries[0];
++
++ if (!vga_inited) {
++ sx0 = sy0 = view_x0 = view_y0 = 0;
++ sx1 = view_x1 = 80;
++ sy1 = view_y1 = 25;
++ }
++#endif
++
+ if (! num_entries)
+ {
+ /* If no acceptable config file, goto command-line, starting
diff --git a/sys-boot/grub/files/grub-0.93-gcc3.3.diff b/sys-boot/grub/files/grub-0.93-gcc3.3.diff
new file mode 100644
index 000000000000..a32eb8093d46
--- /dev/null
+++ b/sys-boot/grub/files/grub-0.93-gcc3.3.diff
@@ -0,0 +1,17 @@
+Submitter: Jim Gifford (patches at jg555 dot com)
+Origin: Grub CVS
+Date: 08-16-2003
+Description: Fixes GCC 3.3 Compile Errors
+
+diff -Naur grub-0.93.orig/stage2/fsys_reiserfs.c grub-0.93/stage2/fsys_reiserfs.c
+--- grub-0.93.orig/stage2/fsys_reiserfs.c 2002-11-29 17:46:01.000000000 +0000
++++ grub-0.93/stage2/fsys_reiserfs.c 2003-08-16 21:15:34.000000000 +0000
+@@ -112,7 +112,7 @@
+ /* offset in the log of where to start replay after a crash */
+ __u32 j_first_unflushed_offset;
+ /* mount id to detect very old transactions */
+- __u32 long j_mount_id;
++ __u32 j_mount_id;
+ };
+
+ /* magic string to find desc blocks in the journal */
diff --git a/sys-boot/grub/files/splash.xpm.gz b/sys-boot/grub/files/splash.xpm.gz
new file mode 100644
index 000000000000..8abf87065af2
--- /dev/null
+++ b/sys-boot/grub/files/splash.xpm.gz
Binary files differ
diff --git a/sys-boot/grub/grub-0.92-r1.ebuild b/sys-boot/grub/grub-0.92-r1.ebuild
new file mode 100644
index 000000000000..0f536d7a8cc8
--- /dev/null
+++ b/sys-boot/grub/grub-0.92-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.92-r1.ebuild,v 1.1 2003/12/09 08:12:07 seemant Exp $
+
+inherit mount-boot eutils flag-o-matic
+
+filter-flags "-fstack-protector"
+
+S=${WORKDIR}/${P}
+DESCRIPTION="GNU GRUB boot loader"
+SRC_URI="ftp://alpha.gnu.org/gnu/grub/${P}.tar.gz"
+HOMEPAGE="http://www.gnu.org/software/grub/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="x86 -amd64 -ppc -sparc -alpha -mips"
+
+DEPEND=">=sys-libs/ncurses-5.2-r5"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${A} || die
+ cd ${S} || die
+ epatch ${FILESDIR}/${P}/grub-0.92-vga16.patch
+ epatch ${FILESDIR}/${P}/grub-0.5.96.1-special-raid-devices.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-configfile.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-vga16-keypressclear.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-passwordprompt.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-install.in.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-installcopyonly.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-staticcurses.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-symlinkmenulst.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-append.patch
+ epatch ${FILESDIR}/${P}/grub-0.90-addsyncs.patch
+ epatch ${FILESDIR}/${P}/grub-0.91-splashimagehelp.patch
+ epatch ${FILESDIR}/${P}/grub-0.91-bootonce.patch
+ epatch ${FILESDIR}/${P}/grub-0.92-automake16.patch
+ epatch ${FILESDIR}/${P}/grub-0.92-nodeprecatedflags.patch
+ epatch ${FILESDIR}/${P}/grub-0.91-vga16-serial.patch
+ epatch ${FILESDIR}/${P}/grub-0.92-usbfix.patch
+}
+
+src_compile() {
+ #i686-specific code in the boot loader is a bad idea; disabling to ensure
+ #at least some compatibility if the hard drive is moved to an older or
+ #incompatible system.
+ unset CFLAGS
+ ./configure --prefix=/usr \
+ --sbindir=/sbin \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-auto-linux-mem-opt \
+ || die "Configuration of package failed."
+
+ #the vga16.patch changes configure.in but not configure so
+ #--enable-vga16 doesnt work. config.h gets overwritten by make.
+ echo "#define VGA16 1" >> config.h.in
+
+ emake || die "Building failed!"
+}
+
+src_install() {
+ make prefix=${D}/usr \
+ sbindir=${D}/sbin \
+ mandir=${D}/usr/share/man \
+ infodir=${D}/usr/share/info \
+ install || die "Installation failed."
+
+ dodir /boot/grub
+ cp ${FILESDIR}/splash.xpm.gz ${D}/boot/grub
+ dodoc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO
+}
+
+pkg_postinst() {
+ [ "$ROOT" != "/" ] && return 0
+ if [ ! -e /boot/grub/stage1 ]
+ then
+ #if the boot loader files aren't in place, copy them over.
+ cd /usr/share/grub/i386-pc
+ cp stage1 stage2 *stage1_5 /boot/grub
+ else
+ einfo '*** A new GRUB has been installed. If you need to reinstall'
+ einfo '*** GRUB to a boot record on your drive, please remember to'
+ einfo '*** "cp /usr/share/grub/i386-pc/*stage* /boot/grub" first.'
+ einfo "*** If you're using XFS, unmount and remount /boot as well."
+ fi
+
+ # change menu.lst to grub.conf
+ if [ ! -e /boot/grub/grub.conf -a -e /boot/grub/menu.lst ]
+ then
+ mv /boot/grub/menu.lst /boot/grub/grub.conf
+ ln -s grub.conf /boot/grub/menu.lst
+ einfo "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf"
+ fi
+}
diff --git a/sys-boot/grub/grub-0.93.20030118.ebuild b/sys-boot/grub/grub-0.93.20030118.ebuild
new file mode 100644
index 000000000000..282efbff5ac0
--- /dev/null
+++ b/sys-boot/grub/grub-0.93.20030118.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/grub-0.93.20030118.ebuild,v 1.1 2003/12/09 08:12:07 seemant Exp $
+
+inherit mount-boot eutils flag-o-matic
+
+filter-flags "-fstack-protector"
+
+NEWP=${PN}-${PV%.*}
+S=${WORKDIR}/${NEWP}
+
+SRC_URI="ftp://alpha.gnu.org/gnu/grub/${NEWP}.tar.gz
+ mirror://gentoo/${P}-gentoo.diff.bz2"
+
+DESCRIPTION="GNU GRUB boot loader"
+HOMEPAGE="http://www.gnu.org/software/grub/"
+KEYWORDS="x86 -amd64 -ppc -sparc -alpha -mips"
+SLOT="0"
+LICENSE="GPL-2"
+DEPEND=">=sys-libs/ncurses-5.2-r5"
+PROVIDE="virtual/bootloader"
+IUSE="static"
+
+src_unpack() {
+ unpack ${A} || die
+ cd ${S} || die
+ # grub-0.93.20030118-gentoo.diff; <woodchip@gentoo.org> (18 Jan 2003)
+ # -fixes from grub CVS pulled on 20030118
+ # -vga16 patches; mined from Debian's grub-0.93+cvs20030102-1.diff
+ # -special-raid-devices.patch
+ # -addsyncs.patch
+ # -splashimagehelp.patch
+ # -configfile.patch
+ # -installcopyonly.patch
+ epatch ${DISTDIR}/${P}-gentoo.diff.bz2
+
+ # grub-0.93-gcc3.3.diff <johnm@gentoo.org> (14 Sep 2003)
+ # -fixes compile error with >=gcc-3.3
+ epatch ${FILESDIR}/grub-0.93-gcc3.3.diff
+
+ WANT_AUTOCONF_2_5=1 autoconf || die
+}
+
+src_compile() {
+ ### i686-specific code in the boot loader is a bad idea; disabling to ensure
+ ### at least some compatibility if the hard drive is moved to an older or
+ ### incompatible system.
+ unset CFLAGS
+
+ use static && export LDFLAGS="${LDFLAGS} -static"
+
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ if has_version 'sys-devel/hardened-gcc' && [ "${CC}"="gcc" ]
+ then
+ # the configure script has problems with -nostdlib
+ CC="${CC} -yet_exec -yno_propolice"
+ fi
+
+ econf --exec-prefix=/ \
+ --disable-auto-linux-mem-opt || die
+ emake || die
+}
+
+src_install() {
+ einstall exec_prefix=${D}/ || die
+
+ insinto /boot/grub
+ doins ${FILESDIR}/splash.xpm.gz
+ newins docs/menu.lst grub.conf.sample
+
+ dodoc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO
+ newdoc docs/menu.lst grub.conf.sample
+}
+
+pkg_postinst() {
+ [ "$ROOT" != "/" ] && return 0
+ /sbin/grub-install --just-copy
+
+ # change menu.lst to grub.conf
+ if [ ! -e /boot/grub/grub.conf -a -e /boot/grub/menu.lst ]
+ then
+ mv /boot/grub/menu.lst /boot/grub/grub.conf
+ ln -s grub.conf /boot/grub/menu.lst
+ ewarn
+ ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf"
+ ewarn
+ fi
+}
diff --git a/sys-boot/grub/metadata.xml b/sys-boot/grub/metadata.xml
new file mode 100644
index 000000000000..ef0805e71ae1
--- /dev/null
+++ b/sys-boot/grub/metadata.xml
@@ -0,0 +1,6 @@
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/sys-boot/lilo/ChangeLog b/sys-boot/lilo/ChangeLog
new file mode 100644
index 000000000000..55179648fbc6
--- /dev/null
+++ b/sys-boot/lilo/ChangeLog
@@ -0,0 +1,177 @@
+# ChangeLog for sys-apps/lilo
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/ChangeLog,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+*lilo-22.5.8 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> lilo-22.1-r3.ebuild,
+ lilo-22.3.3-r1.ebuild, lilo-22.3.4.ebuild, lilo-22.5.1.ebuild,
+ lilo-22.5.6-r2.ebuild, lilo-22.5.6-r3.ebuild, lilo-22.5.7.2.ebuild,
+ lilo-22.5.8-r1.ebuild, lilo-22.5.8.ebuild, metadata.xml,
+ files/lilo-22.5.6-animated-menu.patch, files/lilo-22.5.6-glibc233.patch,
+ files/lilo.conf:
+ moved from sys-apps to sys-boot
+
+ 12 Nov 2003; Alexander Gabert <pappy@gentoo.org> lilo-22.5.8-r1.ebuild:
+ added hardened-gcc -yet_exec flags for gcc building lilo which has assembler
+ parts in it
+
+*lilo-22.5.8-r1 (06 Nov 2003)
+
+ 06 Nov 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.8-r1.ebuild:
+ Get the build to actually use gcc as $CC; remove the hardened crap.
+
+*lilo-22.5.8 (13 Oct 2003)
+
+ 13 Oct 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.8.ebuild:
+ Update version.
+
+ 07 Sep 2003; Alexander Gabert <pappy@gentoo.org> lilo-22.5.1.ebuild,
+ lilo-22.5.7.2.ebuild:
+ added hardened-gcc excludes
+
+*lilo-22.5.7.2 (01 Sep 2003)
+
+ 01 Sep 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.7.2.ebuild:
+ Update, closes bug #27141.
+
+*lilo-22.5.1 (05 Aug 2003)
+
+ 05 Aug 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.1.ebuild:
+ Add back lilo-22.5.1 ebuild that I removed by mistake.
+
+ 03 Aug 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.6-r3.ebuild,
+ files/lilo-22.5.6-animated-menu.patch, files/lilo-22.5.6-glibc233.patch:
+ Add fixes for latest libc. Mask again until the 'timeout=' option can be fixed
+ (for my friend chip).
+
+*lilo-22.5.6-r3 (03 Aug 2003)
+
+ 03 Aug 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.6-r3.ebuild,
+ files/lilo-22.5.6-animated-menu.patch:
+ Add updated animated graphical bootmenu support (bug #19397), thanks to
+ Quequero <quequero@bitchx.it>.
+
+*lilo-22.5.6-r2 (17 Jul 2003)
+
+ 17 Jul 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.6-r2.ebuild,
+ files/lilo.conf:
+ More cleanups. Remove the loaders (*.b files), as they are no longer needed.
+ Add the 'disk=' examples to lilo.conf (bug #24035), thanks to Kidion
+ <david_en_clarina@zonnet.nl>.
+
+ 16 Jul 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.6-r1.ebuild:
+ Cleanup the build again. Fix my BOOTS kludge, and remove the patch.
+
+*lilo-22.5.6-r1 (14 Jul 2003)
+
+ 14 Jul 2003; Patrick Kursawe <phosphan@gentoo.org> lilo-22.5.6-r1.ebuild,
+ lilo-22.5.6.ebuild, files/dot-b-files.patch:
+ Didn't install all .b files - bug 24368
+
+ 11 Jul 2003; Patrick Kursawe <phosphan@gentoo.org> lilo-22.5.6.ebuild:
+ Added entry with "obsolete" to SRC_URI which should work in the future.
+
+*lilo-22.5.6 (10 Jul 2003)
+
+ 10 Jul 2003; Patrick Kursawe <phosphan@gentoo.org> lilo-22.5.6.ebuild:
+ Version bump. Using new download URI which quite likely will have to be
+ changed to .../obsolete/ soon :-(
+
+ 10 Jul 2003; Patrick Kursawe <phosphan@gentoo.org> lilo-22.3.4.ebuild,
+ lilo-22.5.1.ebuild, lilo-22.5.5.ebuild:
+ Updated SRC_URI, tarballs were moved to /obsolete. Ebuilds for new versions
+ should perhaps try ftp://metalab.unc.edu/pub/Linux/system/boot/lilo, at least
+ this location is encouraged in announcement as the "main distribution site".
+
+*lilo-22.5.5 (24 Jun 2003)
+
+ 24 Jun 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.5.ebuild:
+ New version.
+
+ 03 Apr 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.1.ebuild :
+ Set OPTS down to -O1 to fix a problem where lilo sometimes locked at
+ boot.
+
+*lilo-22.5.1 (30 Mar 2003)
+
+ 30 Mar 2003; Martin Schlemmer <azarah@gentoo.org> lilo-22.5.1.ebuild :
+ New version. Added support to detect if lilo is used as boot loader,
+ and then run /sbin/lilo.
+
+ 24 Jan 2002; <woodchip@gentoo.org> *.ebuild : Reorder mount-boot.eclass
+ function, clean some fluff.
+
+*lilo-22.3.4 (04 Jan 2002)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> lilo-22.3.4.ebuild :
+ This is definitely not for mips.
+
+ 06 Jan 2002; Seemant Kulleen <seemant@gentoo.org> *.ebuild :
+ PROVIDE virtual/bootloader
+
+ 04 Jan 2002; Donny Davies <woodchip@gentoo.org> :
+ New testing release.
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+*lilo-22.3.3-r1 (22 Sep 2002)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> lilo-22.3.3-r1.ebuild :
+ This is definitely not for mips.
+
+ 29 Sep 2002; Donny Davies <woodchip@gentoo.org> :
+ Several fixes + cosmetic issues. #7898, #8057, #7903.
+
+ 22 Sep 2002; Donny Davies <woodchip@gentoo.org> :
+ Now uses mount-boot.eclass. Created new patch a la Suse.
+
+*lilo-22.3.3 (3 Sep 2002)
+
+ 3 Sep 2002; Martin Schlemmer <azarah@gentoo.org> :
+ Updated version.
+
+*lilo-21.7.5-r2 (8 Apr 2002)
+
+ 20 Jul 2002; Mark Guertin <gerk@gentoo.org> :
+ Adjusted keywords
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> lilo-21.7.5-r2.ebuild :
+ Added LICENSE, KEYWORDS, SLOT.
+
+ 8 Apr 2002; Donny Davies <woodchip@gentoo.org> lilo-21.7.5-r2.ebuild,
+ lilo-21.7.5-r1.ebuild, lilo-22.1-r2.ebuild :
+ Sync pkg_setup() with lilo-22.1-r3 and added the sample lilo.conf.
+
+*lilo-22.1-r3 (5 Apr 2002)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> lilo-22.1-r3.ebuild :
+ This is definitely not for mips.
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> lilo-22.1-r3.ebuild :
+ Added LICENSE, KEYWORDS, SLOT.
+ Removed the stale ebuilds.
+
+ 5 Apr 2002; M.Schlemmer <azarah@gentoo.org> lilo-22.1-r3.ebuild :
+ Fix the /boot issue finally (hopefully :P). Add $ROOT checking afterwards.
+
+*lilo-22.1-r2 (4 Feb 2002)
+
+ 4 Feb 2002; G.Bevin <gbevin@gentoo.org> lilo-22.1-r2.ebuild :
+ Added new setup function which detects if /boot is mounted or not, in case
+ it's not mounted it will try to do it automatically and in case of a failure
+ exit with an error message.
+
+*lilo-21.7.5-r1 (2 Feb 2002)
+
+ 2 Feb 2002; Donny Davies <woodchip@gentoo.org> lilo-22.1-r1.ebuild:
+ Added several patches from SuSE for animated boot logos.
+
+*lilo-22.1-r1 (1 Feb 2002)
+
+ 1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
+ Added initial ChangeLog which should be updated whenever the package is
+ updated in any way. This changelog is targetted to users. This means that the
+ comments should well explained and written in clean English. The details about
+ writing correct changelogs are explained in the skel.ChangeLog file which you
+ can find in the root directory of the portage repository.
diff --git a/sys-boot/lilo/Manifest b/sys-boot/lilo/Manifest
new file mode 100644
index 000000000000..deef62899062
--- /dev/null
+++ b/sys-boot/lilo/Manifest
@@ -0,0 +1,23 @@
+MD5 0f816d3f9616aa35bcaf3a164dc7596a lilo-22.5.7.2.ebuild 3981
+MD5 ce11862ff79a5e8c516ac9e4ec6cb0ef lilo-22.5.6-r3.ebuild 3722
+MD5 f3f0ffa32cd680466f67e41d37561b36 lilo-22.3.3-r1.ebuild 1998
+MD5 f6a3e348f4f07112145ffb1ef2c977a5 lilo-22.5.8-r1.ebuild 4192
+MD5 17d51bd1048874cfc6b693cf69d65113 lilo-22.5.1.ebuild 4573
+MD5 62c3935ec2e171f4b0e24dc45702c487 lilo-22.5.6-r2.ebuild 3436
+MD5 41063ae0aa3a80bb1a1ca2fd07b9487f lilo-22.5.8.ebuild 4041
+MD5 f8a0ee70d79cdbe758b30d623eb4ee8b lilo-22.3.4.ebuild 2004
+MD5 369a0c5df1179046152a0b7108498329 ChangeLog 6525
+MD5 e6543624c262cae90cc830cde90ad3ae metadata.xml 165
+MD5 ae8d44679d6ad635167141df89108f4a lilo-22.1-r3.ebuild 1581
+MD5 ca44cc6ec0aecfe30c49c455f74aacec files/lilo-22.5.6-glibc233.patch 640
+MD5 00de3473e03e180faad32ed00335cc7b files/digest-lilo-22.1-r3 61
+MD5 93ff7a7535e7c8ff1327db52a3118bef files/digest-lilo-22.3.4 133
+MD5 8e75fea24b47485fd4185b9962745117 files/digest-lilo-22.5.1 63
+MD5 15b1ea46b95a7517e5207c63b2252fe6 files/digest-lilo-22.5.8 63
+MD5 0a868ea4abd215e2181c6c756173b618 files/digest-lilo-22.3.3-r1 133
+MD5 23a4be524696dfdaefa80c1bdac39fc7 files/digest-lilo-22.5.6-r2 63
+MD5 23a4be524696dfdaefa80c1bdac39fc7 files/digest-lilo-22.5.6-r3 63
+MD5 15b1ea46b95a7517e5207c63b2252fe6 files/digest-lilo-22.5.8-r1 63
+MD5 89d3f49772308bc3fb195f51c9ff1035 files/digest-lilo-22.5.7.2 65
+MD5 90ff63638cb8b46b9e6f3c5231bd464e files/lilo.conf 1719
+MD5 a7ac9497dc60c65e1622c310c3512800 files/lilo-22.5.6-animated-menu.patch 29938
diff --git a/sys-boot/lilo/files/digest-lilo-22.1-r3 b/sys-boot/lilo/files/digest-lilo-22.1-r3
new file mode 100644
index 000000000000..cec554c6e99d
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.1-r3
@@ -0,0 +1 @@
+MD5 ba6830b939e6eeaadf450c68c96a42fb lilo-22.1.tar.gz 319754
diff --git a/sys-boot/lilo/files/digest-lilo-22.3.3-r1 b/sys-boot/lilo/files/digest-lilo-22.3.3-r1
new file mode 100644
index 000000000000..70d741659230
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.3.3-r1
@@ -0,0 +1,2 @@
+MD5 12b729c6cc1aeebff5e94380a2eb64d3 lilo-22.3.3.tar.gz 369359
+MD5 7a89b03728e27f79806c567b49fdb6ef lilo-22.3.3-gentoo.diff.bz2 7851
diff --git a/sys-boot/lilo/files/digest-lilo-22.3.4 b/sys-boot/lilo/files/digest-lilo-22.3.4
new file mode 100644
index 000000000000..371519121933
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.3.4
@@ -0,0 +1,2 @@
+MD5 2750f34a84faf2631e57a6076b428298 lilo-22.3.4.tar.gz 369921
+MD5 18fbbc8f5cd0c96355fb4f075d4d8498 lilo-22.3.4-gentoo.diff.bz2 7917
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.1 b/sys-boot/lilo/files/digest-lilo-22.5.1
new file mode 100644
index 000000000000..6bca071889e6
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.1
@@ -0,0 +1 @@
+MD5 246415f158a3f6d5a00f8882c217b600 lilo-22.5.1.tar.gz 382497
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.6-r2 b/sys-boot/lilo/files/digest-lilo-22.5.6-r2
new file mode 100644
index 000000000000..5cd39211f2f0
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.6-r2
@@ -0,0 +1 @@
+MD5 fd85e0cd157e77c1f565dbe649cbaaab lilo-22.5.6.tar.gz 406705
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.6-r3 b/sys-boot/lilo/files/digest-lilo-22.5.6-r3
new file mode 100644
index 000000000000..5cd39211f2f0
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.6-r3
@@ -0,0 +1 @@
+MD5 fd85e0cd157e77c1f565dbe649cbaaab lilo-22.5.6.tar.gz 406705
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.7.2 b/sys-boot/lilo/files/digest-lilo-22.5.7.2
new file mode 100644
index 000000000000..08d2fc4c8d86
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.7.2
@@ -0,0 +1 @@
+MD5 01117bffb9f452796d44ab9c7620901a lilo-22.5.7.2.tar.gz 410234
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.8 b/sys-boot/lilo/files/digest-lilo-22.5.8
new file mode 100644
index 000000000000..c77f9da7dc05
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.8
@@ -0,0 +1 @@
+MD5 3f7a440d198af6715aa3e5b7310e08ef lilo-22.5.8.tar.gz 412078
diff --git a/sys-boot/lilo/files/digest-lilo-22.5.8-r1 b/sys-boot/lilo/files/digest-lilo-22.5.8-r1
new file mode 100644
index 000000000000..c77f9da7dc05
--- /dev/null
+++ b/sys-boot/lilo/files/digest-lilo-22.5.8-r1
@@ -0,0 +1 @@
+MD5 3f7a440d198af6715aa3e5b7310e08ef lilo-22.5.8.tar.gz 412078
diff --git a/sys-boot/lilo/files/lilo-22.5.6-animated-menu.patch b/sys-boot/lilo/files/lilo-22.5.6-animated-menu.patch
new file mode 100644
index 000000000000..abb64c8fbe6a
--- /dev/null
+++ b/sys-boot/lilo/files/lilo-22.5.6-animated-menu.patch
@@ -0,0 +1,1287 @@
+diff -urpN lilo-22.5.6/Makefile lilo-22.5.6.gfx/Makefile
+--- lilo-22.5.6/Makefile 2003-06-30 05:45:19.000000000 +0200
++++ lilo-22.5.6.gfx/Makefile 2003-08-02 16:29:55.000000000 +0200
+@@ -55,7 +55,7 @@ CONFIG=-DBDATA -DDSECS=3 -DEVMS -DIGNORE
+
+ # set the compiler optimization level
+
+-OPT=-O2
++OPT=-O2 -fomit-frame-pointer
+
+
+ # End of configuration variables
+@@ -261,15 +261,15 @@ chain.o: chain.s common.s
+ first.s: first.S read.S lilo.h version.h
+ $(CPP) $(PCONFIG) -DFIRST=0x51f92f79 -o first.s first.S
+
+-second.s: second.S read.S volume.S mapper.S biosdata.S shs3.S bdata.h lilo.h version.h \
++second.s: second.S gfxlogo.S read.S volume.S mapper.S biosdata.S shs3.S bdata.h lilo.h version.h \
+ graph.S menu.S strlen.S bitmap.S display4.S
+ $(CPP) $(PCONFIG) -DTEXT=0x68db3d5c second.S -o second.s
+
+-third.s: second.S read.S volume.S mapper.S biosdata.S bdata.h lilo.h version.h \
++third.s: second.S gfxlogo.S read.S volume.S mapper.S biosdata.S bdata.h lilo.h version.h \
+ graph.S menu.S strlen.S crt.S
+ $(CPP) $(PCONFIG) -DMENU=0x81cba5a8 second.S -o third.s
+
+-bitmap.s: second.S read.S volume.S mapper.S biosdata.S bdata.h lilo.h version.h \
++bitmap.s: second.S gfxlogo.S read.S volume.S mapper.S biosdata.S bdata.h lilo.h version.h \
+ strlen.S bitmap.S display4.S
+ $(CPP) $(PCONFIG) -DBITMAP=0x6fcc6176 second.S -o bitmap.s
+
+diff -urpN lilo-22.5.6/bsect.c lilo-22.5.6.gfx/bsect.c
+--- lilo-22.5.6/bsect.c 2003-06-30 04:34:44.000000000 +0200
++++ lilo-22.5.6.gfx/bsect.c 2003-08-02 16:27:50.000000000 +0200
+@@ -756,6 +756,7 @@ printf("MAX_IMAGES = %d\n", MAX_IMAGES);
+ die("%s is too big (> %d bytes)",message,i);
+ param2.msg_len = bitmap ? (st.st_size+15)/16 : st.st_size;
+ map_begin_section();
++ if(!bitmap)param2.msg_len = st.st_size > 0xffff ? 0xffff : st.st_size;
+ #ifndef LCF_UNIFY
+ map_add(&geo,0,((st.st_size)+SECTOR_SIZE-1)/SECTOR_SIZE);
+ #else
+@@ -1045,6 +1046,7 @@ if (image) { /* long section specific to
+ else if (!strcasecmp(vga,"ext") || !strcasecmp(vga,"extended"))
+ descr->vga_mode = EXTENDED_VGA;
+ else if (!strcasecmp(vga,"ask")) descr->vga_mode = ASK_VGA;
++ else if (!strcasecmp(vga,"inst")) descr->vga_mode = INST_VGA;
+ else descr->vga_mode = to_number(vga);
+ #endif
+ }
+diff -urpN lilo-22.5.6/geometry.c lilo-22.5.6.gfx/geometry.c
+--- lilo-22.5.6/geometry.c 2003-06-29 20:52:10.000000000 +0200
++++ lilo-22.5.6.gfx/geometry.c 2003-08-02 16:27:50.000000000 +0200
+@@ -26,6 +26,21 @@ source directory.
+
+ #include <string.h>
+
++#include <linux/kdev_t.h> /* for major and minor macros */
++#ifndef BMAP_IOCTL
++# define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
++#endif
++#ifndef FIBMAP
++# define FIBMAP _IO(0x00,1) /* bmap access */
++#endif
++#ifndef FIGETBSZ
++# define FIGETBSZ _IO(0x00,2)
++#endif
++
++#include <sys/statfs.h>
++#include <linux/fd.h> /* for fdgetprm */
++#include <linux/hdreg.h> /* for hdio_getgeo */
++
+ #include "config.h"
+ #include "lilo.h"
+ #include "common.h"
+@@ -594,6 +609,14 @@ void geo_query_dev(GEOMETRY *geo,int dev
+ geo->start = hdprm.start;
+ break;
+
++ case MAJOR_LOOP:
++ geo->device = 0;
++ geo->heads = 2;
++ geo->cylinders = 80;
++ geo->sectors = 18;
++ geo->start = 0;
++ break;
++
+ default:
+ die("Sorry, don't know how to handle device 0x%04x",device);
+ }
+diff -urpN lilo-22.5.6/gfxlogo.S lilo-22.5.6.gfx/gfxlogo.S
+--- lilo-22.5.6/gfxlogo.S 1970-01-01 02:00:00.000000000 +0200
++++ lilo-22.5.6.gfx/gfxlogo.S 2003-08-02 16:27:50.000000000 +0200
+@@ -0,0 +1,569 @@
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; gfx stuff
++;
++; Patch re-adapted and slightly edited from lilo-22.3.4
++; For problems write me: quequero@bitchx.it
++; Quequero
++;
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++
++; != 0 -> everything is fine
++gfx_ok: .byte 0
++
++; we need it at some point
++gfx_tmp: .word 0
++
++; the memory area we are working with
++gfx_mem: .long 0 ; linear address
++gfx_mem_max: .long 0 ; end address
++gfx_mem_free: .long 0 ; start of free area for malloc (after pcx image)
++
++; interface to loadable gfx extension (seg:ofs values)
++gfx_bc_jt: .long 0
++
++gfx_bc_init: .long 0
++gfx_bc_done: .long 0
++gfx_bc_input: .long 0
++gfx_bc_menu_init: .long 0
++gfx_bc_infobox_init: .long 0
++gfx_bc_infobox_done: .long 0
++gfx_bc_progress_init: .long 0
++gfx_bc_progress_done: .long 0
++gfx_bc_progress_update: .long 0
++gfx_bc_progress_limit: .long 0
++gfx_bc_password_init: .long 0
++gfx_bc_password_done: .long 0
++
++; system config data
++gfx_sysconfig:
++gfx_sc_vmode: .byte 0
++gfx_sc_modes: .byte 0
++gfx_bootloader: .byte 0
++
++gfx_password_buf: .blkb 32
++gfx_msg_wrong_image: .ascii "Could not find kernel image: "
++ .byte 0
++gfx_msg_wrong_password: .ascii "Sorry, incorrect password."
++ .byte 0
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; I really have no idea how to get as86 to do this properly
++
++ macro farcall
++ .byte 0xff
++ .byte 0x1e
++ .word ?1
++ mend
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_get_sysconfig:
++ xor ax,ax
++ ret
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_set_sysconfig:
++ ret
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; Initialize graphics code. Load and display graphics data.
++;
++; edi file length
++;
++; return: [gfx_ok] = 0/1
++;
++gfx_init:
++ push es
++
++ cld
++
++ mov byte gfx_ok,#0
++
++ ; no gfx if we use a serial line
++ seg fs
++ cmp byte par2_port+SSDIFF,#0
++ jnz near gfx_init_90
++
++ ; define our memory area
++ ; gfx_mem _must_ be 16-byte aligned
++ mov dword gfx_mem,#0x10000
++ add edi,gfx_mem
++ mov gfx_mem_free,edi
++ mov dword gfx_mem_max,#0x80000
++
++ sub edi,gfx_mem_max
++ neg edi
++ cmp edi,#0x1000 ; we need some minimum space
++ jc near gfx_init_80
++
++ ; align 4
++ mov eax,gfx_mem_free
++ add eax,#3
++ and eax,#~3
++ mov gfx_mem_free,eax
++
++ push dword gfx_mem
++ call gfx_l2so
++ pop bx
++ pop es
++
++ seg es
++ cmp dword (bx),#0x0b2d97f00 ; header.magic_id
++ jnz near gfx_init_80
++ seg es
++ mov al,(bx+4) ; header.version
++ cmp al,#1
++ jb near gfx_init_80
++ cmp al,#2
++ ja near gfx_init_80
++
++ seg es
++ mov eax,(bx+8)
++ or eax,eax
++ jz near gfx_init_80
++ add eax,gfx_mem
++ test al,#0xf
++ jnz near gfx_init_80
++ shr eax,4
++ mov gfx_bc_jt+2,ax
++
++
++ ; setup jump table
++ les bx,gfx_bc_jt
++
++ seg es
++ mov ax,(bx)
++ mov gfx_bc_init,ax
++ mov gfx_bc_init+2,es
++
++ seg es
++ mov ax,(bx+2)
++ mov gfx_bc_done,ax
++ mov gfx_bc_done+2,es
++
++ seg es
++ mov ax,(bx+4)
++ mov gfx_bc_input,ax
++ mov gfx_bc_input+2,es
++
++ seg es
++ mov ax,(bx+6)
++ mov gfx_bc_menu_init,ax
++ mov gfx_bc_menu_init+2,es
++
++ seg es
++ mov ax,(bx+8)
++ mov gfx_bc_infobox_init,ax
++ mov gfx_bc_infobox_init+2,es
++
++ seg es
++ mov ax,(bx+10)
++ mov gfx_bc_infobox_done,ax
++ mov gfx_bc_infobox_done+2,es
++
++ seg es
++ mov ax,(bx+12)
++ mov gfx_bc_progress_init,ax
++ mov gfx_bc_progress_init+2,es
++
++ seg es
++ mov ax,(bx+14)
++ mov gfx_bc_progress_done,ax
++ mov gfx_bc_progress_done+2,es
++
++ seg es
++ mov ax,(bx+16)
++ mov gfx_bc_progress_update,ax
++ mov gfx_bc_progress_update+2,es
++
++ seg es
++ mov ax,(bx+18)
++ mov gfx_bc_progress_limit,ax
++ mov gfx_bc_progress_limit+2,es
++
++ seg es
++ mov ax,(bx+20)
++ mov gfx_bc_password_init,ax
++ mov gfx_bc_password_init+2,es
++
++ seg es
++ mov ax,(bx+22)
++ mov gfx_bc_password_done,ax
++ mov gfx_bc_password_done+2,es
++
++ mov eax,gfx_mem
++ mov ebx,gfx_mem_free
++ mov ecx,gfx_mem_max
++ mov dx,cs
++ mov si,#gfx_sysconfig
++
++ ; eax memory start
++ ; ebx free memory start
++ ; ecx memory end
++ ; dx boot loader code segment
++ ; si gfx_sysconfig offset
++
++ farcall(gfx_bc_init)
++
++ jc gfx_init_80
++
++ mov byte gfx_ok,#1
++
++ jmp gfx_init_90
++
++gfx_init_80:
++ mov byte gfx_ok,#0
++gfx_init_90:
++ pop es
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; Back to text mode.
++;
++; return: [gfx_ok] = 0
++;
++gfx_done:
++ cmp byte gfx_ok,#0
++ jz gfx_done_90
++ farcall(gfx_bc_done)
++ mov byte gfx_ok,#0
++ call gfx_set_sysconfig
++gfx_done_90:
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_input:
++ cmp byte gfx_ok,#0
++ jz gfx_input_90
++ call gfx_get_sysconfig
++
++ mov ax,#0xffff
++ seg fs
++ xchg ax,par2_timeout
++
++ ; map 0xffff -> 0
++ add ax,#1
++ cmc
++ sbb ax,#0
++
++gfx_input_20:
++ mov di,#cmdline
++ mov cx,#CL_LENGTH
++
++ ; di buffer ( 0 --> no buffer )
++ ; cx buffer size
++ ; ax timeout value (0 --> no timeout)
++
++ farcall(gfx_bc_input)
++
++ pushf
++ call gfx_set_sysconfig
++ popf
++ jnc gfx_input_50
++ mov ax,#1
++gfx_input_50:
++ cmp ax,#1
++ jz gfx_input_80
++
++ call find_boot_image
++ jnc gfx_input_90
++
++ mov si,#gfx_msg_wrong_image
++ mov di,#cmdline
++
++ mov al,#0
++ call gfx_infobox
++
++ xor ax,ax
++ jmp gfx_input_20
++gfx_input_80:
++ push ax
++ call gfx_done
++ pop ax
++gfx_input_90:
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_setup_menu:
++ cmp byte gfx_ok,#0
++ jz gfx_setup_menu_90
++
++ mov si,#DESCR0
++ mov di,si
++ xor ax,ax
++ mov cx,#IMAGES
++gfx_setup_menu_20:
++ cmp byte (si),#0
++ jz gfx_setup_menu_30
++ inc ax
++ add si,#id_size
++ loop gfx_setup_menu_20
++gfx_setup_menu_30:
++ mov si,di
++ mov dx,#id_size
++
++ ; al menu entries
++ ; dx menu entry size
++ ; di menu entry list
++ ; si default menu entry
++
++ farcall(gfx_bc_menu_init)
++gfx_setup_menu_90:
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_infobox:
++ pushad
++ cmp byte gfx_ok,#0
++ jz gfx_infobox_90
++ farcall(gfx_bc_infobox_init)
++ xor di,di
++ xor ax,ax
++ farcall(gfx_bc_input)
++ farcall(gfx_bc_infobox_done)
++gfx_infobox_90:
++ popad
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_progress_init:
++ pushad
++ cmp byte gfx_ok,#0
++ jz gfx_progress_init_90
++ movzx eax,ax
++ farcall(gfx_bc_progress_init)
++gfx_progress_init_90:
++ popad
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_progress_done:
++ pushad
++ cmp byte gfx_ok,#0
++ jz gfx_progress_done_90
++ farcall(gfx_bc_progress_done)
++gfx_progress_done_90:
++ popad
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_progress_update:
++ pushad
++ cmp byte gfx_ok,#0
++ jz gfx_progress_update_90
++ movzx eax,cx
++ farcall(gfx_bc_progress_update)
++gfx_progress_update_90:
++ popad
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++gfx_progress_limit:
++ pushad
++ cmp byte gfx_ok,#0
++ jz gfx_progress_limit_90
++ movzx eax,ax
++ farcall(gfx_bc_progress_limit)
++gfx_progress_limit_90:
++ popad
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; ds:di image descr
++;
++gfx_password:
++ push es
++ pushad
++ cmp byte gfx_ok,#0
++ stc
++ jz gfx_password_90
++ push di
++ mov si,#gfx_password_buf ; not used
++ farcall(gfx_bc_password_init)
++ mov di,#gfx_password_buf
++ mov cx,#32
++ xor ax,ax
++ farcall(gfx_bc_input)
++ mov si,#gfx_password_buf
++ farcall(gfx_bc_password_done)
++ pop di
++ call check_password
++ jnc gfx_password_90
++ mov si,#gfx_msg_wrong_password
++ xor di,di
++ mov al,#0
++ farcall(gfx_bc_infobox_init)
++ xor di,di
++ xor ax,ax
++ farcall(gfx_bc_input)
++ farcall(gfx_bc_infobox_done)
++ stc
++gfx_password_90:
++ popad
++ pop es
++ ret
++
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; Convert 32bit linear address to seg:ofs.
++;
++; dword [esp + 2]: linear address
++;
++; return:
++; dword [esp + 2]: seg:ofs
++;
++; Notes:
++; - changes no regs
++;
++gfx_l2so:
++ push eax
++ mov eax,(esp + 6)
++ shr eax,4
++ mov (esp + 8),ax
++ and word (esp + 6),#0xf
++ pop eax
++ ret
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; locate the boot image
++;
++; return:
++; bx boot image index
++; CF error (image not found)
++;
++find_boot_image:
++ mov dx,#DESCR0
++ mov cx,#IMAGES
++
++ xor bx,bx
++
++find_boot_image_10:
++ mov si,dx
++ mov di,#cmdline
++find_boot_image_20:
++ mov al,(si)
++ or al,al
++ jz find_boot_image_60
++ cmp al,(di)
++ jnz find_boot_image_30
++ inc si
++ inc di
++ jmp find_boot_image_20
++find_boot_image_30:
++ inc bx
++ add dx,#id_size
++ cmp bx,cx
++ jb find_boot_image_10
++ ; not found, strip options for fancy error message
++
++ mov si,#cmdline
++ mov cx,#MAX_IMAGE_NAME+1
++find_boot_image_40:
++ cmp byte (si),#0x20+1
++ inc si
++ jb find_boot_image_50
++ loop find_boot_image_40
++find_boot_image_50:
++ mov byte (si-1),#0
++ jmp find_boot_image_80
++find_boot_image_60:
++ mov al,(di)
++ cmp al,#0x20
++ ja find_boot_image_30
++ imul bx,bx,#id_size
++ add bx,#DESCR0
++ jmp find_boot_image_90
++find_boot_image_80:
++ stc
++find_boot_image_90:
++ ret
++
++; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++;
++; ds:di image descr
++;
++; CF = 0: password valid
++;
++check_password:
++#if defined(SHS_PASSWORDS)
++ mov bp,di
++ mov di,#gfx_password_buf
++ mov si,di
++ push ds
++ pop es
++ mov cx,#32 - 1
++ xor al,al
++ repne
++ scasb
++ sub cx,#32 - 1
++ not cx
++ mov bx,cx
++
++ push ss
++ pop es
++ mov cx,#32
++ sub sp,cx
++ mov di,sp
++ rep
++ movsb
++ mov si,sp
++
++ push bp
++
++ push bx ; length
++ push si ; ss:si password
++ call _shsInit
++ call _shsUpdate
++ call _shsFinal
++ pop si
++ pop bx
++
++ pop di
++
++ add di,#id_password_crc
++ mov si,#shs_digest
++ mov cx,#MAX_PW_CRC*4
++ push ds
++ pop es
++ repe
++ cmpsb
++ je check_pw_50
++ inc cx
++check_pw_50:
++ add sp,#32
++ pushad ; clear password buffer
++ mov di,#gfx_password_buf
++ mov cx,#32
++ xor al,al
++ rep
++ stosb
++ popad
++ cmp cx,#1
++ cmc
++#endif
++ ret
++
+diff -urpN lilo-22.5.6/lilo.c lilo-22.5.6.gfx/lilo.c
+--- lilo-22.5.6/lilo.c 2003-06-30 05:13:13.000000000 +0200
++++ lilo-22.5.6.gfx/lilo.c 2003-08-02 16:27:50.000000000 +0200
+@@ -241,6 +241,9 @@ static void show_images(char *map_file)
+ case ASK_VGA:
+ printf("ASK\n");
+ break;
++ case INST_VGA:
++ printf("INST\n");
++ break;
+ default:
+ printf("%d (0x%04x)\n",
+ descrs.d.descr[image].vga_mode,
+diff -urpN lilo-22.5.6/lilo.h lilo-22.5.6.gfx/lilo.h
+--- lilo-22.5.6/lilo.h 2003-06-30 05:46:30.000000000 +0200
++++ lilo-22.5.6.gfx/lilo.h 2003-08-02 16:27:50.000000000 +0200
+@@ -61,6 +61,7 @@ source directory.
+ #define MAJMIN_RAM 0x101 /* RAM disk */
+ #define MAJOR_FD 2 /* floppy disks */
+ #define MAJOR_HD 3 /* IDE-type hard disks */
++#define MAJOR_LOOP 7 /* loop device */
+ #define MAJOR_SD 8 /* SCSI disks 0-15 */
+ #define MAJOR_MD 9 /* multi-disk RAID sets */
+ #define MAJOR_XT 13 /* XT-type hard disks */
+@@ -273,13 +274,14 @@ source directory.
+
+
+ #define VGA_NOCOVR 0x8000 /* VGA setting not overridden on command line */
++#define INST_VGA 0xfff0 /* test for framebuffer at vga=771 */
+
+ #define SER_DFL_PRM 0xa3 /* default serial parameters: 2400n8 */
+
+ #define DC_MAGIC 0xf4f2 /* magic number of default cmd. line sector */
+ #define DC_MGOFF 0x6b6d /* magic number for disabled line */
+
+-#define MAX_MESSAGE 65535 /* maximum message length */
++#define MAX_MESSAGE 8*64*1024-1 /* maximum message length (512k) */
+ #define MAX_MENU_TITLE 37 /* maximum MENU title length */
+
+ #define NEW_HDR_SIG "HdrS" /* setup header signature */
+diff -urpN lilo-22.5.6/partition.c lilo-22.5.6.gfx/partition.c
+--- lilo-22.5.6/partition.c 2003-06-15 00:49:51.000000000 +0200
++++ lilo-22.5.6.gfx/partition.c 2003-08-02 16:27:50.000000000 +0200
+@@ -22,7 +22,14 @@ source directory.
+ #include <sys/types.h>
+ #include <asm/unistd.h>
+ #include <limits.h>
+-/*#include <linux/fs.h>*/
++
++#if 0
++# define _LINUX_STRING_H_
++# include <linux/fs.h>
++#else
++# include <linux/kdev_t.h>
++#endif
++
+ #include <time.h>
+ #include "config.h"
+ #include "lilo.h"
+diff -urpN lilo-22.5.6/second.S lilo-22.5.6.gfx/second.S
+--- lilo-22.5.6/second.S 2003-06-30 04:01:03.000000000 +0200
++++ lilo-22.5.6.gfx/second.S 2003-08-02 16:36:49.000000000 +0200
+@@ -614,7 +614,9 @@ extp: BEG_FS
+ seg es
+ cmp byte ptr (si),#0 ! empty ?
+ je iloop ! yes -> enter interactive mode
+- jmp niloop ! enter non-interactive mode
++
++niloop0:
++ br niloop ! enter non-interactive mode
+
+ ! No external parameters after timeout -> boot first image
+
+@@ -622,7 +624,7 @@ noex: push cs ! restore ES
+ pop es
+ mov si,#DFLCMD+2 ! default command line ?
+ cmp byte ptr (si),#0
+- jne niloop ! yes -> use it
++ jne niloop0 ! yes -> use it
+ mov ax,nodfl ! no idea how to tell as86 to do jmp (addr) :-(
+ jmp ax ! fall through
+
+@@ -630,16 +632,23 @@ noex: push cs ! restore ES
+ ! Command input processor
+
+ iloop:
+-#if defined(MENU) || defined(BITMAP)
++#ifdef BITMAP
+ call menu_setup
+ #endif
+
+ #ifndef BITMAP
++ cmp byte gfx_ok,#0
++ jnz iloop_gfx
++
++ ; load message before doing anything else
++ ; the graphics/text stuff is mixed in a rather messy way...
++
+ ;; BEG_FS
+ ;; SEG_FS ! message disabled ?
+ cmp word ptr par2_msg_len,#0 ;MSG_OFF+SSDIFF,#0
+ ;; END_FS
+- je nomsg ! yes -> skip this
++ ; _must_ be 'jz'!
++ jz iloop_20 ! yes -> skip this
+ call crlf
+ ;BEG_FS
+ ;SEG_FS ! load the message file
+@@ -653,13 +662,91 @@ iloop:
+ call sread
+ call loadfile
+
++; es:bx points to file end
++ movzx ebx,bx
++ xor edi,edi
++ mov di,es
++ shl edi,4
++ add edi,ebx
++ sub edi,#SYSSEG * 16
++
++ ; edi -> message file size
++
+ xor bx,bx ! set the terminating NUL and disable further
+ ! messages
+ xchg bx,par2_msg_len ;MSG_OFF+SSDIFF
+
+ push #SYSSEG
+ pop ds
+- mov byte ptr (bx),#0
++
++
++ cmp dword ptr 0,#0x0b2d97f00 ; magic header
++ ; _must_ be 'jnz'!
++ jnz iloop_10
++
++ push cs
++ pop ds
++
++ ; graphical message
++
++ call gfx_init
++ push cs
++ pop es
++ cmp byte gfx_ok,#0
++ jz iloop
++ call gfx_setup_menu
++iloop_gfx:
++ push cs
++ pop es
++ call gfx_input
++ cmp ax,#1
++ jz iloop ; text mode
++ mov gfx_tmp,bx
++ jmp near scan_cmdline
++
++ ; normal text message
++iloop_10:
++ ; keep the zero flag!
++ mov byte ptr (bx),#0
++ push cs
++ pop ds
++
++iloop_20:
++#ifdef MENU
++ pushf
++ call menu_setup
++ popf
++#endif
++ jnz totxt
++ mov ax,showit
++ mov dx,showit+2
++ mov bx,ax
++ or bx,dx
++ jz iloop_40
++ push ds
++ shl dx,12
++ mov bx,ax
++ and bx,#0xf
++ shr ax,4
++ add ax,dx
++ add ax,#SYSSEG
++ mov ds,ax
++ call say
++ pop ds
++ xor ax,ax
++ mov showit,ax
++ mov showit+2,ax
++iloop_40:
++
++ jmp nomsg
++
++showit:
++ .long 0
++
++totxt:
++ push #SYSSEG
++ pop ds
++
+ xor bx,bx ! display the message
+ call say
+
+@@ -695,12 +782,6 @@ input: seg es ! interactive mode ?
+ mov al,(si)
+ inc si
+ jmp gotinp ! go on
+-
+-tolist:
+-#ifdef BITMAP
+- call menu_exit
+-#endif
+- br list ! ...
+
+ kbinp: mov cx,#brto ! get a key
+ call getkey
+@@ -727,8 +808,6 @@ gotinp: cmp al,#9 ! TAB ?
+ je nul ! yes -> go on
+ cmp al,#8 ! BS ?
+ je todelch ! yes -> erase one character
+- cmp al,#13 ! CR ?
+- je cr ! yes -> go on
+ cmp al,#127 ! DEL ?
+ je todelch ! yes -> erase one character
+ ja input ! non-printable -> ignore it
+@@ -736,6 +815,8 @@ gotinp: cmp al,#9 ! TAB ?
+ je todell ! yes -> erase the line
+ cmp al,#24 ! ^X ?
+ je todell ! yes -> erase the line
++ cmp al,#13 ! CR ?
++ je cr ! yes -> go on
+ cmp al,#32 ! ignore non-printable characters except space
+ jb input
+ ja noblnk ! no space -> go on
+@@ -778,6 +859,11 @@ sknext: add di,#id_size ! test next entr
+
+ todelch:br delch ! ...
+ todell: br delline ! ...
++tolist:
++#ifdef BITMAP
++ call menu_exit
++#endif
++ br list ! ...
+
+ ! End of input, process the command line
+
+@@ -819,6 +905,7 @@ cpsav: lodsb ! copy one byte
+ or al,al ! at end ?
+ jnz cpsav ! no -> go on
+
++scan_cmdline:
+ cmp bx,#cmdline ! empty line ?
+ je notrspc ! yes -> boot first image
+ cmp byte ptr (bx-1),#32 ! trailing space ?
+@@ -876,6 +963,11 @@ vsknb:
+ je chkvga ! yes -> look for options again
+ or al,al ! at end ?
+ jnz vsknb ! no -> go on
++
++ mov bx,gfx_tmp
++ cmp byte gfx_ok,#0
++ jnz near boot
++
+ call crlf ! write CR/LF
+ cmp di,#cmdline+1 ! empty line ?
+ emptyl: je bfirst ! yes -> boot first image
+@@ -1087,6 +1179,16 @@ dopw:
+ ;; SEG_FS
+ mov word ptr par2_timeout,#0xffff ; cancel timeout
+ ;; END_FS
++
++ cmp byte gfx_ok,#0
++ jz dopw_nogfx
++ mov di,bx
++ call gfx_password
++ pop bx
++ jnc toboot
++ jmp near iloop
++dopw_nogfx:
++
+ mov bx,#msg_pw ! display a prompt
+ call say
+
+@@ -1257,7 +1359,8 @@ pwcleanup:
+ pop bp
+ pop bx
+ or cx,cx ; test CX==0 means all okay
+- jz doboot
++ jnz pwfail
++ br doboot
+ ; fall into pwfail
+
+ #else
+@@ -1314,16 +1417,158 @@ pwcr: call crlf
+ or cl,cl ! no errors ?
+ jnz pwfail ! no -> fail
+ cmp byte ptr (si),#0 ! at end ?
+- je doboot ! yes -> continue booting
++ jne pwfail ! yes -> continue booting
++ br doboot
++
+ #endif /* CRC_PASSWORDS */
+
+ pwfail: mov bx,#msg_pf ! display an error message
+ call say
+ br iloop ! get next input
+
++! Test if the monitor can display a vga mode
++! mode in ax, returns ax if success, otherwise 0
++montest:
++ push es
++ push di
++ push bx
++ push cx
++ push dx
++ push ax
++ push #0
++ pop es
++ mov di,#0xfc00
++ xor cx,cx
++ seg es
++ mov 0xfc23,cx
++ xor dx,dx
++ mov bx,#1
++ mov ax,#0x4f15
++ int 0x10
++ cmp ax,#0x4f
++ pop ax
++ jnz monno
++ mov bx,ax
++ sub bx,#0x100
++ cmp bx,#0x1c
++ jnb monno
++ seg cs
++ mov bl,monbits(bx)
++ xor bh,bh
++ seg es
++ mov cx,0xfc23
++ or cx,cx
++ jnz nofsc
++ call fscscan
++nofsc: and cl,#0xfe
++ bt cx,bx
++ jc monok
++monno: xor ax,ax
++monok: pop dx
++ pop cx
++ pop bx
++ pop di
++ pop es
++ ret
++
++monbits:
++ .byte 5,5,9,9,14,14,15,15,0,0,0,0,0,0,0,0
++ .byte 5,5,5,9,9,9,14,14,14,15,15,15
++
++! return in cx the bits for FSC notebooks.
++fscscan:
++ push ds
++ push si
++ push di
++ push ax
++ push bx
++ push #0xf000
++ pop ds
++ xor di,di
++fscnn: cmp dword ptr (di),#0x696a7546
++ jnz fscn
++ cmp dword ptr 4(di),#0x20757374
++ jnz fscn
++ mov cx,#0x20
++ xor bx,bx
++ mov si,di
++fscsig: lodsb
++ add bl,al
++ dec cx
++ jnz fscsig
++ or bl,bl
++ jnz fscn
++ mov al,23(di)
++ and al,#0xf0
++ jnz fscbad
++ mov bl,21(di)
++ and bx,#0xf0
++ shr bx,#3
++ seg cs
++ mov cx,fscbits(bx)
++ jmp fscok
++fscn: add di,#0x10
++ jnz fscnn
++fscbad: xor cx,cx
++fscok: pop bx
++ pop ax
++ pop di
++ pop si
++ pop ds
++ ret
++
++fscbits:
++ .word 0,0x0020,0x0200,0x4000,0x8000,0x8000,0,0
++ .word 0x8000,0,0,0,0,0,0,0
++
++! Test if the driver can display a vga mode
++! mode in ax, returns ax if success, otherwise 0
++vgatest:
++ push es
++ push di
++ push bx
++ push cx
++ push dx
++ push ax
++ push #0
++ pop es
++ mov cx,ax
++ xor ax,ax
++ seg es
++ mov 0xfc00+0x28,ax
++ seg es
++ mov 0xfc00+0x2a,ax
++ mov di,#0xfc00
++ mov ax,#0x4f01
++ int 0x10
++ cmp ax,#0x4f
++ jnz vgano
++ seg es
++ mov ax,0xfc00
++ and ax,#0x99
++ cmp ax,#0x99
++ jnz vgano
++ seg es
++ mov ax,0xfc00+0x28
++ seg es
++ or ax,0xfc00+0x2a
++ jz vgano
++ pop ax
++ jmp vgayes
++vgano: pop ax
++ xor ax,ax
++vgayes: pop dx
++ pop cx
++ pop bx
++ pop di
++ pop es
++ ret
++
+ ! Boot the image BX points to
+
+-doboot: mov byte ptr prechr,#61 ! switch to equal sign
++doboot:
++ call gfx_done
++ mov byte ptr prechr,#61 ! switch to equal sign
+ push bx ! save image descr
+ mov bx,#msg_l ! say hi
+ call say
+@@ -1478,8 +1723,36 @@ cpdone:
+ jmp vgaset
+ vganorm:test bx,#FLAG_VGA
+ jz novga
+-vgaset: seg es
+- mov [VGA_SET],ax ! magic offset in the boot sector
++vgaset:
++#ifdef NORMAL_VGA
++ cmp ax,#INST_VGA
++ jnz vganoi
++ mov ax,#0x117
++ call vgatest
++ or ax,ax
++ jz vga2
++ call montest
++ or ax,ax
++ jnz vga3
++vga2:
++ mov ax,#0x114
++ call vgatest
++ or ax,ax
++ jz vga4
++ call montest
++ or ax,ax
++ jnz vga3
++vga4:
++ mov ax,#0x101
++ call vgatest
++ or ax,ax
++ jnz vga3
++ mov ax,#NORMAL_VGA-0x0200
++vga3:
++ add ax,#0x200
++#endif
++vganoi: seg es
++ mov [VGA_SET],ax ! magic offset in the boot sector
+ novga: push bx ! use flags (BX) later
+ test bx,#FLAG_LOCK ! ... lock target ?
+ jnz lockit ! yup -> do it
+@@ -1492,8 +1765,8 @@ lockit:
+ push es
+ push si
+
+- push ds ;
+- pop es ;
++ push ds ;
++ pop es ;
+ call cmd_write ; write out the command line
+
+ pop si
+@@ -1506,7 +1779,7 @@ nolock:
+ #endif
+ xor cx,cx
+ seg es
+- add cl,[VSS_NUM]
++ add cl,[VSS_NUM]
+ ;;; or cx,cx
+ jnz lsetup
+ mov cl,#SETUPSECS ! default is to load four sectors
+@@ -3246,6 +3519,8 @@ vganum: pop si ! get SI
+ jmp vgaput1
+ #else
+ xor cx,cx
++ mov bh,ch
++ mov bl,#10 ; bx: base (_not_ bl!)
+ mov ah,cl
+ test byte ptr (si),#0xff ! no value ?
+ jz vgaerr ! yes -> error
+@@ -3254,17 +3529,45 @@ vgadig: lodsb ! get the next character
+ jz vgaput ! yes -> done
+ cmp al,#32
+ je vgaput
+- cmp al,#48 ! is it a digit ? (0x30=48="0")
+- jb vgaerr ! no -> error
+- cmp al,#57 ! 57=0x39="9"
+- ja vgaerr
+- sub al,#48 ! cx = cx*10+al-'0'
+- imul cx,#10
++ cmp al,#0x61
++ jb vgadig_10
++ sub al,#0x20 ; upper case
++vgadig_10:
++ or cx,cx
++ jnz vgadig_20
++ cmp al,#0x58
++ jnz vgadig_20
++ mov bl,#16 ; hex
++ jmp vgadig
++vgadig_20:
++ cmp al,#0x3a
++ jb vgadig_30
++ sub al,#7
++vgadig_30:
++ sub al,#0x30
++ jb vgaerr ; not a digit
++ cmp al,bl
++ jae vgaerr ; larger than current base
++ imul cx,bx
++
+ add cx,ax
+ jnc vgadig ! next one
+ #endif
+
+-vgaerr: mov bx,#msg_v ! display an error message
++vgaerr:
++ mov bx,#msg_v ! display an error message
++ cmp byte gfx_ok,#0
++ jz vgaerr_txt
++ lea si,(bx+1) ; skip initial NL
++ xor di,di
++ mov al,#0
++ mov msg_v1,al ; drop final NL
++ call gfx_infobox
++ mov byte msg_v1,#10 ; put it back
++ stc
++ ret
++vgaerr_txt:
++
+ call say
+ /* ifdef HIGHMEM_MAX */
+ xor eax,eax
+@@ -3285,6 +3588,9 @@ vgatab:
+ .ascii "EXT"
+ .byte 0
+ .word NORMAL_VGA
++ .byte 0
++ .word INST_VGA
++ .ascii "INST"
+ .ascii "NORMAL"
+ .byte 0
+ #endif
+@@ -3365,7 +3671,9 @@ getmem:
+ inc si ! skip '@'
+ call get_K
+ pop edx ! restore size
+- jc memerr
++;;; jc memerr
++ je gmmull
++ br s2lbad
+ cmp eax,#1024 ! start : 1meg
+ ja gmcopy ! just copy if above
+ add eax,edx ! EAX = hma/1024
+@@ -3375,7 +3683,9 @@ gm22:
+ or bl,#0x20
+ cmp bl,#0x20 ! NUL or SPACE
+ #if 0
+- jne memerr
++;;; jne memerr
++ je gmmull
++ br s2lbad
+ #else
+ jne gmcopy ! allow <size>#<start> and <size>$<start>
+ #endif
+@@ -3387,6 +3697,7 @@ gmret: ret
+ gmnocopy: pop bx
+ ret
+
++#include "gfxlogo.S"
+
+ memerr:
+ mov bx,#msg_me ! numeric conversion error
+@@ -3588,8 +3899,8 @@ msg_pf: .ascii "Sorry."
+
+ msg_v: .byte 10
+ .ascii "Valid vga values are ASK, NORMAL, EXTENDED or a "
+- .ascii "decimal number."
+- .byte 10,0
++ .ascii "number."
++msg_v1: .byte 10,0
+
+ msg_pks:.byte 10
+ .ascii "Invalid hexadecimal number. - Ignoring remaining items."
diff --git a/sys-boot/lilo/files/lilo-22.5.6-glibc233.patch b/sys-boot/lilo/files/lilo-22.5.6-glibc233.patch
new file mode 100644
index 000000000000..96d582d418e8
--- /dev/null
+++ b/sys-boot/lilo/files/lilo-22.5.6-glibc233.patch
@@ -0,0 +1,24 @@
+--- lilo-22.5.6/boot.c 2003-08-03 21:02:55.000000000 +0200
++++ lilo-22.5.6.glibc233/boot.c 2003-08-03 21:03:17.000000000 +0200
+@@ -18,6 +18,9 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <a.out.h>
++#ifndef PAGE_SIZE
++# include <asm/page.h>
++#endif
+ #include <sys/stat.h>
+
+ #include "config.h"
+--- lilo-22.5.6/partition.c 2003-08-03 21:03:33.000000000 +0200
++++ lilo-22.5.6.glibc233/partition.c 2003-08-03 21:03:56.000000000 +0200
+@@ -18,6 +18,9 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <a.out.h>
++#ifndef PAGE_SIZE
++# include <asm/page.h>
++#endif
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <asm/unistd.h>
diff --git a/sys-boot/lilo/files/lilo.conf b/sys-boot/lilo/files/lilo.conf
new file mode 100644
index 000000000000..5daef1972871
--- /dev/null
+++ b/sys-boot/lilo/files/lilo.conf
@@ -0,0 +1,73 @@
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/files/lilo.conf,v 1.1 2003/12/09 08:12:34 seemant Exp $
+# Author: Ultanium
+
+#
+# Start LILO global section
+#
+
+# Faster, but won't work on all systems:
+#compact
+# Should work for most systems, and do not have the sector limit:
+lba32
+# If lba32 do not work, use linear:
+#linear
+
+# MBR to install LILO to:
+boot = /dev/hda
+map = /boot/.map
+
+# If you are having problems booting from a hardware raid-array
+# or have a unusual setup, try this:
+#disk=/dev/ataraid/disc0/disc bios=0x80 # see this as the first BIOS disk
+#disk=/dev/sda bios=0x81 # see this as the second BIOS disk
+#disk=/dev/hda bios=0x82 # see this as the third BIOS disk
+
+# Here you can select the secondary loader to install. A few
+# examples is:
+#
+# boot-text.b
+# boot-menu.b
+# boot-bmp.b
+#
+install = /boot/boot-menu.b # Note that for lilo-22.5.5 or later you
+ # do not need boot-{text,menu,bmp}.b in
+ # /boot, as they are linked into the lilo
+ # binary.
+
+menu-scheme=Wb
+prompt
+# If you always want to see the prompt with a 15 second timeout:
+#timeout=150
+delay = 50
+# Normal VGA console
+vga = normal
+# VESA console with size 1024x768x16:
+#vga = 791
+
+#
+# End LILO global section
+#
+
+#
+# Linux bootable partition config begins
+#
+image = /boot/bzImage
+ root = /dev/hda3
+ #root = /devices/discs/disc0/part3
+ label = Gentoo
+ read-only # read-only for checking
+#
+# Linux bootable partition config ends
+#
+
+#
+# DOS bootable partition config begins
+#
+other = /dev/hda1
+ #other = /devices/discs/disc0/part1
+ label = Windows
+ table = /dev/hda
+#
+# DOS bootable partition config ends
+#
+
diff --git a/sys-boot/lilo/lilo-22.1-r3.ebuild b/sys-boot/lilo/lilo-22.1-r3.ebuild
new file mode 100644
index 000000000000..0ba9decd433b
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.1-r3.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.1-r3.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot
+
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="x86 -amd64 -ppc -sparc -alpha -mips"
+
+DEPEND=">=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ cp Makefile Makefile.orig
+ sed -e "s:-g:${CFLAGS}:" Makefile.orig > Makefile
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ into /
+ dosbin lilo
+ into /usr
+ dosbin keytab-lilo.pl
+ dodir /boot
+ insinto /boot
+ doins boot-text.b boot-menu.b boot-bmp.b chain.b os2_d.b
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT QuickInst README*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+ if [ ! -L $ROOT/boot/boot.b -a -f $ROOT/boot/boot.b ]
+ then
+ echo "Saving old boot.b..."
+ mv $ROOT/boot/boot.b $ROOT/boot/boot.old;
+ fi
+
+ if [ ! -L $ROOT/boot/chain.b -a -f $ROOT/boot/chain.b ]
+ then
+ echo "Saving old chain.b..."
+ mv $ROOT/boot/chain.b $ROOT/boot/chain.old;
+ fi
+
+ if [ ! -L $ROOT/boot/os2_d.b -a -f $ROOT/boot/os2_d.b ]
+ then
+ echo "Saving old os2_d.b..."
+ mv $ROOT/boot/os2_d.b $ROOT/boot/os2_d.old;
+ fi
+}
+
+pkg_postinst() {
+ einfo "Activating boot-menu..."
+ ln -sf boot-menu.b $ROOT/boot/boot.b
+}
diff --git a/sys-boot/lilo/lilo-22.3.3-r1.ebuild b/sys-boot/lilo/lilo-22.3.3-r1.ebuild
new file mode 100644
index 000000000000..800ae93dadb3
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.3.3-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.3.3-r1.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="http://home.san.rr.com/johninsd/pub/linux/lilo/${P}.tar.gz
+ mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="x86 -amd64 -ppc -sparc -alpha -mips"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${P}.tar.gz || die
+ cd ${S} || die
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ epatch ${DISTDIR}/${P}-gentoo.diff.bz2
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ into /
+ dosbin lilo activate mkrescue
+ into /usr
+ dosbin keytab-lilo.pl
+ dodir /boot
+ insinto /boot
+ doins boot-text.b boot-menu.b boot-bmp.b chain.b mbr.b os2_d.b
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+ if [ ! -L $ROOT/boot/boot.b -a -f $ROOT/boot/boot.b ]
+ then
+ einfo "Saving old boot.b..."
+ mv -f $ROOT/boot/boot.b $ROOT/boot/boot.old
+ fi
+
+ if [ ! -L $ROOT/boot/chain.b -a -f $ROOT/boot/chain.b ]
+ then
+ einfo "Saving old chain.b..."
+ mv -f $ROOT/boot/chain.b $ROOT/boot/chain.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/mbr.b -a -f ${ROOT}/boot/mbr.b ]
+ then
+ einfo "Saving old mbr.b..."
+ mv -f ${ROOT}/boot/mbr.b ${ROOT}/boot/mbr.old
+ fi
+
+ if [ ! -L $ROOT/boot/os2_d.b -a -f $ROOT/boot/os2_d.b ]
+ then
+ einfo "Saving old os2_d.b..."
+ mv -f $ROOT/boot/os2_d.b $ROOT/boot/os2_d.old
+ fi
+}
+
+pkg_postinst() {
+ einfo "Activating boot-menu..."
+ ln -sf boot-menu.b $ROOT/boot/boot.b
+}
diff --git a/sys-boot/lilo/lilo-22.3.4.ebuild b/sys-boot/lilo/lilo-22.3.4.ebuild
new file mode 100644
index 000000000000..45b2cdd36e14
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.3.4.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.3.4.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="http://home.san.rr.com/johninsd/pub/linux/lilo/obsolete/${P}.tar.gz
+ mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="x86 -amd64 -ppc -sparc -alpha -mips"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${P}.tar.gz || die
+ cd ${S} || die
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ epatch ${DISTDIR}/${P}-gentoo.diff.bz2
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ into /
+ dosbin lilo activate mkrescue
+ into /usr
+ dosbin keytab-lilo.pl
+ dodir /boot
+ insinto /boot
+ doins boot-text.b boot-menu.b boot-bmp.b chain.b mbr.b os2_d.b
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+ if [ ! -L $ROOT/boot/boot.b -a -f $ROOT/boot/boot.b ]
+ then
+ einfo "Saving old boot.b..."
+ mv -f $ROOT/boot/boot.b $ROOT/boot/boot.old
+ fi
+
+ if [ ! -L $ROOT/boot/chain.b -a -f $ROOT/boot/chain.b ]
+ then
+ einfo "Saving old chain.b..."
+ mv -f $ROOT/boot/chain.b $ROOT/boot/chain.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/mbr.b -a -f ${ROOT}/boot/mbr.b ]
+ then
+ einfo "Saving old mbr.b..."
+ mv -f ${ROOT}/boot/mbr.b ${ROOT}/boot/mbr.old
+ fi
+
+ if [ ! -L $ROOT/boot/os2_d.b -a -f $ROOT/boot/os2_d.b ]
+ then
+ einfo "Saving old os2_d.b..."
+ mv -f $ROOT/boot/os2_d.b $ROOT/boot/os2_d.old
+ fi
+}
+
+pkg_postinst() {
+ einfo "Activating boot-menu..."
+ ln -sf boot-menu.b $ROOT/boot/boot.b
+}
diff --git a/sys-boot/lilo/lilo-22.5.1.ebuild b/sys-boot/lilo/lilo-22.5.1.ebuild
new file mode 100644
index 000000000000..b95a2b1677a9
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.1.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.1.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="http://home.san.rr.com/johninsd/pub/linux/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-* x86"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ unpack ${P}.tar.gz || die
+ cd ${S}
+
+ # Get all the loaders to install
+ cp Makefile Makefile.orig
+ sed -e 's:# $(BOOTS): $(BOOTS):' Makefile.orig > Makefile
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+# epatch ${DISTDIR}/${P}-gentoo.diff.bz2
+}
+
+src_compile() {
+ [ -z "${CC}" ] && CC="gcc"
+
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ if has_version 'sys-devel/hardened-gcc' && [ "${CC}" = "gcc" ]
+ then
+ CC="${CC} -yet_exec"
+ fi
+
+ emake CC="${CC}" OPT="-O1" || die
+}
+
+src_install() {
+ into /
+ dosbin lilo activate mkrescue
+ into /usr
+ dosbin keytab-lilo.pl
+
+ dodir /boot
+ insinto /boot
+ doins boot-text.b boot-menu.b boot-bmp.b chain.b mbr.b os2_d.b
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+
+ if [ ! -L ${ROOT}/boot/boot.b -a -f ${ROOT}/boot/boot.b ]
+ then
+ einfo "Saving old boot.b..."
+ mv -f ${ROOT}/boot/boot.b ${ROOT}/boot/boot.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/boot-text.b -a -f ${ROOT}/boot/boot-text.b ]
+ then
+ einfo "Saving old boot-text.b..."
+ mv -f ${ROOT}/boot/boot-text.b ${ROOT}/boot/boot-text.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/boot-menu.b -a -f ${ROOT}/boot/boot-menu.b ]
+ then
+ einfo "Saving old boot-menu.b..."
+ mv -f ${ROOT}/boot/boot-menu.b ${ROOT}/boot/boot-menu.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/boot-bmp.b -a -f ${ROOT}/boot/boot-bmp.b ]
+ then
+ einfo "Saving old boot-bmp.b..."
+ mv -f ${ROOT}/boot/boot-bmp.b ${ROOT}/boot/boot-bmp.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/chain.b -a -f ${ROOT}/boot/chain.b ]
+ then
+ einfo "Saving old chain.b..."
+ mv -f ${ROOT}/boot/chain.b ${ROOT}/boot/chain.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/mbr.b -a -f ${ROOT}/boot/mbr.b ]
+ then
+ einfo "Saving old mbr.b..."
+ mv -f ${ROOT}/boot/mbr.b ${ROOT}/boot/mbr.old
+ fi
+
+ if [ ! -L ${ROOT}/boot/os2_d.b -a -f ${ROOT}/boot/os2_d.b ]
+ then
+ einfo "Saving old os2_d.b..."
+ mv -f ${ROOT}/boot/os2_d.b ${ROOT}/boot/os2_d.old
+ fi
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ /sbin/lilo &> /dev/null
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+}
+
diff --git a/sys-boot/lilo/lilo-22.5.6-r2.ebuild b/sys-boot/lilo/lilo-22.5.6-r2.ebuild
new file mode 100644
index 000000000000..a03dc0e3f910
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.6-r2.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.6-r2.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-* ~x86"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+# epatch ${DISTDIR}/${P}-gentoo.diff.bz2
+}
+
+src_compile() {
+ emake CC="${CC:=gcc}" lilo || die
+}
+
+src_install() {
+ keepdir /boot
+ make ROOT=${D} install || die
+ into /usr
+ dosbin keytab-lilo.pl
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ [ -f "${ROOT}/boot/boot-menu.b" ] && \
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ # do not redirect to /dev/null because it may display some input
+ # prompt
+ /sbin/lilo
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+
+ echo
+ einfo "Please note that all the loader files (/boot/*.b) is now linked"
+ einfo "into LILO, and thus no longer installed."
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 3
+ echo
+}
+
diff --git a/sys-boot/lilo/lilo-22.5.6-r3.ebuild b/sys-boot/lilo/lilo-22.5.6-r3.ebuild
new file mode 100644
index 000000000000..9bcc0af7b71a
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.6-r3.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.6-r3.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-*"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ #
+ # Update for 22.5 by Quequero (bug #19397):
+ #
+ # I've adapted and edited this patch from and older version
+ # For problems email me.
+ # Quequero <quequerp@bitchx.it>
+ #
+ epatch ${FILESDIR}/${P}-animated-menu.patch
+
+ # Fixup things for glibc-2.3.3 (and later CVS versions of 2.3.2)
+ epatch ${FILESDIR}/${P}-glibc233.patch
+}
+
+src_compile() {
+ emake CC="${CC:=gcc}" lilo || die
+}
+
+src_install() {
+ keepdir /boot
+ make ROOT=${D} install || die
+ into /usr
+ dosbin keytab-lilo.pl
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ [ -f "${ROOT}/boot/boot-menu.b" ] && \
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ # do not redirect to /dev/null because it may display some input
+ # prompt
+ /sbin/lilo
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+
+ echo
+ einfo "Please note that all the loader files (/boot/*.b) is now linked"
+ einfo "into LILO, and thus no longer installed."
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 3
+ echo
+}
+
diff --git a/sys-boot/lilo/lilo-22.5.7.2.ebuild b/sys-boot/lilo/lilo-22.5.7.2.ebuild
new file mode 100644
index 000000000000..a495f0dbfd94
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.7.2.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.7.2.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://brun.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-* ~x86"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ #
+ # Update for 22.5 by Quequero (bug #19397):
+ #
+ # I've adapted and edited this patch from and older version
+ # For problems email me.
+ # Quequero <quequerp@bitchx.it>
+ #
+# cd ${S}; epatch ${FILESDIR}/${P}-animated-menu.patch
+
+ # Fixup things for glibc-2.3.3 (and later CVS versions of 2.3.2)
+ cd ${S}; epatch ${FILESDIR}/${PN}-22.5.6-glibc233.patch
+}
+
+src_compile() {
+
+ CC="${CC:=gcc}"
+
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ if has_version 'sys-devel/hardened-gcc' && [ "${CC}"="gcc" ]
+ then
+ find ${W} -type f -name "Makefile" -exec sed -i "s:CC=cc:CC=${CC} ${CFLAGS} -yet_exec:" {} \;
+ fi
+
+ emake lilo || die
+}
+
+src_install() {
+ keepdir /boot
+ make ROOT=${D} install || die
+ into /usr
+ dosbin keytab-lilo.pl
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ [ -f "${ROOT}/boot/boot-menu.b" ] && \
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ # do not redirect to /dev/null because it may display some input
+ # prompt
+ /sbin/lilo
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+
+ echo
+ einfo "Please note that all the loader files (/boot/*.b) is now linked"
+ einfo "into LILO, and thus no longer installed."
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 3
+ echo
+}
+
diff --git a/sys-boot/lilo/lilo-22.5.8-r1.ebuild b/sys-boot/lilo/lilo-22.5.8-r1.ebuild
new file mode 100644
index 000000000000..c22fddc2bb9d
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.8-r1.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.8-r1.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="http://home.san.rr.com/johninsd/pub/linux/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://lilo.go.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-* ~x86"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ # Do not try and build the dos crap.
+ sed -i -e 's|^all:.*$|all: lilo|' ${S}/Makefile
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ #
+ # Update for 22.5 by Quequero (bug #19397):
+ #
+ # I've adapted and edited this patch from and older version
+ # For problems email me.
+ # Quequero <quequerp@bitchx.it>
+ #
+# cd ${S}; epatch ${FILESDIR}/${P}-animated-menu.patch
+
+ # Fixup things for glibc-2.3.3 (and later CVS versions of 2.3.2)
+ cd ${S}; epatch ${FILESDIR}/${PN}-22.5.6-glibc233.patch
+}
+
+src_compile() {
+ # add the hardened-gcc compiler flag for building its assembler parts ;-)
+ if has_version 'sys-devel/hardened-gcc'
+ then
+ export CC="${CC:=gcc} -yet_exec"
+ find ${W} -type f -name "Makefile" -exec sed -i "s:CC=cc:CC=${CC}:" {} \;
+ fi
+
+ # Do not use custom CFLAGS for stability reasons
+ emake CC="${CC:=gcc}" lilo || die
+}
+
+src_install() {
+ keepdir /boot
+ make ROOT=${D} install || die
+ into /usr
+ dosbin keytab-lilo.pl
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ [ -f "${ROOT}/boot/boot-menu.b" ] && \
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ # do not redirect to /dev/null because it may display some input
+ # prompt
+ /sbin/lilo
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+
+ echo
+ einfo "Please note that all the loader files (/boot/*.b) is now linked"
+ einfo "into LILO, and thus no longer installed."
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 3
+ echo
+}
+
diff --git a/sys-boot/lilo/lilo-22.5.8.ebuild b/sys-boot/lilo/lilo-22.5.8.ebuild
new file mode 100644
index 000000000000..2ff8d12fdf1c
--- /dev/null
+++ b/sys-boot/lilo/lilo-22.5.8.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/lilo/lilo-22.5.8.ebuild,v 1.1 2003/12/09 08:12:34 seemant Exp $
+
+inherit mount-boot eutils
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Standard Linux boot loader"
+SRC_URI="http://home.san.rr.com/johninsd/pub/linux/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/${P}.tar.gz
+ ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/obsolete/${P}.tar.gz"
+# mirror://gentoo/${P}-gentoo.diff.bz2"
+HOMEPAGE="http://lilo.go.dyndns.org/pub/linux/lilo/"
+
+SLOT="0"
+LICENSE="BSD GPL-2"
+KEYWORDS="-* ~x86"
+
+DEPEND="dev-lang/nasm
+ >=sys-devel/bin86-0.15.5"
+
+PROVIDE="virtual/bootloader"
+
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ # This bootlogo patch is borrowed from SuSE Linux.
+ # You should see Raphaël Quinet's (quinet@gamers.org) website,
+ # http://www.gamers.org/~quinet/lilo/index.html
+ #
+ # Update for 22.5 by Quequero (bug #19397):
+ #
+ # I've adapted and edited this patch from and older version
+ # For problems email me.
+ # Quequero <quequerp@bitchx.it>
+ #
+# cd ${S}; epatch ${FILESDIR}/${P}-animated-menu.patch
+
+ # Fixup things for glibc-2.3.3 (and later CVS versions of 2.3.2)
+ cd ${S}; epatch ${FILESDIR}/${PN}-22.5.6-glibc233.patch
+}
+
+src_compile() {
+
+ CC="${CC:=gcc}"
+
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ if has_version 'sys-devel/hardened-gcc' && [ "${CC}"="gcc" ]
+ then
+ find ${W} -type f -name "Makefile" -exec sed -i "s:CC=cc:CC=${CC} ${CFLAGS} -yet_exec:" {} \;
+ fi
+
+ emake lilo || die
+}
+
+src_install() {
+ keepdir /boot
+ make ROOT=${D} install || die
+ into /usr
+ dosbin keytab-lilo.pl
+
+ insinto /etc
+ newins ${FILESDIR}/lilo.conf lilo.conf.example
+
+ doman manPages/*.[5-8]
+ dodoc CHANGES COPYING INCOMPAT README*
+ docinto samples ; dodoc sample/*
+}
+
+pkg_preinst() {
+ mount-boot_mount_boot_partition
+}
+
+# Check whether LILO is installed
+# This function is from /usr/sbin/mkboot from debianutils, with copyright:
+#
+# Debian GNU/Linux
+# Copyright 1996-1997 Guy Maor <maor@debian.org>
+#
+# Modified for Gentoo for use with the lilo ebuild by:
+# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
+#
+lilocheck () {
+ local bootpart=
+ local rootpart="$(rdev 2> /dev/null | cut -d ' ' -f 1 2> /dev/null)"
+
+ echo
+ einfon "Checking for LILO ..."
+
+ if [ "$(whoami)" != "root" ]
+ then
+ echo; echo
+ eerror "Only root can check for LILO!"
+ return 1
+ fi
+
+ if [ -z "${rootpart}" ]
+ then
+ echo; echo
+ eerror "Could not determine root partition!"
+ return 1
+ fi
+
+ if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
+ then
+ echo " No"
+ return 1
+ fi
+
+ bootpart="$(perl -ne 'print $1 if /^\s*boot\s*=\s*(\S*)/' /etc/lilo.conf)"
+
+ if [ -z "${bootpart}" ]
+ then
+ # lilo defaults to current root when 'boot=' is not present
+ bootpart="${rootpart}"
+ fi
+
+ if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
+ then
+ echo; echo
+ ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
+ ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
+ return 1
+ fi
+
+ echo " Yes, on ${bootpart}"
+
+ return 0
+}
+
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}/boot/boot.b -a ! -L ${ROOT}/boot/boot.b ]
+ then
+ [ -f "${ROOT}/boot/boot-menu.b" ] && \
+ ln -snf boot-menu.b ${ROOT}/boot/boot.b
+ fi
+
+ if [ "${ROOT}" = "/" ]
+ then
+ if lilocheck
+ then
+ einfo "Running LILO to complete the install ..."
+ # do not redirect to /dev/null because it may display some input
+ # prompt
+ /sbin/lilo
+ if [ "$?" -ne 0 ]
+ then
+ echo
+ ewarn "Running /sbin/lilo failed! Please check what the problem is"
+ ewarn "before your next reboot."
+
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 5
+ fi
+ fi
+ echo
+ fi
+
+ echo
+ einfo "Please note that all the loader files (/boot/*.b) is now linked"
+ einfo "into LILO, and thus no longer installed."
+ echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1
+ sleep 3
+ echo
+}
+
diff --git a/sys-boot/lilo/metadata.xml b/sys-boot/lilo/metadata.xml
new file mode 100644
index 000000000000..ef0805e71ae1
--- /dev/null
+++ b/sys-boot/lilo/metadata.xml
@@ -0,0 +1,6 @@
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/sys-boot/milo/ChangeLog b/sys-boot/milo/ChangeLog
new file mode 100644
index 000000000000..39423146cb71
--- /dev/null
+++ b/sys-boot/milo/ChangeLog
@@ -0,0 +1,29 @@
+# ChangeLog for sys-apps/milo
+# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/milo/ChangeLog,v 1.1 2003/12/09 08:12:43 seemant Exp $
+
+*milo-2.4.18 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ milo-2.4.18.ebuild, files/README-gentoo, files/linux-2.2.25-gcc3-milo.diff,
+ files/milo-2.2-18-gcc3-gentoo.diff, files/mkserial_no.c, files/objstrip.c:
+ moved from sys-apps to sys-boot
+
+ 16 Sep 2003; Seemant Kulleen <seemant@gentoo.org> milo-2.4.18.ebuild:
+ dependency from app-admin/mtools to sys-fs/mtools
+
+ 05 Jun 2003; Tavis Ormandy <taviso@gentoo.org> milo-2.4.18.ebuild,
+ files/milo-2.2-18-gcc3-gentoo.diff:
+ by setting the MILO_IMAGE variable, users can select which images are built.
+
+ 05 Jun 2003; Tavis Ormandy <taviso@gentoo.org> milo-2.4.18.ebuild:
+ updating some uri's.
+
+*milo-2.4.18 (03 Jun 2003)
+
+ 03 Jun 2003; Tavis Ormandy <taviso@gentoo.org> milo-2.4.18.ebuild,
+ files/README-gentoo, files/linux-2.2.25-gcc3-milo.diff,
+ files/milo-2.2-18-gcc3-gentoo.diff, files/mkserial_no.c, files/objstrip.c:
+ Initial import, the Alpha MIniLOader, bootloader for machines
+ without SRM, or special cases where aboot is not appropriate.
+
diff --git a/sys-boot/milo/Manifest b/sys-boot/milo/Manifest
new file mode 100644
index 000000000000..1afce7f3f3b5
--- /dev/null
+++ b/sys-boot/milo/Manifest
@@ -0,0 +1,9 @@
+MD5 8f3df15e8df3b641a13c71bc7d576264 milo-2.4.18.ebuild 8073
+MD5 1dda452daeb2b472f7d956ed1b9b7aae ChangeLog 1259
+MD5 382a839b2dd3b36aee659eba1be42e2d metadata.xml 752
+MD5 987873fb766bc62dcb7336015388e4e3 files/mkserial_no.c 1264
+MD5 0d52b7b08a86538142aa8652017f15e9 files/milo-2.2-18-gcc3-gentoo.diff 5619
+MD5 f6830f117d7528a50b53e85150040d73 files/linux-2.2.25-gcc3-milo.diff 3542
+MD5 4f7cadb7dd636d407b0477e5302fbbe1 files/objstrip.c 6126
+MD5 e004906c1c2084229f429011fcb5c46b files/README-gentoo 3508
+MD5 50c0136152336ca93b808adb1e49a98d files/digest-milo-2.4.18 389
diff --git a/sys-boot/milo/files/README-gentoo b/sys-boot/milo/files/README-gentoo
new file mode 100644
index 000000000000..3ca8858ab0bb
--- /dev/null
+++ b/sys-boot/milo/files/README-gentoo
@@ -0,0 +1,99 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/milo/files/README-gentoo,v 1.1 2003/12/09 08:12:43 seemant Exp $
+#
+##############################################
+# Gentoo Linux MILO images.
+####################################################
+#
+# What is MILO?
+#
+###
+
+MILO is an AlphaLinux bootloader, which is usually used to load the Linux
+Operating System on Alpha machines that dont have SRM.
+
+There are two families of firmware on Alpha, ARC and SRM. ARC was developed
+for use with Windows NT, and cannot support Linux. Some Alpha's were
+distributed with only ARC firmware, for use specifically with Windows NT,
+these machines would not be able to run any OS except for Windows NT without
+MILO.
+
+If you do have SRM, or the option of using SRM, you should be using the aboot
+bootloader, unless you really know what you are doing.
+
+NOTE: if you have srm, but would like to dual boot with Windows NT, or use ARC
+ firmware, you might find MILO more useful than aboot. There are other
+ reasons also, booting a kernel from a reiserfs partition, for example.
+
+NOTE: The Gentoo MILO images are slightly different to the standard
+ MILO images, they have been patched to compile with gcc3 and
+ work with the latest linux-2.2 kernel and drivers. You can
+ also optimise your MILO image, to maximise the performance of the
+ MILO pager! woooo!
+
+FIXME: will there be a boot speed improvement from optimising MILO?
+FIXME: what about performance of the call_pal routines (or at least the
+ overhead of calling them, as they are hand coded asm), will
+ that improve system performance?
+
+#####################################################
+#
+# How do i use these images to boot?
+#
+####
+
+NOTE: Read the MILO-HOWTO in this directory now!
+ There is an explanation and description of all the ways you can
+ start MILO, including SRM, Floppy, Flash and Debug Monitor.
+
+In this directory you will find the MILO images, you can use these to
+make MILO boot floppies, or install them to a FAT partition.
+
+There are instructions below for making a MILO boot floppy.
+
+
+1. insert the disk you would like to make a MILO floppy.
+
+2. fdformat /dev/fd0
+
+ Obviously, if the disk is already formatted you can skip
+ this step.
+
+3. mformat a:
+
+ this will create a MSDOS file system (FAT) on the floppy.
+
+4. mcopy milo-2.4.18-gentoo-<your alpha> a:\milo
+
+ install the milo image for your machine onto the new floppy.
+
+5. mcopy linload.exe a:\linload.exe
+ _OR_ if you have a Ruffian machine:
+ mcopy ldmilo.exe a:\ldmilo.exe
+
+ install the milo loader, note that ruffians dont use ldlinux.exe
+ by default, if your system expects ldlinux.exe, just copy that file
+ instead. the ldmilo included in this ebuild contains the fixes by Jay
+ Eastabrook, sometimes called "Jay's Hacked Version".
+
+6. echo -ne '\125\252' | dd of=/dev/fd0 bs=1 seek=510 count=2 conv=notrunc
+
+ this might not be nescessary on all machines, but some ARCs expect the
+ floppy to be marked bootable, this fakes the magic.
+
+7. reboot, and set ARCs to boot your shiny new MILO floppy!
+
+#####################################################
+#
+# BUGS
+#
+####
+
+These MILO images are not extensively tested, if you use one
+PLEASE, PLEASE, PLEASE tell me! i need to know which systems
+it works on and which ones it doesnt.
+
+if you dont want to enter a bug in http://bugs.gentoo.org/
+
+you can just email me a quick note to taviso@gentoo.org
diff --git a/sys-boot/milo/files/digest-milo-2.4.18 b/sys-boot/milo/files/digest-milo-2.4.18
new file mode 100644
index 000000000000..fedd19e6bec9
--- /dev/null
+++ b/sys-boot/milo/files/digest-milo-2.4.18
@@ -0,0 +1,6 @@
+MD5 8b119c6baeca145f1c11057973be9be0 milo-2.2-18.tar.bz2 1074725
+MD5 ba722ead5245c19ce70d34343c515773 linux-2.2.25.tar.bz2 15791211
+MD5 dfc036835be3ee020624613b81314c7e ldmilo-patched-20010430 18944
+MD5 7f0a743ef03a4c91435964b6813f48c3 linux-2.2.20-reiserfs-3.5.35.diff.bz2 154943
+MD5 ff9b4a42903dc6a20e950ace6f7027d4 linload.exe 7168
+MD5 c41dff13e25647dbb95500d039d0c016 MILO-HOWTO 52455
diff --git a/sys-boot/milo/files/linux-2.2.25-gcc3-milo.diff b/sys-boot/milo/files/linux-2.2.25-gcc3-milo.diff
new file mode 100644
index 000000000000..d99769f91c9f
--- /dev/null
+++ b/sys-boot/milo/files/linux-2.2.25-gcc3-milo.diff
@@ -0,0 +1,123 @@
+diff -ru --minimal linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c
+--- linux/arch/alpha/kernel/process.c 2001-03-25 17:37:29.000000000 +0100
++++ linux/arch/alpha/kernel/process.c 2003-06-02 20:20:19.000000000 +0100
+@@ -57,7 +57,7 @@
+ static struct fs_struct init_fs = INIT_FS;
+ static struct files_struct init_files = INIT_FILES;
+ static struct signal_struct init_signals = INIT_SIGNALS;
+-struct mm_struct init_mm = INIT_MM;
++struct mm_struct init_mm;
+
+ union task_union init_task_union __attribute__((section("init_task")))
+ = { task: INIT_TASK };
+diff -ru --minimal linux/drivers/char/tty_io.c linux/drivers/char/tty_io.c
+--- linux/drivers/char/tty_io.c 2002-05-21 00:32:34.000000000 +0100
++++ linux/drivers/char/tty_io.c 2003-06-02 20:05:08.000000000 +0100
+@@ -756,15 +756,17 @@
+ }
+
+ /* Semaphore to protect creating and releasing a tty */
+-static struct semaphore tty_sem = MUTEX;
++static struct semaphore tty_sem;
+
+ static void down_tty_sem(int index)
+ {
++ tty_sem = MUTEX;
+ down(&tty_sem);
+ }
+
+ static void up_tty_sem(int index)
+ {
++ tty_sem = MUTEX;
+ up(&tty_sem);
+ }
+
+@@ -785,6 +787,7 @@
+ int retval=0;
+ int idx;
+
++ tty_sem = MUTEX;
+ driver = get_tty_driver(device);
+ if (!driver)
+ return -ENODEV;
+diff -ru --minimal linux/fs/super.c linux/fs/super.c
+--- linux/fs/super.c 2001-11-02 16:39:08.000000000 +0000
++++ linux/fs/super.c 2003-06-02 20:13:53.000000000 +0100
+@@ -42,7 +42,7 @@
+ * unmounting a filesystem and re-mounting it (or something
+ * else).
+ */
+-static struct semaphore mount_sem = MUTEX;
++static struct semaphore mount_sem;
+
+ extern void wait_for_keypress(void);
+ extern struct file_operations * get_blkfops(unsigned int major);
+@@ -730,6 +730,7 @@
+ int retval;
+ struct inode * inode = get_empty_inode();
+
++ mount_sem = MUTEX;
+ retval = -ENOMEM;
+ if (!inode)
+ goto out;
+@@ -859,6 +860,7 @@
+ struct vfsmount *vfsmnt;
+ int error;
+
++ mount_sem = MUTEX;
+ error = -EACCES;
+ if (!(flags & MS_RDONLY) && dev && is_read_only(dev))
+ goto out;
+diff -ru --minimal linux/kernel/sys.c linux/kernel/sys.c
+--- linux/kernel/sys.c 2002-09-16 17:26:33.000000000 +0100
++++ linux/kernel/sys.c 2003-06-02 20:00:20.000000000 +0100
+@@ -866,12 +866,13 @@
+ * rather than a semaphore. Anybody want to implement
+ * one?
+ */
+-struct semaphore uts_sem = MUTEX;
++struct semaphore uts_sem;
+
+ asmlinkage int sys_newuname(struct new_utsname * name)
+ {
+ int errno = 0;
+
++ uts_sem = MUTEX;
+ down(&uts_sem);
+ if (copy_to_user(name,&system_utsname,sizeof *name))
+ errno = -EFAULT;
+@@ -883,6 +884,7 @@
+ {
+ int errno;
+
++ uts_sem = MUTEX;
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
+ if (len < 0 || len > __NEW_UTS_LEN)
+@@ -901,6 +903,7 @@
+ {
+ int i, errno;
+
++ uts_sem = MUTEX;
+ if (len < 0)
+ return -EINVAL;
+ down(&uts_sem);
+@@ -922,6 +925,7 @@
+ {
+ int errno;
+
++ uts_sem = MUTEX;
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
+ if (len < 0 || len > __NEW_UTS_LEN)
+diff -ru --minimal linux/include/asm-alpha/errno.h linux/include/asm-alpha/errno.h
+--- linux/include/asm-alpha/errno.h 2001-03-25 17:31:06.000000000 +0100
++++ linux/include/asm-alpha/errno.h 2003-06-02 23:48:45.000000000 +0100
+@@ -134,6 +134,7 @@
+ #define ELIBMAX 125 /* Attempting to link in too many shared libraries */
+ #define ELIBEXEC 126 /* Cannot exec a shared library directly */
+ #define ERESTART 127 /* Interrupted system call should be restarted */
++#define EHASHCOLLISION 127 /* reiserfs hash collision */
+ #define ESTRPIPE 128 /* Streams pipe error */
+
+ #define ENOMEDIUM 129 /* No medium found */
diff --git a/sys-boot/milo/files/milo-2.2-18-gcc3-gentoo.diff b/sys-boot/milo/files/milo-2.2-18-gcc3-gentoo.diff
new file mode 100644
index 000000000000..2fa897df6e90
--- /dev/null
+++ b/sys-boot/milo/files/milo-2.2-18-gcc3-gentoo.diff
@@ -0,0 +1,174 @@
+diff -u -r --minimal milo-2.2-18.orig/config.in milo-2.2-18/config.in
+--- milo-2.2-18.orig/config.in 2001-07-18 15:58:30.000000000 +0100
++++ milo-2.2-18/config.in 2003-06-05 18:52:06.000000000 +0100
+@@ -5,7 +5,7 @@
+
+ comment 'Alpha Linux Miniloader setup'
+ #
+-string 'Path to kernel sources' KSRC /usr/src/linux
++string 'Path to kernel sources' KSRC ${WORKDIR}/linux
+ choice 'Alpha system type' \
+ "Alpha-XLT MINI_ALPHA_XLT \
+ Alpha-XL MINI_ALPHA_XL \
+diff -u -r --minimal milo-2.2-18.orig/devices.c milo-2.2-18/devices.c
+--- milo-2.2-18.orig/devices.c 2001-07-18 16:59:38.000000000 +0100
++++ milo-2.2-18/devices.c 2003-06-05 18:52:06.000000000 +0100
+@@ -98,7 +98,7 @@
+ struct fs_struct init_fs = INIT_FS;
+ struct files_struct init_files = INIT_FILES;
+ struct signal_struct init_signals = INIT_SIGNALS;
+-struct mm_struct init_mm = INIT_MM;
++struct mm_struct init_mm;
+
+ unsigned securebits = SECUREBITS_DEFAULT; /* systemwide security settings */
+
+@@ -1213,7 +1213,7 @@
+ }
+
+
+-void __wake_up(struct wait_queue **p, unsigned int mode, unsigned int wq_mode)
++void __wake_up(struct wait_queue **p, unsigned int mode)
+ {
+ wake_up(p);
+ }
+diff -u -r --minimal milo-2.2-18.orig/Documentation/defconfig.milo milo-2.2-18/Documentation/defconfig.milo
+--- milo-2.2-18.orig/Documentation/defconfig.milo 2001-07-19 10:59:45.000000000 +0100
++++ milo-2.2-18/Documentation/defconfig.milo 2003-06-05 18:52:06.000000000 +0100
+@@ -5,7 +5,7 @@
+ #
+ # Alpha Linux Miniloader setup
+ #
+-KSRC=/usr/src/linux
++KSRC=${WORKDIR}/linux
+ # MINI_ALPHA_XLT is not set
+ # MINI_ALPHA_XL is not set
+ # MINI_ALPHA_BOOK1 is not set
+@@ -36,7 +36,7 @@
+ # MINI_VGA_RAW2 is not set
+ MINI_TGA_CONSOLE=y
+ MINI_EXTERNAL_FONT=y
+-MINI_FONT_FILE=/usr/lib/kbd/consolefonts/default8x16.gz
++MINI_FONT_FILE=/usr/share/consolefonts/default8x16.psfu.gz
+ MILO_CONFIG_EXT2FS=y
+ MILO_CONFIG_MSDOSFS=y
+ MILO_CONFIG_REISERFS=y
+diff -u -r --minimal milo-2.2-18.orig/hwrpb.c milo-2.2-18/hwrpb.c
+--- milo-2.2-18.orig/hwrpb.c 2001-07-18 14:38:38.000000000 +0100
++++ milo-2.2-18/hwrpb.c 2003-06-05 18:52:06.000000000 +0100
+@@ -368,9 +368,17 @@
+ percpu =
+ (struct percpu_struct *) (((char *) hwrpb) +
+ hwrpb->processor_offset);
+- percpu->serial_no[0] = 0x73695f78756e694c;
++#ifndef MILO_SERIAL_NUMBER0
++#define MILO_SERIAL_NUMBER0 0x73695f78756e694c
++#endif /* MILO_SERIAL_NUMBER0 */
++
++#ifndef MILO_SERIAL_NUMBER1
++#define MILO_SERIAL_NUMBER1 0x002174616572475f;
++#endif /* MILO_SERIAL_NUMBER1 */
++
++ percpu->serial_no[0] = MILO_SERIAL_NUMBER0;
+ /* :-) */
+- percpu->serial_no[1] = 0x002174616572475f;
++ percpu->serial_no[1] = MILO_SERIAL_NUMBER1;
+ percpu->type = cpuid();
+
+ /*
+diff -u -r --minimal milo-2.2-18.orig/Makefile milo-2.2-18/Makefile
+--- milo-2.2-18.orig/Makefile 2001-07-18 17:15:31.000000000 +0100
++++ milo-2.2-18/Makefile 2003-06-05 18:52:06.000000000 +0100
+@@ -54,8 +54,8 @@
+ #
+
+ LINKFLAGS = -non_shared -N -T milo.lds
+-CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
+- -fno-strict-aliasing -mcpu=ev5 -pipe -mno-fp-regs \
++CFLAGS += -Wall -Wstrict-prototypes -fomit-frame-pointer \
++ -fno-strict-aliasing -pipe -mno-fp-regs \
+ -ffixed-8 -Wa,-mev6 -D__KERNEL__ -D__linux__ \
+ -I$(KSRC)/include
+
+diff -u -r --minimal milo-2.2-18.orig/milo.c milo-2.2-18/milo.c
+--- milo-2.2-18.orig/milo.c 2001-07-18 14:38:38.000000000 +0100
++++ milo-2.2-18/milo.c 2003-06-05 19:16:16.000000000 +0100
+@@ -1436,9 +1436,10 @@
+ {
+ extern U64 milo_memory_size;
+
+- printk("MILO (%s):\n", alpha_mv.vector_name);
+- printk(" Built against Linux " UTS_RELEASE "\n");
++ printk("Gentoo MILO (%s):\n", alpha_mv.vector_name);
++ printk(" Built against Gentoo Linux Kernel " UTS_RELEASE "\n");
+ printk(" Using compiler " LINUX_COMPILER "\n");
++ printk("\nWelcome to the Gentoo Linux MIniLOader\n");
+
+ #if 0
+ /* what sort of video do we have? */
+@@ -1792,7 +1793,7 @@
+ /* parse commands forever */
+ while (1) {
+
+- printk("MILO> ");
++ printk("MILO > ");
+
+ kbd_gets(command_string, 256);
+ printk_rows = 0;
+diff -u -r --minimal milo-2.2-18.orig/tools/scripts/allfiles milo-2.2-18/tools/scripts/allfiles
+--- milo-2.2-18.orig/tools/scripts/allfiles 2001-07-11 18:27:02.000000000 +0100
++++ milo-2.2-18/tools/scripts/allfiles 2003-06-05 18:52:06.000000000 +0100
+@@ -1,7 +1,7 @@
+ #!/bin/bash
+
+ LOC=kernel/objs
+-KSRC=/usr/src/linux/
++KSRC=${WORKDIR}/linux
+
+ rm -rf $LOC
+
+diff -u -r --minimal milo-2.2-18.orig/tools/scripts/build milo-2.2-18/tools/scripts/build
+--- milo-2.2-18.orig/tools/scripts/build 2001-07-18 16:58:29.000000000 +0100
++++ milo-2.2-18/tools/scripts/build 2003-06-05 19:14:25.000000000 +0100
+@@ -1,29 +1,9 @@
+ #!/bin/bash
+ set -e
+
+-RELEASE=2.2-17
++RELEASE=2.2-18-Gentoo
+
+-for i in \
+- "Alpha-XLT XLT" \
+- "Alpha-XL XL" \
+- "AlphaBook1 BOOK1" \
+- "Avanti AVANTI" \
+- "Cabriolet CABRIOLET" \
+- "EB66 EB66" \
+- "EB66+ EB66P" \
+- "EB64+ EB64P" \
+- "EB164 EB164" \
+- "PC164 PC164" \
+- "LX164 LX164" \
+- "SX164 SX164" \
+- "Noname NONAME" \
+- "Takara TAKARA" \
+- "Mikasa MIKASA" \
+- "Alcor ALCOR" \
+- "Miata MIATA" \
+- "Ruffian RUFFIAN" \
+- "Platform2000 P2K" \
+- "UDB UDB"
++for i in __MILO_ARCHES__
+ do
+ short=`echo $i | awk '{print $1}'`
+ long=`echo $i | awk '{print $2}'`
+diff -u -r --minimal milo-2.2-18.orig/tools/scripts/buildkernels milo-2.2-18/tools/scripts/buildkernels
+--- milo-2.2-18.orig/tools/scripts/buildkernels 1999-08-19 14:08:55.000000000 +0100
++++ milo-2.2-18/tools/scripts/buildkernels 2003-06-05 18:52:06.000000000 +0100
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-LINUX=/usr/src/linux
++LINUX=${WORKDIR}/linux
+ KOUT=$(dirname `pwd`)/linux
+
+ set -e
diff --git a/sys-boot/milo/files/mkserial_no.c b/sys-boot/milo/files/mkserial_no.c
new file mode 100644
index 000000000000..b4650447584f
--- /dev/null
+++ b/sys-boot/milo/files/mkserial_no.c
@@ -0,0 +1,45 @@
+#include <stdio.h>
+
+/* some example serial numbers for the MILO bootloader */
+/* gcc -o mkserial_no mkserial_no.c */
+/* taviso@gentoo.org 2003 */
+
+/* NOTE: remember you need a 0x00 (NULL terminator) at the end */
+
+int main()
+{
+ long long serial_no[2];
+
+ /* 1) Linux_is_Great! */
+ /* s i _ x u n i L */
+ serial_no[0] = 0x73695f78756e694c;
+ /* ! t a e r G _ */
+ serial_no[1] = 0x002174616572475f;
+
+ /* 2) Gentoo Linux. */
+ /* L o o t n e G */
+ serial_no[0] = 0x4c206f6f746e6547;
+ /* . x u n i */
+ serial_no[1] = 0x0000002e78756e69;
+
+ /* 3) Gentoo/Alpha. */
+ /* A / o o t n e G */
+ serial_no[0] = 0x412f6f6f746e6547;
+ /* .a h p l */
+ serial_no[1] = 0x0000002e6168706c;
+
+ /* 4) Gentoo MILO. */
+ /* M o o t n e G */
+ serial_no[0] = 0x4d206f6f746e6547;
+ /* . O L I */
+ serial_no[1] = 0x000000002e4f4c49;
+
+ /* 5) |d|i|g|i|t|a|l| */
+ /* i | g | i | d | */
+ serial_no[0] = 0x697c677c697c647c;
+ /* | l | a | t | */
+ serial_no[1] = 0x007c6c7c617c747c;
+
+ printf ("serial number:\t%s\n", (char*) serial_no);
+ return (0);
+}
diff --git a/sys-boot/milo/files/objstrip.c b/sys-boot/milo/files/objstrip.c
new file mode 100644
index 000000000000..bbda40330708
--- /dev/null
+++ b/sys-boot/milo/files/objstrip.c
@@ -0,0 +1,282 @@
+/*
+ * arch/alpha/boot/tools/objstrip.c
+ *
+ * Strip the object file headers/trailers from an executable (ELF or ECOFF).
+ *
+ * Copyright (C) 1996 David Mosberger-Tang.
+ */
+/*
+ * Converts an ECOFF or ELF object file into a bootable file. The
+ * object file must be a OMAGIC file (i.e., data and bss follow immediatly
+ * behind the text). See DEC "Assembly Language Programmer's Guide"
+ * documentation for details. The SRM boot process is documented in
+ * the Alpha AXP Architecture Reference Manual, Second Edition by
+ * Richard L. Sites and Richard T. Witek.
+ */
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <sys/fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <linux/a.out.h>
+#include <linux/coff.h>
+#include <linux/param.h>
+#include <linux/string.h>
+#ifdef __ELF__
+# include <asm/elf.h>
+# include <linux/elf.h>
+#endif
+
+/* bootfile size must be multiple of BLOCK_SIZE: */
+#define BLOCK_SIZE 512
+
+const char * prog_name;
+
+
+void
+usage (void)
+{
+ fprintf(stderr,
+ "usage: %s [-v] -p file primary\n"
+ " %s [-vb] file [secondary]\n", prog_name, prog_name);
+ exit(1);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+ size_t nwritten, tocopy, n, mem_size, fil_size, pad = 0;
+ int fd, ofd, i, j, verbose = 0, primary = 0;
+ char buf[8192], *inname;
+ struct exec * aout; /* includes file & aout header */
+ long offset;
+#ifdef __ELF__
+ struct elfhdr *elf;
+ struct elf_phdr *elf_phdr; /* program header */
+ unsigned long long e_entry;
+#endif
+
+ prog_name = argv[0];
+
+ for (i = 1; i < argc && argv[i][0] == '-'; ++i) {
+ for (j = 1; argv[i][j]; ++j) {
+ switch (argv[i][j]) {
+ case 'v':
+ verbose = ~verbose;
+ break;
+
+ case 'b':
+ pad = BLOCK_SIZE;
+ break;
+
+ case 'p':
+ primary = 1; /* make primary bootblock */
+ break;
+ }
+ }
+ }
+
+ if (i >= argc) {
+ usage();
+ }
+ inname = argv[i++];
+
+ fd = open(inname, O_RDONLY);
+ if (fd == -1) {
+ perror("open");
+ exit(1);
+ }
+
+ ofd = 1;
+ if (i < argc) {
+ ofd = open(argv[i++], O_WRONLY | O_CREAT | O_TRUNC, 0666);
+ if (fd == -1) {
+ perror("open");
+ exit(1);
+ }
+ }
+
+ if (primary) {
+ /* generate bootblock for primary loader */
+
+ unsigned long bb[64], sum = 0;
+ struct stat st;
+ off_t size;
+ int i;
+
+ if (ofd == 1) {
+ usage();
+ }
+
+ if (fstat(fd, &st) == -1) {
+ perror("fstat");
+ exit(1);
+ }
+
+ size = (st.st_size + BLOCK_SIZE - 1) & ~(BLOCK_SIZE - 1);
+ memset(bb, 0, sizeof(bb));
+ strcpy((char *) bb, "Linux SRM bootblock");
+ bb[60] = size / BLOCK_SIZE; /* count */
+ bb[61] = 1; /* starting sector # */
+ bb[62] = 0; /* flags---must be 0 */
+ for (i = 0; i < 63; ++i) {
+ sum += bb[i];
+ }
+ bb[63] = sum;
+ if (write(ofd, bb, sizeof(bb)) != sizeof(bb)) {
+ perror("boot-block write");
+ exit(1);
+ }
+ printf("%lu\n", size);
+ return 0;
+ }
+
+ /* read and inspect exec header: */
+
+ if (read(fd, buf, sizeof(buf)) < 0) {
+ perror("read");
+ exit(1);
+ }
+
+#ifdef __ELF__
+ elf = (struct elfhdr *) buf;
+
+ if (elf->e_ident[0] == 0x7f && strncmp(elf->e_ident + 1, "ELF", 3) == 0) {
+ if (elf->e_type != ET_EXEC) {
+ fprintf(stderr, "%s: %s is not an ELF executable\n",
+ prog_name, inname);
+ exit(1);
+ }
+ if (!elf_check_arch(elf)) {
+ fprintf(stderr, "%s: is not for this processor (e_machine=%d)\n",
+ prog_name, elf->e_machine);
+ exit(1);
+ }
+ if (elf->e_phnum != 1) {
+ fprintf(stderr,
+ "%s: %d program headers (forgot to link with -N?)\n",
+ prog_name, elf->e_phnum);
+ }
+
+ e_entry = elf->e_entry;
+
+ lseek(fd, elf->e_phoff, SEEK_SET);
+ if (read(fd, buf, sizeof(*elf_phdr)) != sizeof(*elf_phdr)) {
+ perror("read");
+ exit(1);
+ }
+
+ elf_phdr = (struct elf_phdr *) buf;
+ offset = elf_phdr->p_offset;
+ mem_size = elf_phdr->p_memsz;
+ fil_size = elf_phdr->p_filesz;
+
+ /* work around ELF bug: */
+ if (elf_phdr->p_vaddr < e_entry) {
+ unsigned long delta = e_entry - elf_phdr->p_vaddr;
+ offset += delta;
+ mem_size -= delta;
+ fil_size -= delta;
+ elf_phdr->p_vaddr += delta;
+ }
+
+ if (verbose) {
+ fprintf(stderr, "%s: extracting %#016lx-%#016lx (at %lx)\n",
+ prog_name, (long) elf_phdr->p_vaddr,
+ elf_phdr->p_vaddr + fil_size, offset);
+ }
+ } else
+#endif
+ {
+ aout = (struct exec *) buf;
+
+ if (!(aout->fh.f_flags & COFF_F_EXEC)) {
+ fprintf(stderr, "%s: %s is not in executable format\n",
+ prog_name, inname);
+ exit(1);
+ }
+
+ if (aout->fh.f_opthdr != sizeof(aout->ah)) {
+ fprintf(stderr, "%s: %s has unexpected optional header size\n",
+ prog_name, inname);
+ exit(1);
+ }
+
+ if (N_MAGIC(*aout) != OMAGIC) {
+ fprintf(stderr, "%s: %s is not an OMAGIC file\n",
+ prog_name, inname);
+ exit(1);
+ }
+ offset = N_TXTOFF(*aout);
+ fil_size = aout->ah.tsize + aout->ah.dsize;
+ mem_size = fil_size + aout->ah.bsize;
+
+ if (verbose) {
+ fprintf(stderr, "%s: extracting %#016lx-%#016lx (at %lx)\n",
+ prog_name, aout->ah.text_start,
+ aout->ah.text_start + fil_size, offset);
+ }
+ }
+
+ if (lseek(fd, offset, SEEK_SET) != offset) {
+ perror("lseek");
+ exit(1);
+ }
+
+ if (verbose) {
+ fprintf(stderr, "%s: copying %lu byte from %s\n",
+ prog_name, (unsigned long) fil_size, inname);
+ }
+
+ tocopy = fil_size;
+ while (tocopy > 0) {
+ n = tocopy;
+ if (n > sizeof(buf)) {
+ n = sizeof(buf);
+ }
+ tocopy -= n;
+ if ((size_t) read(fd, buf, n) != n) {
+ perror("read");
+ exit(1);
+ }
+ do {
+ nwritten = write(ofd, buf, n);
+ if ((ssize_t) nwritten == -1) {
+ perror("write");
+ exit(1);
+ }
+ n -= nwritten;
+ } while (n > 0);
+ }
+
+ if (pad) {
+ mem_size = ((mem_size + pad - 1) / pad) * pad;
+ }
+
+ tocopy = mem_size - fil_size;
+ if (tocopy > 0) {
+ fprintf(stderr,
+ "%s: zero-filling bss and aligning to %lu with %lu bytes\n",
+ prog_name, pad, (unsigned long) tocopy);
+
+ memset(buf, 0x00, sizeof(buf));
+ do {
+ n = tocopy;
+ if (n > sizeof(buf)) {
+ n = sizeof(buf);
+ }
+ nwritten = write(ofd, buf, n);
+ if ((ssize_t) nwritten == -1) {
+ perror("write");
+ exit(1);
+ }
+ tocopy -= nwritten;
+ } while (tocopy > 0);
+ }
+ return 0;
+}
diff --git a/sys-boot/milo/metadata.xml b/sys-boot/milo/metadata.xml
new file mode 100644
index 000000000000..1f77966e45f9
--- /dev/null
+++ b/sys-boot/milo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+ <email>taviso@gentoo.org</email>
+ <name>Tavis Ormandy</name>
+</maintainer>
+<longdescription>
+On Intel based PC systems, the BIOS firmware sets up the system and then loads the image to be run from the boot block of a DOS file system. This is more or less what MILO does on an Alpha based system, however there are several interesting differences between BIOS firmware and MILO, not least of which is that MILO includes and uses standard Linux device drivers unmodified. MILO is firmware, unlike LILO, which relies on the BIOS firmware to get itself loaded.
+</longdescription>
+</pkgmetadata>
diff --git a/sys-boot/milo/milo-2.4.18.ebuild b/sys-boot/milo/milo-2.4.18.ebuild
new file mode 100644
index 000000000000..7c5f192dd8ee
--- /dev/null
+++ b/sys-boot/milo/milo-2.4.18.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/milo/milo-2.4.18.ebuild,v 1.1 2003/12/09 08:12:43 seemant Exp $
+
+inherit flag-o-matic eutils ccc
+
+# Currently tested Systems:
+#
+# Ruffian: UX164, BX164
+#
+
+DESCRIPTION="The Alpha MIniLOader, for Alpha Machines without SRM"
+HOMEPAGE="http://www.suse.de/~stepan/"
+
+# ive tested this, and it seems to make little difference
+# which kernel version you use, so it makes sense to use the
+# latest available 2.2 kernel with the latest bugfixes/drivers/etc.
+
+kernel_version="2.2.25"
+milo_version="2.2-18"
+ldmilo_patch="20010430"
+
+# milo-2.2-18.tar.bz2 :- latest milo sources
+# linux-2.2.25.tar.bz2 :- latest linux 2.2 kernel sources
+# ldmilo-patched-20010430 :- Ruffian ldmilo utility, with bugfixes by Jay Eastabrook
+# linload.exe :- linload utility (ldmilo equivalent for non-ruffians).
+
+SRC_URI="http://www.suse.de/~stepan/source/milo-${milo_version}.tar.bz2
+ http://www.kernel.org/pub/linux/kernel/v2.2/linux-${kernel_version}.tar.bz2
+ http://cvs.gentoo.org/~taviso/milo/ldmilo-patched-${ldmilo_patch}
+ http://ftp.namesys.com/pub/reiserfs-for-2.2/linux-2.2.20-reiserfs-3.5.35.diff.bz2
+ http://cvs.gentoo.org/~taviso/milo/linload.exe
+ http://www.ibiblio.org/pub/Linux/docs/HOWTO/MILO-HOWTO"
+
+#
+# milo license is dec palcode license, dec bios emulation license, and gpl-2 rolled
+# into one big ugly package.
+#
+# the dec licenses say you can basically do anything you like, including modify
+# and redistribute for profit or non-profit, as long as its for use with Alpha
+# architecture.
+#
+
+LICENSE="MILO"
+SLOT="0"
+
+KEYWORDS="-* ~alpha"
+IUSE="ev6"
+
+DEPEND="sys-apps/kbd
+ >=sys-apps/sed-4"
+RDEPEND="sys-fs/mtools"
+
+PROVIDE="virtual/bootloader"
+
+S=${WORKDIR}/milo-${milo_version}
+
+# You can change the default MILO serial
+# number here, the MILO default is "Linux_is_Great!".
+# There are some below that i have made you can
+# use if you want, just uncomment the one you like.
+#
+# if you want to see how this works, to make your own
+# look at mkserial_no.c in the filesdir.
+#
+##### Linux_is_Great! ###################
+#milo_serial_number0=0x73695f78756e694c
+#milo_serial_number1=0x002174616572475f
+#
+##### Gentoo Linux. #####################
+milo_serial_number0=0x4c206f6f746e6547
+milo_serial_number1=0x0000002e78756e69
+#
+##### Gentoo/Alpha. #####################
+#milo_serial_number0=0x412f6f6f746e6547
+#milo_serial_number1=0x0000002e6168706c
+#
+##### Gentoo MILO. ######################
+#milo_serial_number0=0x4d206f6f746e6547
+#milo_serial_number1=0x000000002e4f4c49
+#
+##### |d|i|g|i|t|a|l| ###################
+#milo_serial_number0=0x697c677c697c647c
+#milo_serial_number1=0x007c6c7c617c747c;
+#
+
+src_unpack() {
+ # unpack everything the kernel and milo sources
+ unpack linux-${kernel_version}.tar.bz2
+ unpack milo-${milo_version}.tar.bz2
+
+ # gcc3 fixes, and some tweaks to get a build, also
+ # reiserfs support for the kernel (and milo).
+ cd ${WORKDIR}/linux; epatch ${FILESDIR}/linux-${kernel_version}-gcc3-milo.diff || die
+ cd ${WORKDIR}/linux; epatch ${DISTDIR}/linux-2.2.20-reiserfs-3.5.35.diff.bz2 || die
+ cd ${S}; epatch ${FILESDIR}/milo-${milo_version}-gcc3-gentoo.diff || die
+}
+
+src_compile() {
+ # no ccc sorry :(
+ is-ccc && die "sorry, ccc not supported."
+
+ unset MILO_ARCH
+ for arches in "Alpha-XLT XLT" \
+ "Alpha-XL XL" \
+ "AlphaBook1 BOOK1" \
+ "Avanti AVANTI" \
+ "Cabriolet CABRIOLET" \
+ "EB66 EB66" \
+ "EB66+ EB66P" \
+ "EB64+ EB64P" \
+ "EB164 EB164" \
+ "PC164 PC164" \
+ "LX164 LX164" \
+ "SX164 SX164" \
+ "Noname NONAME" \
+ "Takara TAKARA" \
+ "Mikasa MIKASA" \
+ "Alcor ALCOR" \
+ "Miata MIATA" \
+ "Ruffian RUFFIAN" \
+ "Platform2000 P2K" \
+ "UDB UDB"
+ do
+ if [ -z "${MILO_IMAGE}" ]; then
+ MILO_ARCH="${MILO_ARCH} \"${arches}\""
+ else
+ if echo ${arches} | grep -i ${MILO_IMAGE}; then
+ MILO_ARCH="\"${arches}\""
+ fi
+ fi
+ done
+
+ if [ -z "${MILO_ARCH}" ]; then
+ eerror "Sorry, but ${MILO_IMAGE} doesnt look valid to me"
+ eerror "Consult the Alpha installation guide, or the ebuild"
+ eerror "for a list of available Alphas."
+ die "${MILO_IMAGE} not supported, or not recognised."
+ fi
+
+ sed -i "s!__MILO_ARCHES__!${MILO_ARCH}!g" ${S}/tools/scripts/build
+
+ ewarn
+ ewarn "seriously, this is going to take a while, go get some coffee..."
+ ewarn
+ einfo "this ebuild will build the standard MILO images, similar to those"
+ einfo "distributed with some distributions, and the images provided with"
+ einfo "the official MILO sources."
+ einfo
+ einfo "of course, the beauty of MILO is it can support any device supported"
+ einfo "by the linux kernel, so if you need support for non-standard hardware"
+ einfo "set the path to the .config you want in \$custom_milo_kernel_config and"
+ einfo "i will use it instead of the default."
+ ewarn
+
+ einfon "continuing in..."
+ for ((i=10;i>0;i--))
+ do
+ echo -en "${BAD}${i} " # removed \a, might annoy some users.
+ sleep 1
+ done
+ echo ${NORMAL}
+
+ # get kernel configured
+ cp ${custom_milo_kernel_config:-${S}/Documentation/config/linux-2.2.19-SuSE.config} \
+ ${WORKDIR}/linux/.config
+ cd ${WORKDIR}/linux; yes n | make oldconfig || die "unable to configure kernel."
+
+ # we're building a generic kernel that defaults to ev5, but theres no
+ # reason why we cant tweak the instruction set.
+ # im not sure if you can actually pull a system performance gain/faster
+ # boot from optimising milo, but at least you'll get a faster milo pager ;)
+ mcpu_flag="`get-flag mcpu`"
+ if [ ! -z "${mcpu_flag}" ]; then
+ sed -i "s/\(CFLAGS := \$(CFLAGS) \)-mcpu=ev5$/\1-mcpu=${mcpu_flag:-ev5}/g" \
+ ${WORKDIR}/linux/arch/alpha/Makefile
+ fi
+
+ # build the generic linux kernel, of course if you have
+ # hardware not supported by this generic kernel, you are free
+ # to hack it (or the .config used here).
+ einfo "building a generic kernel for use with milo..."
+ unset CC DISTCC_HOSTS; make dep vmlinux || die "unable to build generic kernel for milo."
+ cat ${FILESDIR}/objstrip.c > ${WORKDIR}/linux/arch/alpha/boot/tools/objstrip.c
+
+ # make the objstrip utility.
+ gcc ${WORKDIR}/linux/arch/alpha/boot/tools/objstrip.c -o \
+ ${WORKDIR}/linux/arch/alpha/boot/tools/objstrip || die "couldnt build objstrip."
+ einfo "kernel build complete."
+ einfo "building milo images..."
+
+ # we have a choice here, milo can set the serial number to just about
+ # anything we like, the milo author has chosen "Linux_is_Great!", which
+ # is a bit cheesy, but we will leave it as default if user hasnt chosen
+ # something else.
+ # see above for options.
+
+ append-flags -DMILO_SERIAL_NUMBER0="${milo_serial_number0:-0x73695f78756e694c}"
+ append-flags -DMILO_SERIAL_NUMBER1="${milo_serial_number1:-0x002174616572475f}"
+
+ # the Makefile missed this :-/
+ cd ${S}/tools/common; make || die "couldnt make commonlib."
+
+ # build all the milo images.
+ cd ${S}; tools/scripts/build || die "failed to build milo images."
+
+ # put the ldmilo utility there.
+ cp ${DISTDIR}/ldmilo-patched-${ldmilo_patch} ${S}/binaries/ldmilo.exe
+ cp ${DISTDIR}/linload.exe ${S}/binaries/linload.exe
+
+}
+
+src_install() {
+
+ cd ${S}; dodir /opt/milo
+ insinto /opt/milo
+
+ einfo "Installing MILO images..."
+ for i in binaries/*
+ do
+ einfo " ${i}"
+ doins ${i}
+ done
+
+ cd ${S}/Documentation
+
+ dodoc ChangeLog filesystem Nikita.Todo README.milo Todo LICENSE README.BSD Stuff WhatIsMilo \
+ ${FILESDIR}/README-gentoo ${FILESDIR}/mkserial_no.c ${DISTDIR}/MILO-HOWTO
+
+}
+
+pkg_postinst() {
+ einfo "The MILO images have been installed into /opt/milo."
+ einfo "There are instructions in /usr/share/doc/${P} for making MILO boot floppies."
+ einfo "Alternative methods, (flash, srm, debug monitor, etc) are described in the MILO-HOWTO."
+ einfo
+ einfo "The important docs to read are the README-gentoo and the MILO-HOWTO."
+ einfo
+ ewarn "PLEASE, PLEASE, PLEASE, let me know if this works or not, i need to know which systems"
+ ewarn "need tweaking, and which ones are good to go. You can email me at taviso@gentoo.org"
+ einfo
+}
diff --git a/sys-boot/nettrom/ChangeLog b/sys-boot/nettrom/ChangeLog
new file mode 100644
index 000000000000..34f1ae2274c5
--- /dev/null
+++ b/sys-boot/nettrom/ChangeLog
@@ -0,0 +1,15 @@
+# ChangeLog for sys-apps/nettrom
+# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/nettrom/ChangeLog,v 1.1 2003/12/09 08:12:52 seemant Exp $
+
+*nettrom-2.3.3 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ nettrom-2.3.3.ebuild:
+ moved from sys-apps to sys-boot
+
+*nettrom-2.3.3 (23 Feb 2003)
+
+ 23 Feb 2003; Zach Welch <zwelch@gentoo.org> nettrom-2.3.3.ebuild files/digest-nettrom-2.3.3 :
+ Add new ebuild for Netwinder bootloader
+
diff --git a/sys-boot/nettrom/Manifest b/sys-boot/nettrom/Manifest
new file mode 100644
index 000000000000..69dfe3f47123
--- /dev/null
+++ b/sys-boot/nettrom/Manifest
@@ -0,0 +1,4 @@
+MD5 1ce348086cae1ea497d5ea0f8d6bd114 ChangeLog 539
+MD5 d9aab9bd1f6fcf9d2ddaf04da2551725 nettrom-2.3.3.ebuild 669
+MD5 8ef75eba39772bdd1a8facc7815dbebb metadata.xml 161
+MD5 1a82a3930c0932aba9e21a61bd499c77 files/digest-nettrom-2.3.3 65
diff --git a/sys-boot/nettrom/files/digest-nettrom-2.3.3 b/sys-boot/nettrom/files/digest-nettrom-2.3.3
new file mode 100644
index 000000000000..aae0508ab1f4
--- /dev/null
+++ b/sys-boot/nettrom/files/digest-nettrom-2.3.3
@@ -0,0 +1 @@
+MD5 6568087193d353d9cae6917d3afc5f2e nettrom-2.3.3.tar.gz 806471
diff --git a/sys-boot/nettrom/metadata.xml b/sys-boot/nettrom/metadata.xml
new file mode 100644
index 000000000000..5c40e771595f
--- /dev/null
+++ b/sys-boot/nettrom/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>embedded</herd>
+</pkgmetadata>
diff --git a/sys-boot/nettrom/nettrom-2.3.3.ebuild b/sys-boot/nettrom/nettrom-2.3.3.ebuild
new file mode 100644
index 000000000000..34ff93a2e0ce
--- /dev/null
+++ b/sys-boot/nettrom/nettrom-2.3.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/nettrom/nettrom-2.3.3.ebuild,v 1.1 2003/12/09 08:12:52 seemant Exp $
+
+DESCRIPTION="NetWinder ARM bootloader and utilities"
+HOMEPAGE="http://www.netwinder.org/"
+SRC_URI="http://gentoo.superlucidity.net/arm/netwinder/${P}.tar.gz"
+LICENSE="as-is"
+SLOT="0"
+
+# no one but arm wants this package - binaries included
+KEYWORDS="arm -x86 -amd64 -alpha -ppc -mips -hppa -sparc"
+
+IUSE=""
+DEPEND="virtual/glibc"
+#RDEPEND=""
+
+S=${WORKDIR}/${P}
+
+src_unpack() {
+ /bin/true
+}
+
+src_install() {
+ cd ${D}
+ unpack ${P}.tar.gz
+}
+
diff --git a/sys-boot/palo/ChangeLog b/sys-boot/palo/ChangeLog
new file mode 100644
index 000000000000..06be992dd191
--- /dev/null
+++ b/sys-boot/palo/ChangeLog
@@ -0,0 +1,39 @@
+# ChangeLog for sys-apps/palo
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/palo/ChangeLog,v 1.1 2003/12/09 08:13:02 seemant Exp $
+
+*palo-1.2_pre20030630 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ palo-1.2_pre20030115.ebuild, palo-1.2_pre20030630.ebuild, files/palo.conf:
+ moved from sys-apps to sys-boot
+
+*palo-1.2_pre20030630 (01 Jul 2003)
+
+ 01 Jul 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030630.ebuild :
+ Version bump.
+
+*palo-1.2_pre20030115 (05 Feb 2003)
+
+ 08 Apr 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Replaced every "-arch" keywords by "-*".
+
+ 29 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ scr_install() rewritted and added support for $CFLAGS in scr_compile().
+ Config file was updated.
+
+ 27 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Replaced einstall by make install since it was not working.
+
+ 19 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Done some cleanup and better use of gentoo provided ebuild functions.
+
+ 09 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Added -mips to keywords.
+
+ 06 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Added -ppc -x86 -alpha -sparc to KEYWORDS. Fixed PROVIDE.
+
+ 05 Feb 2003; Guy Martin <gmsoft@gentoo.org> palo-1.2_pre20030115.ebuild :
+ Initial import.
+
diff --git a/sys-boot/palo/Manifest b/sys-boot/palo/Manifest
new file mode 100644
index 000000000000..2eae40c23511
--- /dev/null
+++ b/sys-boot/palo/Manifest
@@ -0,0 +1,7 @@
+MD5 390b42e7302b14f706016c527973ab99 palo-1.2_pre20030115.ebuild 959
+MD5 37097e8e2e6289a7db6aebabec2f3b67 ChangeLog 1513
+MD5 9eb3e7bb4ebac420842bd3e90dbf8726 metadata.xml 218
+MD5 12faa444c908eddbfe4f6da94ed83f51 palo-1.2_pre20030630.ebuild 972
+MD5 9bf95bc1a23c00c4381e3b382dc187b7 files/palo.conf 218
+MD5 148ea82d5c29fd7d4822d57c72e8db0a files/digest-palo-1.2_pre20030115 71
+MD5 7ee737710bef1fd5dd94d975eaf30721 files/digest-palo-1.2_pre20030630 71
diff --git a/sys-boot/palo/files/digest-palo-1.2_pre20030115 b/sys-boot/palo/files/digest-palo-1.2_pre20030115
new file mode 100644
index 000000000000..031beb540cda
--- /dev/null
+++ b/sys-boot/palo/files/digest-palo-1.2_pre20030115
@@ -0,0 +1 @@
+MD5 fac32545c2e5c3fd608f1fa1eea41e78 palo-1.2-CVS20030115.tar.gz 97726
diff --git a/sys-boot/palo/files/digest-palo-1.2_pre20030630 b/sys-boot/palo/files/digest-palo-1.2_pre20030630
new file mode 100644
index 000000000000..7a32850f8ff6
--- /dev/null
+++ b/sys-boot/palo/files/digest-palo-1.2_pre20030630
@@ -0,0 +1 @@
+MD5 bfebdc31a117ce67781d2ae5a43c7b3a palo-1.2-CVS20030630.tar.gz 97791
diff --git a/sys-boot/palo/files/palo.conf b/sys-boot/palo/files/palo.conf
new file mode 100644
index 000000000000..40dc270af87f
--- /dev/null
+++ b/sys-boot/palo/files/palo.conf
@@ -0,0 +1,7 @@
+# Please read /usr/share/doc/palo/palo.conf for more info
+
+--commandline=2/boot/vmlinux root=/dev/sda2 HOME=/
+--init-partitioned=/dev/sda
+
+#Uncomment this if you want a rescue kernel
+--recoverykernel=/boot/vmlinux.old
diff --git a/sys-boot/palo/metadata.xml b/sys-boot/palo/metadata.xml
new file mode 100644
index 000000000000..ed2a9d8b7fb8
--- /dev/null
+++ b/sys-boot/palo/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>hppa</herd>
+<longdescription>
+The PArisc Linux Loader
+</longdescription>
+</pkgmetadata>
diff --git a/sys-boot/palo/palo-1.2_pre20030115.ebuild b/sys-boot/palo/palo-1.2_pre20030115.ebuild
new file mode 100644
index 000000000000..15f8ddf51bd8
--- /dev/null
+++ b/sys-boot/palo/palo-1.2_pre20030115.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/palo/palo-1.2_pre20030115.ebuild,v 1.1 2003/12/09 08:13:02 seemant Exp $
+
+DESCRIPTION="PALO : PArisc Linux Loader"
+HOMEPAGE="http://parisc-linux.org/"
+SRC_URI="http://ftp.parisc-linux.org/cvs/palo-1.2-CVS20030115.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+
+S=${WORKDIR}/palo
+
+#Compile only on hppa stations
+KEYWORDS="hppa -*"
+IUSE=""
+
+PROVIDE="virtual/bootloader"
+
+DEPEND=">=glibc-2.2.4"
+
+src_compile() {
+ emake -C palo CFLAGS="${CFLAGS} -I../include -I../lib" || die
+ emake -C ipl CFLAGS="${CFLAGS} -I. -I../lib -I../include -fwritable-strings -mdisable-fpregs -Wall" || die
+ emake MACHINE=parisc iplboot
+ emake || die
+}
+
+src_install() {
+ dosbin palo/palo
+ doman palo.8
+ dohtml README.html
+ dodoc README
+ dodoc palo.conf
+
+ insinto /etc
+ doins ${FILESDIR}/palo.conf
+
+ insinto /usr/share/palo
+ doins iplboot
+}
diff --git a/sys-boot/palo/palo-1.2_pre20030630.ebuild b/sys-boot/palo/palo-1.2_pre20030630.ebuild
new file mode 100644
index 000000000000..bf51b83bc950
--- /dev/null
+++ b/sys-boot/palo/palo-1.2_pre20030630.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/palo/palo-1.2_pre20030630.ebuild,v 1.1 2003/12/09 08:13:02 seemant Exp $
+
+MY_V=${PV/_pre/-CVS}
+DESCRIPTION="PALO : PArisc Linux Loader"
+HOMEPAGE="http://parisc-linux.org/"
+SRC_URI="http://ftp.parisc-linux.org/cvs/palo-${MY_V}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+
+S=${WORKDIR}/palo
+
+#Compile only on hppa stations
+KEYWORDS="hppa -*"
+IUSE=""
+
+PROVIDE="virtual/bootloader"
+
+DEPEND=">=glibc-2.2.4"
+
+src_compile() {
+ emake -C palo CFLAGS="${CFLAGS} -I../include -I../lib" || die
+ emake -C ipl CFLAGS="${CFLAGS} -I. -I../lib -I../include -fwritable-strings -mdisable-fpregs -Wall" || die
+ emake MACHINE=parisc iplboot
+ emake || die
+}
+
+src_install() {
+ dosbin palo/palo
+ doman palo.8
+ dohtml README.html
+ dodoc README
+ dodoc palo.conf
+
+ insinto /etc
+ doins ${FILESDIR}/palo.conf
+
+ insinto /usr/share/palo
+ doins iplboot
+}
diff --git a/sys-boot/quik/ChangeLog b/sys-boot/quik/ChangeLog
new file mode 100644
index 000000000000..222a8a12dca8
--- /dev/null
+++ b/sys-boot/quik/ChangeLog
@@ -0,0 +1,55 @@
+# ChangeLog for sys-apps/quik
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/quik/ChangeLog,v 1.1 2003/12/09 08:13:13 seemant Exp $
+
+*quik-2.0.1.0-r3 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ quik-2.0.1.0-r1.ebuild, quik-2.0.1.0-r2.ebuild, quik-2.0.1.0-r3.ebuild,
+ quik-2.0.1k.ebuild, files/quik-2.0.1.0-fclose-bug.patch,
+ files/quik-2.0.1.0-gcc-321.patch:
+ moved from sys-apps to sys-boot
+
+*quik-2.0.1k (10 Jun 2003)
+
+ 10 Jun 2003; Graham Forest <vladimir@gentoo.org> Manifest,
+ quik-2.0.1k.ebuild:
+ Added 2.0.1k, which uses completely different patches. It's currently
+ package.masked, due to needing testing, but it should compile on gcc 3.x now
+
+*quik-2.0.1.0-r3 (04 Feb 2003)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> quik-2.0.1.0-r3.ebuild :
+ This is definitely not for mips.
+
+ 04 Feb 2003; Jon Nall <nall@gentoo.org> files/quik-2.0.1.0-fclose-bug.patch :
+ fixed patch to avoid SIGSEGV. this closes bug #14817
+
+*quik-2.0.1.0-r2 (28 Jan 2003)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> quik-2.0.1.0-r2.ebuild :
+ This is definitely not for mips.
+
+ 28 Jan 2003; Jon Nall <nall@gentoo.org> quik-2.0.1.0-r2.ebuild :
+ fixed to work with gcc-3.2.1 (fixed gentoo bug #14655)
+
+*quik-2.0.1.0-r1 (Wed Apr 24 10:34:12 2002 CEST)
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> quik-2.0.1.0-r1.ebuild :
+ This is definitely not for mips.
+
+ 06 Jan 2003; Seemant Kulleen <seemant@gentoo.org> quik-2.0.1.0-r1.ebuild :
+
+ PROVIDE=virtual/bootloader
+
+ 29 Sep 2002; Donny Davies <woodchip@gentoo.org> quik-2.0.1.0-r1.ebuild :
+ Now uses mount-boot eclass, #7903.
+
+ 24 Sep 2002; Owen Stampflee <owen@gentoo.org> quik-2.0.1.0-r1.ebuild :
+ Fixed some linker wackiness on GCC 3.2 systems.
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> quik-2.0.1.0-r1.ebuild :
+ Added LICENSE, SLOT.
+
+Wed Apr 24 10:34:56 2002 CEST; pvdabeel <pvdabeel@gentoo.org> all:
+This is an initial .ebuild for quik-2.0.1.0-r1 for ppc machines.
diff --git a/sys-boot/quik/Manifest b/sys-boot/quik/Manifest
new file mode 100644
index 000000000000..71955c699445
--- /dev/null
+++ b/sys-boot/quik/Manifest
@@ -0,0 +1,12 @@
+MD5 2cb6b9d84c4c6c8c737b5d1bd4d3e4cc quik-2.0.1k.ebuild 1099
+MD5 d6cafbf993f918418cf11d25ab4d4dec quik-2.0.1.0-r1.ebuild 1701
+MD5 533330963115c860c088e130b1844625 quik-2.0.1.0-r3.ebuild 2012
+MD5 0ed5e19142d2503e34534f4be61e0c3e quik-2.0.1.0-r2.ebuild 1835
+MD5 d47379412e1cda301949f193be3bf557 ChangeLog 2063
+MD5 52f9d8e98c8931645c57a3de1c36727d metadata.xml 156
+MD5 d82779b77dcea6480025a86ce1a622d7 files/quik-2.0.1.0-gcc-321.patch 493
+MD5 490acba710c1c30fda817d7e8dd9eab3 files/quik-2.0.1.0-fclose-bug.patch 221
+MD5 3325de32d341278b3ebab8702e03fdfd files/digest-quik-2.0.1k 63
+MD5 8a63d4b2ce3cd4ebfc702aedef92c190 files/digest-quik-2.0.1.0-r1 127
+MD5 8a63d4b2ce3cd4ebfc702aedef92c190 files/digest-quik-2.0.1.0-r2 127
+MD5 8a63d4b2ce3cd4ebfc702aedef92c190 files/digest-quik-2.0.1.0-r3 127
diff --git a/sys-boot/quik/files/digest-quik-2.0.1.0-r1 b/sys-boot/quik/files/digest-quik-2.0.1.0-r1
new file mode 100644
index 000000000000..1aa7f3e72997
--- /dev/null
+++ b/sys-boot/quik/files/digest-quik-2.0.1.0-r1
@@ -0,0 +1,2 @@
+MD5 d546fd92dfa16255e062fa8505a5b8d4 quik_2.0e.orig.tar.gz 39440
+MD5 71828c98994bf3a3f7d08bc0672e33e5 quik_2.0e-1.diff.gz 7694
diff --git a/sys-boot/quik/files/digest-quik-2.0.1.0-r2 b/sys-boot/quik/files/digest-quik-2.0.1.0-r2
new file mode 100644
index 000000000000..1aa7f3e72997
--- /dev/null
+++ b/sys-boot/quik/files/digest-quik-2.0.1.0-r2
@@ -0,0 +1,2 @@
+MD5 d546fd92dfa16255e062fa8505a5b8d4 quik_2.0e.orig.tar.gz 39440
+MD5 71828c98994bf3a3f7d08bc0672e33e5 quik_2.0e-1.diff.gz 7694
diff --git a/sys-boot/quik/files/digest-quik-2.0.1.0-r3 b/sys-boot/quik/files/digest-quik-2.0.1.0-r3
new file mode 100644
index 000000000000..1aa7f3e72997
--- /dev/null
+++ b/sys-boot/quik/files/digest-quik-2.0.1.0-r3
@@ -0,0 +1,2 @@
+MD5 d546fd92dfa16255e062fa8505a5b8d4 quik_2.0e.orig.tar.gz 39440
+MD5 71828c98994bf3a3f7d08bc0672e33e5 quik_2.0e-1.diff.gz 7694
diff --git a/sys-boot/quik/files/digest-quik-2.0.1k b/sys-boot/quik/files/digest-quik-2.0.1k
new file mode 100644
index 000000000000..e28b63e10ca8
--- /dev/null
+++ b/sys-boot/quik/files/digest-quik-2.0.1k
@@ -0,0 +1 @@
+MD5 e2b8243ab018c4a39544583e69c6d75f quik-2.0-1k.src.rpm 50796
diff --git a/sys-boot/quik/files/quik-2.0.1.0-fclose-bug.patch b/sys-boot/quik/files/quik-2.0.1.0-fclose-bug.patch
new file mode 100644
index 000000000000..9d43025cf89c
--- /dev/null
+++ b/sys-boot/quik/files/quik-2.0.1.0-fclose-bug.patch
@@ -0,0 +1,10 @@
+--- quik/quik.c.orig 2003-02-04 23:40:21.000000000 -0600
++++ quik/quik.c 2003-02-04 23:40:39.000000000 -0600
+@@ -454,6 +454,7 @@
+ exit(0);
+ }
+ }
++ fclose(f);
+ }
+
+ config_file = NULL;
diff --git a/sys-boot/quik/files/quik-2.0.1.0-gcc-321.patch b/sys-boot/quik/files/quik-2.0.1.0-gcc-321.patch
new file mode 100644
index 000000000000..f569a94cff6a
--- /dev/null
+++ b/sys-boot/quik/files/quik-2.0.1.0-gcc-321.patch
@@ -0,0 +1,22 @@
+--- second/file.c.orig 2003-01-28 08:13:59.000000000 -0600
++++ second/file.c 2003-01-28 08:14:09.000000000 -0600
+@@ -23,7 +23,6 @@
+ #include <sys/types.h>
+ #include <errno.h>
+ #include "quik.h"
+-typedef int FILE;
+ #include <linux/ext2_fs.h>
+ #include <ext2fs/ext2fs.h>
+ #include <setjmp.h>
+@@ -167,11 +166,6 @@
+ return 1;
+ }
+
+-int sprintf (char *buf, char *fmt,...)
+-{
+- strcpy (buf, fmt);
+-}
+-
+ void com_err (const char *a, long i, const char *fmt,...)
+ {
+ printf ((char *) fmt);
diff --git a/sys-boot/quik/metadata.xml b/sys-boot/quik/metadata.xml
new file mode 100644
index 000000000000..034c09eb248a
--- /dev/null
+++ b/sys-boot/quik/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>ppc</herd>
+</pkgmetadata>
diff --git a/sys-boot/quik/quik-2.0.1.0-r1.ebuild b/sys-boot/quik/quik-2.0.1.0-r1.ebuild
new file mode 100644
index 000000000000..9a9ec07d443a
--- /dev/null
+++ b/sys-boot/quik/quik-2.0.1.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/quik/quik-2.0.1.0-r1.ebuild,v 1.1 2003/12/09 08:13:13 seemant Exp $
+
+inherit mount-boot
+
+S="${WORKDIR}/quik-2.0"
+HOMEPAGE=""
+DESCRIPTION="OldWorld PowerMac Bootloader"
+MY_P="quik_2.0e.orig.tar.gz"
+DEB_P="quik_2.0e-1.diff"
+DEB_URI="ftp://ftp.debian.org/debian/pool/main/q/quik"
+SRC_URI="${DEB_URI}/${MY_P} ${DEB_URI}/${DEB_P}.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="virtual/glibc"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${MY_P} || die
+ zcat ${DISTDIR}/${DEB_P}.gz | patch -p1 -d ${S}|| die
+ [ -z "${CC}" ] && CC=gcc
+ if [ "`${CC} -dumpversion | cut -d. -f1,2`" != "2.95" ] ; then
+ cd ${S}/second
+ cp Makefile Makefile.orig
+ sed -e s:'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs':'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs -lc -lgcc -L/usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.2/': Makefile.orig > Makefile
+
+ fi
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ #i'll have a look at this later
+ install -d -m 755 ${D}/sbin || die
+ install -d -m 755 ${D}/etc || die
+ install -d -m 755 ${D}/boot || die
+ install -d -m 755 ${D}/usr/share/man/man5 || die
+ install -d -m 755 ${D}/usr/share/man/man8 || die
+ install -s -m 755 quik/quik ${D}/sbin || DIE
+ install -m 644 man/quik.conf.5 \
+ ${D}/usr/share/man/man5 || DIE
+ install -m 644 man/quik.8 man/bootstrap.8 \
+ ${D}/usr/share/man/man8 || DIE
+
+ install -m 444 first/first.b second/second.b \
+ second/second ${D}/boot || die
+ install -m 644 etc/quik.conf ${D}/etc || die
+}
diff --git a/sys-boot/quik/quik-2.0.1.0-r2.ebuild b/sys-boot/quik/quik-2.0.1.0-r2.ebuild
new file mode 100644
index 000000000000..7c1a0b8d9ddb
--- /dev/null
+++ b/sys-boot/quik/quik-2.0.1.0-r2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/quik/quik-2.0.1.0-r2.ebuild,v 1.1 2003/12/09 08:13:13 seemant Exp $
+
+inherit mount-boot
+
+S="${WORKDIR}/quik-2.0"
+HOMEPAGE=""
+DESCRIPTION="OldWorld PowerMac Bootloader"
+MY_P="quik_2.0e.orig.tar.gz"
+DEB_P="quik_2.0e-1.diff"
+DEB_URI="ftp://ftp.debian.org/debian/pool/main/q/quik"
+SRC_URI="${DEB_URI}/${MY_P} ${DEB_URI}/${DEB_P}.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="virtual/glibc"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${MY_P} || die
+ zcat ${DISTDIR}/${DEB_P}.gz | patch -p1 -d ${S}|| die
+ [ -z "${CC}" ] && CC=gcc
+ GCC_VERSION="`${CC} -dumpversion | cut -d. -f1,2,3`"
+ einfo "GCC_VERSION: ${GCC_VERSION}"
+ if [ "${GCC_VERSION}" != "2.95" ] ; then
+ cd ${S}/second
+ patch -p1 < ${FILESDIR}/quik-2.0.1.0-gcc-321.patch
+ cp Makefile Makefile.orig
+ sed -e s:'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs':'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs -lc -lgcc -L/usr/lib/gcc-lib/powerpc-unknown-linux-gnu/'${GCC_VERSION}/: Makefile.orig > Makefile
+
+ fi
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ #i'll have a look at this later
+ install -d -m 755 ${D}/sbin || die
+ install -d -m 755 ${D}/etc || die
+ install -d -m 755 ${D}/boot || die
+ install -d -m 755 ${D}/usr/share/man/man5 || die
+ install -d -m 755 ${D}/usr/share/man/man8 || die
+ install -s -m 755 quik/quik ${D}/sbin || DIE
+ install -m 644 man/quik.conf.5 \
+ ${D}/usr/share/man/man5 || DIE
+ install -m 644 man/quik.8 man/bootstrap.8 \
+ ${D}/usr/share/man/man8 || DIE
+
+ install -m 444 first/first.b second/second.b \
+ second/second ${D}/boot || die
+ install -m 644 etc/quik.conf ${D}/etc || die
+}
diff --git a/sys-boot/quik/quik-2.0.1.0-r3.ebuild b/sys-boot/quik/quik-2.0.1.0-r3.ebuild
new file mode 100644
index 000000000000..a786022f1347
--- /dev/null
+++ b/sys-boot/quik/quik-2.0.1.0-r3.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/quik/quik-2.0.1.0-r3.ebuild,v 1.1 2003/12/09 08:13:13 seemant Exp $
+
+inherit mount-boot
+
+S="${WORKDIR}/quik-2.0"
+HOMEPAGE=""
+DESCRIPTION="OldWorld PowerMac Bootloader"
+MY_P="quik_2.0e.orig.tar.gz"
+DEB_P="quik_2.0e-1.diff"
+DEB_URI="ftp://ftp.debian.org/debian/pool/main/q/quik"
+SRC_URI="${DEB_URI}/${MY_P} ${DEB_URI}/${DEB_P}.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="virtual/glibc"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${MY_P} || die
+ zcat ${DISTDIR}/${DEB_P}.gz | patch -p1 -d ${S}|| die
+ [ -z "${CC}" ] && CC=gcc
+ GCC_VERSION="`${CC} -dumpversion | cut -d. -f1,2,3`"
+ einfo "GCC_VERSION: ${GCC_VERSION}"
+ cd ${S}/quik
+ # this patch fixes bug #14817
+ einfo "Fixing missing fclose()"
+ patch -p1 < ${FILESDIR}/quik-2.0.1.0-fclose-bug.patch || die "patch failed"
+ if [ "${GCC_VERSION}" != "2.95" ] ; then
+ cd ${S}/second
+ patch -p1 < ${FILESDIR}/quik-2.0.1.0-gcc-321.patch || die "patch failed"
+ cp Makefile Makefile.orig
+ sed -e s:'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs':'$(LD) $(LDFLAGS) -Bstatic -o second $(OBJS) -lext2fs -lc -lgcc -L/usr/lib/gcc-lib/powerpc-unknown-linux-gnu/'${GCC_VERSION}/: Makefile.orig > Makefile
+
+ fi
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ #i'll have a look at this later
+ install -d -m 755 ${D}/sbin || die
+ install -d -m 755 ${D}/etc || die
+ install -d -m 755 ${D}/boot || die
+ install -d -m 755 ${D}/usr/share/man/man5 || die
+ install -d -m 755 ${D}/usr/share/man/man8 || die
+ install -s -m 755 quik/quik ${D}/sbin || DIE
+ install -m 644 man/quik.conf.5 \
+ ${D}/usr/share/man/man5 || DIE
+ install -m 644 man/quik.8 man/bootstrap.8 \
+ ${D}/usr/share/man/man8 || DIE
+
+ install -m 444 first/first.b second/second.b \
+ second/second ${D}/boot || die
+ install -m 644 etc/quik.conf ${D}/etc || die
+}
diff --git a/sys-boot/quik/quik-2.0.1k.ebuild b/sys-boot/quik/quik-2.0.1k.ebuild
new file mode 100644
index 000000000000..ba5ec2b0c28b
--- /dev/null
+++ b/sys-boot/quik/quik-2.0.1k.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/quik/quik-2.0.1k.ebuild,v 1.1 2003/12/09 08:13:13 seemant Exp $
+
+inherit mount-boot
+
+S="${WORKDIR}/"
+MY_PV=${PV%.*}-${PV#*.*.}
+
+HOMEPAGE=""
+DESCRIPTION="OldWorld PowerMac Bootloader"
+SRC_URI="http://www.xs4all.nl/~eddieb/linuxppc/YDL3/quik-${MY_PV}.src.rpm"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="virtual/glibc
+ app-arch/rpm2targz"
+
+PROVIDE="virtual/bootloader"
+
+src_unpack() {
+ cd ${WORKDIR}
+ rpm2targz ${DISTDIR}/quik-${MY_PV}.src.rpm
+ tar -xzf ${WORKDIR}/quik-${MY_PV}.src.tar.gz || die
+ tar -xzf ${WORKDIR}/quik-2.0.tar.gz
+
+ cd ${WORKDIR}/quik-2.0
+ epatch ${WORKDIR}/quik_2.0e-0.1.diff
+ epatch ${WORKDIR}/quik-glibc2.2.patch
+ epatch ${WORKDIR}/quik-noargs.patch
+ epatch ${WORKDIR}/quik-j-k-diff.patch
+ epatch ${WORKDIR}/quik-k-dac.patch
+}
+
+src_compile() {
+ cd ${WORKDIR}/quik-2.0
+ emake || die
+}
+
+src_install() {
+ cd ${WORKDIR}/quik-2.0
+ DESTDIR=${D} make install
+ prepman /usr
+}
diff --git a/sys-boot/silo/ChangeLog b/sys-boot/silo/ChangeLog
new file mode 100644
index 000000000000..aee042fb4839
--- /dev/null
+++ b/sys-boot/silo/ChangeLog
@@ -0,0 +1,68 @@
+# ChangeLog for sys-apps/silo
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/silo/ChangeLog,v 1.1 2003/12/09 08:13:26 seemant Exp $
+
+*silo-1.3.1 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ silo-1.3.0-r1.ebuild, silo-1.3.1.ebuild, silo-1.3.2.ebuild,
+ files/silo_1.2.5-1.diff:
+ moved from sys-apps to sys-boot
+
+*silo-1.3.2 (04 Dec 2003)
+
+ 04 Dec 2003; Jason Wever <weeve@gentoo.org> silo-1.3.2.ebuild:
+ Version bump.
+
+ 10 Oct 2003; Alexander Gabert <pappy@gentoo.org> silo-1.3.0-r1.ebuild:
+ added hardened-gcc exclusion flags
+
+*silo-1.3.1 (31 Aug 2003)
+
+ 31 Aug 2003; Jason Wever <weeve@gentoo.org> silo-1.3.1.ebuild:
+ Version bump.
+
+ 16 Aug 2003; Jason Wever <weeve@gentoo.org> metadata.xml:
+ Added metadata.xml
+
+ 28 Jun 2003; Jason Wever <weeve@gentoo.org> silo-1.3.0-r1.ebuild:
+ Added a missing doc to the dodoc command.
+
+*silo-1.3.0-r1 (23 Jun 2003)
+
+ 23 Jun 2003; Jason Wever <weeve@gentoo.org> silo-1.3.0-r1.ebuild:
+ Updated ebuild to install documentation.
+
+*silo-1.3.0 (19 Apr 2003)
+
+ 20 Jun 2003; Jason Wever <weeve@gentoo.org> silo-1.3.0.ebuild:
+ Changed ~sparc keyword to sparc.
+
+ 19 Apr 2003; Joshua Kinard <kumba@gentoo.org> silo-1.3.0.ebuild :
+ New version (1.2.6 -> 1.3.0), New SILO Homepage: http://www.sparc-boot.org/
+
+
+*silo-1.2.5 (15 Feb 2002)
+
+ 22 Jun 2003; Joshua Kinard <kumba@gentoo.org> silo-1.2.5.ebuild, silo-1.2.6.ebuild:
+ Fixed b0rked KEYWORDS, reset to sparc-only
+
+ 24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> silo-1.2.5.ebuild silo-1.2.6.ebuild :
+ This is definitely not for mips.
+
+ 06 Jan 2003; Seemant Kulleen <seemant@gentoo.org> *.ebuild :
+
+ PROVIDE=virtual/bootloader
+
+ 14 Dec 2002; jack Morgan <jmorgan@gento.org> silo-1.2.6.ebuild :
+ Changed ~sparc keyword to sparc
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> silo-1.2.5.ebuild :
+ Added LICENSE, KEYWORDS, SLOT.
+
+ 15 Feb 2002; M.Thibaut <murphy@gentoo.org> ChangeLog :
+
+ Initial version of a SPARC boot loader for linux. I have not tested this
+ package!
diff --git a/sys-boot/silo/Manifest b/sys-boot/silo/Manifest
new file mode 100644
index 000000000000..17d452c52576
--- /dev/null
+++ b/sys-boot/silo/Manifest
@@ -0,0 +1,9 @@
+MD5 a79cce982bf0e8a250a716d9d1fb85bb silo-1.3.1.ebuild 699
+MD5 6ab40568bfafd7a794b00213a971e63e silo-1.3.2.ebuild 699
+MD5 35ebebca000d0ef807534be2769c8ead ChangeLog 2174
+MD5 f836042e500318f15fd92300511bd442 silo-1.3.0-r1.ebuild 1052
+MD5 64e92dc3614963db8a397f670749b6cf metadata.xml 369
+MD5 d64a6c9a2051c74be817cf525ead4db5 files/digest-silo-1.3.1 62
+MD5 ba569526e64ff4aae31e2eb37150f62d files/digest-silo-1.3.2 62
+MD5 fb91d749bdbdaee58c78d3da057f48fd files/silo_1.2.5-1.diff 20854
+MD5 83abd0a2622029e47ae371fbbe8e7f32 files/digest-silo-1.3.0-r1 62
diff --git a/sys-boot/silo/files/digest-silo-1.3.0-r1 b/sys-boot/silo/files/digest-silo-1.3.0-r1
new file mode 100644
index 000000000000..c5aee2266b72
--- /dev/null
+++ b/sys-boot/silo/files/digest-silo-1.3.0-r1
@@ -0,0 +1 @@
+MD5 990c919ff2e8bfe60c8a748cbd1a98e0 silo-1.3.0.tar.gz 173650
diff --git a/sys-boot/silo/files/digest-silo-1.3.1 b/sys-boot/silo/files/digest-silo-1.3.1
new file mode 100644
index 000000000000..d320b686572a
--- /dev/null
+++ b/sys-boot/silo/files/digest-silo-1.3.1
@@ -0,0 +1 @@
+MD5 3e3438ed97e5600e1741ab3905600c69 silo-1.3.1.tar.gz 172803
diff --git a/sys-boot/silo/files/digest-silo-1.3.2 b/sys-boot/silo/files/digest-silo-1.3.2
new file mode 100644
index 000000000000..725ea856c410
--- /dev/null
+++ b/sys-boot/silo/files/digest-silo-1.3.2
@@ -0,0 +1 @@
+MD5 1f27537cf7ba28d482493725758c3ebf silo-1.3.2.tar.gz 172798
diff --git a/sys-boot/silo/files/silo_1.2.5-1.diff b/sys-boot/silo/files/silo_1.2.5-1.diff
new file mode 100644
index 000000000000..0dbcda8a08cf
--- /dev/null
+++ b/sys-boot/silo/files/silo_1.2.5-1.diff
@@ -0,0 +1,713 @@
+--- silo-1.2.5.orig/bugs/silo
++++ silo-1.2.5/bugs/silo
+@@ -0,0 +1,7 @@
++Bug ID: 34897
++Summary: doesn't comprehend cprboot stuff
++Severity: wishlist
++Package: silo
++Submitter: Adam Di Carlo <adam@onshore.com>
++Date Submitted: Mon, 22 Mar 1999 16:33:00 GMT
++
+--- silo-1.2.5.orig/debian/local/siloconfig
++++ silo-1.2.5/debian/local/siloconfig
+@@ -0,0 +1,103 @@
++#!/usr/bin/perl
++#
++# /usr/sbin/siloconfig configure silo automatically
++# this program is a modified version of liloconfig
++# which is copyright by
++# Author: Bruce Perens <bruce@Pixar.com>
++# Maintainer: Bernd Eckenfels <ecki@debian.org>
++
++# siloconfig (C) 1998 Davide Barbieri <paci@debian.org>
++# (C) 2001 Ben Collins <bcollins@debian.org>
++# this software is GPLed
++
++$|=1;
++
++if ( ! (-f "/etc/fstab") ) {
++ exit(0);
++}
++
++if ($ENV{'DEBIAN_FRONTEND'} eq "noninteractive") {
++ print "\nNon-interactive, skipping silo configuration.\n";
++ exit(0);
++}
++
++print "SILO, the Sparc Improved Linux LOader, sets up your system to boot Linux\n";
++print "directly from your hard disk, without the need for a boot floppy or a net\n";
++print "boot.\n";
++
++@boilerplate = (
++ "# Generated by siloconfig\n",
++ "# (C) 1998 1999 Davide Barbieri <paci\@debian.org>\n",
++ "# partition=3\n",
++ "# install=/boot/boot.b\n",
++ "# map=/boot/map\n",
++ "message=/etc/motd\n",
++ "timeout=20\n",
++ "image=/vmlinuz\n",
++ "label=Linux\n",
++ "read-only\n"
++);
++
++sub asky {
++ print @_,"? [Yes] ";
++ $answer=<STDIN>;
++ return ( !($answer =~ /^[nN].*/) );
++}
++
++sub askn {
++ print @_,"? [No] ";
++ $answer=<STDIN>;
++ return ( $answer =~ /^[yY].*/ );
++}
++
++if (-T "/etc/silo.conf") {
++ # Trust and use the existing silo.conf.
++ print "\n";
++ print "You already have a SILO configuration in the file /etc/silo.conf\n";
++ if ( &asky("Install a boot block using your current SILO configuration") ) {
++ print "Running silo\n";
++ system("/sbin/silo -f");
++ exit(0);
++ } else {
++ print "\n";
++ if ( &askn("Wipe out your old SILO configuration and make a new one") ) {
++ print "Saving configuration in /etc/silo.conf.OLD\n";
++ rename("/etc/silo.conf", "/etc/silo.conf.OLD");
++ } else {
++ print "No changes made.\n";
++ exit(0);
++ }
++ }
++}
++
++# Create a silo.conf if one doesn't exist.
++open(FSTAB, "</etc/fstab");
++while ( $line=<FSTAB> ) {
++ if ( $line =~ m/^\#/ ) {
++ next;
++ }
++ ($device,$filesystem)=split(/[ \t]+/, $line);
++ if ( $filesystem =~ m:^/$: ) {
++ last;
++ }
++}
++if ( ! $filesystem =~ m:^/$: ) {
++ exit(0);
++}
++
++$disk = $device;
++$disk =~ s/[0-9]+$//;
++$partition = $device;
++$partition =~ s/$disk//;
++
++if ( &asky("Install a partition boot record to boot Linux from ", $device)) {
++ print "Creating small silo.conf and running silo.\n";
++ umask(022);
++ open(CONF, ">/etc/silo.conf");
++ chown(0, 0, "/etc/silo.conf");
++ print CONF "partition=".$partition, "\n", "root=".$device, "\n", @boilerplate;
++ close(CONF);
++ system("/sbin/silo -f");
++}
++
++exit(0);
+--- silo-1.2.5.orig/debian/packages.d/silo.in
++++ silo-1.2.5/debian/packages.d/silo.in
+@@ -0,0 +1,10 @@
++%conffiles%
++/etc/silo.conf
++%undocumented%
++siloconfig.8
++silocheck.8
++%postinst%
++#!/bin/sh
++/usr/sbin/siloconfig
++
++#DEBHELPER#
+--- silo-1.2.5.orig/debian/scripts/dbs-build.mk
++++ silo-1.2.5/debian/scripts/dbs-build.mk
+@@ -0,0 +1,92 @@
++#!/usr/bin/make -f
++# Separate tarball/patch build system by Adam Heath <doogie@debian.org>
++# Modified by Ben Collins <bcollins@debian.org>
++
++SHELL := /bin/bash -e
++SOURCE_DIR := build-tree
++STAMP_DIR := stampdir
++PATCH_DIR := debian/patches
++
++patched := $(STAMP_DIR)/patch
++unpacked := $(STAMP_DIR)/unpack
++
++ifdef TAR_DIR
++ BUILD_TREE := $(SOURCE_DIR)/$(TAR_DIR)
++else
++ BUILD_TREE := $(SOURCE_DIR)
++endif
++
++dh_mak_deps := $(shell DH_COMPAT=$(DH_COMPAT) perl debian/scripts/dh_split makedeps)
++dh_gen_deps := $(shell DH_COMPAT=$(DH_COMPAT) perl debian/scripts/dh_split gendeps)
++
++$(dh_mak_deps): $(dh_gen_deps)
++ perl debian/scripts/dh_split
++
++setup: $(dh_mak_deps)
++ dh_testdir
++ @-up-scripts
++ $(MAKE) -f debian/rules $(unpacked) $(patched)
++
++$(patched)/: $(STAMP_DIR)/created $(unpacked)
++ test -d $(STAMP_DIR)/patches || mkdir -p $(STAMP_DIR)/patches
++ @if [ -d "$(PATCH_DIR)" ]; then \
++ mkdir -p $(STAMP_DIR)/log/patches; \
++ for f in `(cd $(PATCH_DIR); find -type f ! -name 'chk-*') | sort | \
++ sed s,'./',,g`; do \
++ stampfile=$(STAMP_DIR)/patches/$$f; \
++ log=$(STAMP_DIR)/log/patches/$$f; \
++ if [ ! -e $$stampfile ]; then \
++ echo -n "Applying patch $(PATCH_DIR)/$$f ... "; \
++ if $(SHELL) debian/scripts/file2cat $(PATCH_DIR)/$$f | \
++ (cd $(BUILD_TREE);patch -p1 --no-backup-if-mismatch) > $$log 2>&1; then \
++ echo successful.; \
++ touch $$stampfile; \
++ else \
++ echo "failed! (check $$log for reason)"; \
++ exit 1; \
++ fi; \
++ else \
++ echo Already applied $(PATCH_DIR)/$$f.; \
++ fi; \
++ done; \
++ fi
++ touch $@
++
++$(unpacked): $(STAMP_DIR)/created
++ mkdir -p $(STAMP_DIR)/sources $(SOURCE_DIR) $(STAMP_DIR)/log/sources
++ @for f in `find . -type f -maxdepth 1 -name \*.tgz -o -name \*.tar.gz -o \
++ -name \*.tar.bz -o -name \*.tar.bz2 | sort | sed s,'./',,g`; do \
++ stampfile=$(STAMP_DIR)/sources/`basename $$f`; \
++ log=$(STAMP_DIR)/log/sources/`basename $$f`; \
++ if [ ! -e $$stampfile ]; then \
++ echo -n "Extracting source $$f ... "; \
++ if $(SHELL) debian/scripts/file2cat $$f | \
++ (cd $(SOURCE_DIR); tar xv) > $$log 2>&1; then \
++ echo successful.; \
++ touch $$stampfile; \
++ else \
++ echo failed!; \
++ exit 1; \
++ fi; \
++ else \
++ echo Already unpacked $$f.; \
++ fi; \
++ done
++ touch $@
++
++make_patch:
++ mv $(BUILD_TREE) $(BUILD_TREE).new
++ rm -rf $(STAMP_DIR)
++ $(MAKE) -f debian/rules $(unpacked) $(patched)
++ifndef TAR_DIR
++ diff -urN $(BUILD_TREE) $(BUILD_TREE).new > new.diff
++else
++ (cd $(SOURCE_DIR) && diff -urN $(TAR_DIR) $(TAR_DIR).new || true) > new.diff
++endif
++ rm -rf $(BUILD_TREE)
++ mv $(BUILD_TREE).new $(BUILD_TREE)
++ @echo; ls -l new.diff
++
++$(STAMP_DIR)/created:
++ test -d $(STAMP_DIR) || mkdir $(STAMP_DIR)
++ touch $(STAMP_DIR)/created
+--- silo-1.2.5.orig/debian/scripts/dh_split
++++ silo-1.2.5/debian/scripts/dh_split
+@@ -0,0 +1,83 @@
++#!/usr/bin/perl
++
++$control = 'debian/control';
++if ( -d 'debian/packages.d' ) {
++ $dir = 'debian/packages.d';
++} else {
++ $dir = 'debian';
++}
++$needclean = 0;
++$needlist = 0;
++$needdeps = 0;
++
++if (defined($ENV{'DH_COMPAT'})) {
++ $dh = $ENV{'DH_COMPAT'};
++} else {
++ $dh = 0;
++}
++
++if (@ARGV) {
++ $temp = shift;
++ if ($temp eq "clean") { $needclean = 1; }
++ elsif ($temp eq "makedeps") { $needlist = 1; }
++ elsif ($temp eq "gendeps") { $needdeps = 1; }
++}
++
++@packages = ();
++$first_package = "";
++
++open (CONTROL, "< $control");
++
++while (<CONTROL>) {
++ if (m/^Package:/) {
++ $package = (split)[1];
++ if ($first_package eq "" and $dh < 2) {
++ $first_package = $package;
++ }
++ if ( -f "${dir}/${package}.in" ) {
++ push @packages, $package;
++ }
++ }
++}
++
++close CONTROL;
++
++while (@packages) {
++ $package = shift(@packages);
++ $inhead = 1;
++ $opened = 0;
++ if ($needdeps) {
++ print "${dir}/${package}.in ";
++ next;
++ }
++ open (IN, "< ${dir}/${package}.in");
++ while (<IN>) {
++ if (m/^\%(.*)\%$/) {
++ if ($needclean) {
++ if ($package ne $first_package) {
++ system("rm -f debian/${package}.${1}");
++ } else {
++ system("rm -f debian/${1}");
++ }
++ } elsif ($needlist) {
++ if ($package ne $first_package) {
++ print "debian/${package}.${1} ";
++ } else {
++ print "debian/${1} ";
++ }
++ } else {
++ $inhead = 0;
++ if ($opened) { close OUT; } else { $opened = 1; }
++ if ($package ne $first_package) {
++ open OUT, "> debian/${package}.${1}";
++ } else {
++ open OUT, "> debian/${1}";
++ }
++ }
++ } elsif (!$inhead) {
++ print OUT $_;
++ }
++ }
++ close OUT;
++ close IN;
++}
+--- silo-1.2.5.orig/debian/scripts/file2cat
++++ silo-1.2.5/debian/scripts/file2cat
+@@ -0,0 +1,13 @@
++#!/bin/sh
++
++if [ "$1" = "" ]; then
++ echo "Usage: file2cat <file>"
++ exit 1
++fi
++
++case "$1" in
++ *.gz|*.Z|*.tgz) cmd=zcat;;
++ *.bz|*.bz2) cmd=bzcat;;
++ *) cmd=cat;;
++esac
++$cmd $1
+--- silo-1.2.5.orig/debian/README.build
++++ silo-1.2.5/debian/README.build
+@@ -0,0 +1,20 @@
++This package uses a form of source build based on DBS. To setup the
++source, run "debian/rules setup". This will extract the pristine source in
++build-dir/, apply patches from debian/patches/ and split the package
++scripts from debian/packages.d/ into their component files.
++
++A few cavaets. Modifying the source in build-tree/ or the package files in
++debian/, will not be preserved after the "clean" target is run. Actual
++files for packages are in debian/packages.d/ and will be regerated after
++being modified.
++
++To create patches for the source, you can remember several steps. There
++are two targes for handling source. The "unpack" target, will simply
++unpack the tarball(s) into build-tree/ and "patch" will apply all patches
++from debian/patches/. If you make any changes you can generate a new patch
++using the "make_patch" target. This will move your current sources under
++build-tree/, unpack the source+patches again, and then generate a diff
++between the two. Note, you should run the "clean" target in the
++build-tree/ source before doing this, to get a clean patch.
++
++Ben
+--- silo-1.2.5.orig/debian/TODO
++++ silo-1.2.5/debian/TODO
+@@ -0,0 +1,4 @@
++- Make use of silocheck so we can ensure older PROM's will be able to boot
++ (1 GB limit thing).
++- Write a visilo program/script that edits the file, then runs
++ siloconfcheck before making it active.
+--- silo-1.2.5.orig/debian/changelog
++++ silo-1.2.5/debian/changelog
+@@ -0,0 +1,231 @@
++silo (1.2.5-1) unstable; urgency=low
++
++ * New upstream version. Fixes a first stage boot loader bug.
++
++ -- Ben Collins <bcollins@debian.org> Fri, 29 Mar 2002 13:36:49 -0500
++
++silo (1.2.4-1) unstable; urgency=low
++
++ * New upstream fixes TILO buglet.
++
++ -- Ben Collins <bcollins@debian.org> Tue, 13 Nov 2001 21:59:00 -0500
++
++silo (1.2.3-1) unstable; urgency=low
++
++ * New upstream, fixes tilo.
++
++ -- Ben Collins <bcollins@debian.org> Fri, 10 Aug 2001 00:32:23 -0400
++
++silo (1.2.2-1) unstable; urgency=low
++
++ * New upstream.
++
++ -- Ben Collins <bcollins@debian.org> Sat, 16 Jun 2001 11:11:45 -0400
++
++silo (1.2.0-1) unstable; urgency=low
++
++ * New upstream.
++
++ -- Ben Collins <bcollins@debian.org> Fri, 8 Jun 2001 12:56:59 -0400
++
++silo (1.1.0-1) unstable; urgency=low
++
++ * New upstream, adds support for tab completion on prom console, and
++ also supports booting fujitsu sparc64 systems.
++ * Added build-depends.
++ * Changed priority from required to important, as per dinstall
++ overrides.
++
++ -- Ben Collins <bcollins@debian.org> Mon, 28 May 2001 14:26:27 -0400
++
++silo (1.0.1-1) unstable; urgency=low
++
++ * New upstream.
++ * Update silo1440k images.
++ * Make siloconfig recognize a non-interactive install, and skip running.
++
++ -- Ben Collins <bcollins@debian.org> Mon, 28 May 2001 10:56:42 -0400
++
++silo (1.0-1) unstable; urgency=high
++
++ * Hey, I'm upstream maintainer now!
++ * New upstream release. All patches merged.
++ * Now includes tilo/maketilo. Replaces older sparc-utils
++
++ -- Ben Collins <bcollins@debian.org> Wed, 23 May 2001 12:30:05 -0400
++
++silo (0.9.9.1-1) unstable; urgency=high
++
++ * Provide the silo1440k base images for boot-floppies. This way, it
++ doesn't have to be included on the root.bin, and we save about 100k
++ * Urgency high, for boot-floppies
++
++ -- Ben Collins <bcollins@debian.org> Thu, 17 May 2001 20:22:15 -0400
++
++silo (0.9.9.0-2) unstable; urgency=high
++
++ * Call confcheck() after chroot()
++
++ -- Ben Collins <bcollins@debian.org> Thu, 17 May 2001 14:36:50 -0400
++
++silo (0.9.9.0-1) unstable; urgency=low
++
++ * Convert to using a db style source format. The silo upstream tarball
++ contains some binary files that get changed during build. This makes
++ it easier to contend with that fact.
++ * Merged the conf check into the silo program itself. Right now it
++ verifies irregardless. Next version I'll make it have an option to
++ turn that off, or ignore failures.
++ * This is not a new upstream. The pools setup does not allow me to do a
++ new full source upload of the same version. Lucky for us, dpkg allows
++ a .0 extended version to be > one without...dpkg is good for something
++ :)
++
++ -- Ben Collins <bcollins@debian.org> Thu, 28 Dec 2000 08:32:40 -0500
++
++silo (0.9.9-5) unstable; urgency=low
++
++ * Fix typo in cfg.c
++ * Added siloconfcheck to siloconfig
++
++ -- Ben Collins <bcollins@debian.org> Wed, 27 Dec 2000 16:55:50 -0500
++
++silo (0.9.9-4) unstable; urgency=low
++
++ * Created siloconfcheck program that validates a silo.conf file using
++ the same rules (IOW, the exact same functions) used by the silo second
++ stage boot loader. Helpful for validating conf files. closes: #38298
++
++ -- Ben Collins <bcollins@debian.org> Wed, 27 Dec 2000 12:55:09 -0500
++
++silo (0.9.9-3) unstable; urgency=low
++
++ * Changed priority to required, and make essential yes. There are a few
++ cases (netboot) where silo isn't needed, but the thing is, we want
++ people to know they might mess up their systems when removing this. So
++ we force them to take that extra step.
++
++ -- Ben Collins <bcollins@debian.org> Wed, 27 Dec 2000 08:57:29 -0500
++
++silo (0.9.9-2) unstable; urgency=low
++
++ * Taking over this package.
++ * Latest version accepts kernel 2.2 ext2 features. closes: #79823
++ * I believe this is fixed in the latest version. closes: #56500
++ * This bug is already marked fixed. closes: #61389
++ * I don't think SILO will ever understand Solaris boot options. People
++ need to change the PROM commands (or our installer does), so that they
++ don't conflict. closes: #61389
++ * I think the newest version fixed this. closes: #65659
++ * This isn't a bug, but a user goofup. closes: #50729
++
++ -- Ben Collins <bcollins@debian.org> Wed, 27 Dec 2000 07:24:52 -0500
++
++silo (0.9.9-1) unstable; urgency=low
++
++ * New upstream
++ * Took over silo's packaging
++
++ -- Erick Kinnee <cerb@debian.org> Mon, 4 Sep 2000 10:54:23 -0500
++
++silo (0.9.8-1) frozen unstable; urgency=low
++
++ * NMU, requested by the maintainer
++ * New upstream version, fixes some problem with floppy and cdrom boots
++ (helps with boot-floppies and debian-cd), closes: #61389
++
++ -- Ben Collins <bcollins@debian.org> Fri, 31 Mar 2000 08:56:02 -0500
++
++silo (0.9.3-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Davide Barbieri <paci@prosa.it> Thu, 28 Oct 1999 03:57:47 -0500
++
++silo (0.8.6-2) unstable; urgency=low
++
++ * Specify sparc architecture in control file. Before
++ it was also i386 (for intelsilo), which I should drop.
++ Comments about intelsilo?
++ This will make the life easier for autobuilder.
++
++ -- Davide Barbieri <paci@prosa.it> Fri, 15 Oct 1999 10:20:24 -0500
++
++silo (0.8.6-1) unstable; urgency=high
++
++ * New upstream release.
++
++ -- Davide Barbieri <paci@prosa.it> Sun, 18 Apr 1999 14:55:52 +0200
++
++silo (0.8.5-4) unstable; urgency=low
++
++ * This version should correct a bug in the upstream version
++ which prevent silo to boot a solaris system on a ultra
++
++ -- Davide Barbieri <paci@debian.org> Mon, 12 Apr 1999 11:55:33 +0200
++
++silo (0.8.5-3) unstable; urgency=low
++
++ * New siloconfig
++ * Changed the rules file to use debhelper
++ * Added the man page
++ * New rules to generate intelsilo by Steve Dunham <dunham@debian.org>
++
++ -- Davide Barbieri <paci@debian.org> Sat, 27 Feb 1999 15:00:52 +0100
++
++silo (0.8.5-2.1) frozen; urgency=low
++
++ * Fix to give kernel more breathing room in front of initrd
++ needed for CDROM booting on Sun4m machines. <dunham@debian.org>
++
++ -- Davide Barbieri <paci@debian.org> Fri, 26 Feb 1999 10:39:43 -0500
++
++silo (0.8.5-2) frozen; urgency=high
++
++ * This release is going to frozen, in order to
++ get debian sparc CD-ROM working.
++
++ -- Davide Barbieri <paci@debian.org> Fri, 29 Jan 1999 19:03:08 +0100
++
++silo (0.8.5-1) unstable; urgency=low
++
++ * new upstream version; it should work with bootable CD
++
++ -- Davide Barbieri <paci@debian.org> Tue, 26 Jan 1999 11:14:38 +0100
++
++silo (0.8.1-2) unstable; urgency=low
++
++ * added a patch to tell silo not to abort on dangling
++ symlinks while scanning /dev; thanks to Eric Delaunay
++ <delaunay@lix.polytechnique.fr>
++
++ -- Davide Barbieri <paci@debian.org> Tue, 24 Nov 1998 12:04:34 +0100
++
++silo (0.8.1-1) unstable; urgency=low
++
++ * new upstream version
++
++ -- Davide Barbieri <paci@debian.org> Sat, 7 Nov 1998 16:45:14 +0100
++
++silo (0.7.2-1) unstable; urgency=low
++
++ * "Added siloconfig script"
++
++ -- Davide Barbieri <paci@debian.org> Mon, 18 May 1998 16:25:53 +0000
++
++silo (0.7.2-0.1) unstable; urgency=low
++
++ * Non-maintainer, new upstream version (glibc based)
++
++ -- Juan Cespedes <cespedes@debian.org> Thu, 30 Apr 1998 12:20:51 +0200
++
++silo (0.6.7-1) unstable; urgency=low
++
++ * Initial Release.
++
++ -- Davide Barbieri <paci@debian.org> Wed, 29 Jan 1997 18:52:04 +0100
++
++Local variables:
++mode: debian-changelog
++End:
++
+--- silo-1.2.5.orig/debian/control
++++ silo-1.2.5/debian/control
+@@ -0,0 +1,17 @@
++Source: silo
++Section: base
++Priority: important
++Maintainer: Ben Collins <bcollins@debian.org>
++Build-Depends: e2fslibs-dev, debhelper
++Standards-Version: 3.2.1.0
++
++Package: silo
++Architecture: sparc
++Depends: ${shlibs:Depends}
++Replaces: sparc-utils (<< 1.8-1)
++Essential: yes
++Description: Sparc Improved Boot Loader
++ Like LILO or MILO, but for SPARC.
++ This is the program you need to use if you plan to boot SPARC/Linux
++ via a hard drive, floppy or CDROM. It installs to the boot block of
++ your system and will allow for booting of Linux, Solaris, and SunOS.
+--- silo-1.2.5.orig/debian/copyright
++++ silo-1.2.5/debian/copyright
+@@ -0,0 +1,47 @@
++This package was debianized by Davide Barbieri paci@prosa.it for
++the first time on:
++Wed, 29 Jan 1997 18:52:04 +0100.
++
++It was downloaded from
++ftp://download.sourceforge.net/pub/sourceforge/silo/
++
++Changes for Debian:
++ * Added Debian files
++
++Copyrights
++----------
++Copyright (C) Jakub Jelinek <jj@sunsite.mff.cuni.cz>
++Copyright (C) Mauricio Plaza <mok@nuclecu.unam.mx>
++Copyright (C) Donnie J. Barnes <djb@redhat.com>
++Copyright (C) Pete A. Zaitcev <Pete.A.Zaitcev@lab.sun.mcst.ru>
++Copyright (C) David S. Miller <davem@vger.rutgers.edu>
++Copyright (C) Miguel de Icaza <miguel@nuclecu.unam.mx>
++Copyright (C) Eddie C. Dost <ecd@skynet.be>
++Copyright (C) Andrew Tridgell <tridge@anu.edu.au>
++Copyright (C) Tom Dyas <tdyas@xenophanes.rutgers.edu>
++Copyright (C) The Sparc Linux Team <sparclinux@vger.rutgers.edu>
++Copyright (C) Ben Collins <bcollins@debian.org>
++
++Modifications for Debian:
++ Copyright (C) 1997 Davide Barbieri <paci@prosa.it>
++ Copyright (C) 1998 Juan Cespedes <cespedes@debian.org>
++
++
++License
++-------
++This program 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 2, or (at your option)
++any later version.
++
++This program 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.
++
++A copy of the GNU General Public License is available as
++`/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution or on
++the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. You can
++also obtain it by writing to the Free Software Foundation, Inc., 59
++Temple Place - Suite 330, Boston, MA 02111-1307, USA
++
+--- silo-1.2.5.orig/debian/rules
++++ silo-1.2.5/debian/rules
+@@ -0,0 +1,50 @@
++#!/usr/bin/make -f
++
++# the dbs rules
++TAR_DIR := silo-1.2.5
++include debian/scripts/dbs-build.mk
++
++build: $(STAMP_DIR)/build
++$(STAMP_DIR)/build: $(STAMP_DIR)/patch
++ dh_testdir
++ cd $(BUILD_TREE) && $(MAKE)
++ touch $(STAMP_DIR)/build
++
++clean:
++ dh_testdir
++ rm -rf $(STAMP_DIR) $(SOURCE_DIR)
++ perl debian/scripts/dh_split clean
++ dh_clean
++
++install: build $(dh_mak_deps)
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ cd $(BUILD_TREE) && $(MAKE) DESTDIR="$(shell pwd)/debian/tmp" \
++ install
++ install -m755 debian/local/siloconfig debian/tmp/usr/sbin/siloconfig
++ install -d -m755 debian/tmp/usr/lib/silo
++ install -m644 silo1440k* debian/tmp/usr/lib/silo/
++
++ dh_movefiles
++
++binary-indep:
++
++binary-arch: build install $(dh_mak_deps)
++ dh_testdir
++ dh_testroot
++ dh_installdocs $(BUILD_TREE)/docs/{README{,.tilo},CDROM.HOWTO}
++ dh_undocumented
++ dh_installchangelogs $(BUILD_TREE)/ChangeLog
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-arch
diff --git a/sys-boot/silo/metadata.xml b/sys-boot/silo/metadata.xml
new file mode 100644
index 000000000000..a3e058868cc0
--- /dev/null
+++ b/sys-boot/silo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sparc</herd>
+<maintainer>
+ <email>sparc@gentoo.org</email>
+ <name>Sparc Team</name>
+</maintainer>
+<longdescription>
+SILO is the SPARC/UltraSPARC Improved Loader, a boot loader for sparc similar to LILO.
+</longdescription>
+</pkgmetadata>
diff --git a/sys-boot/silo/silo-1.3.0-r1.ebuild b/sys-boot/silo/silo-1.3.0-r1.ebuild
new file mode 100644
index 000000000000..67eecf83d6ca
--- /dev/null
+++ b/sys-boot/silo/silo-1.3.0-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/silo/silo-1.3.0-r1.ebuild,v 1.1 2003/12/09 08:13:26 seemant Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="SPARC/UltraSPARC Improved Loader, a boot loader for sparc"
+SRC_URI="http://www.sparc-boot.org/pub/silo/${P}.tar.gz"
+HOMEPAGE="http://www.sparc-boot.org"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="-* sparc"
+
+PROVIDE="virtual/bootloader"
+
+DEPEND="sys-fs/e2fsprogs
+ sys-apps/sparc-utils"
+
+src_compile() {
+ # http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ if has_version "sys-devel/hardened-gcc"
+ then
+ einfo "adding hardened-gcc exclusion flags for building boot loader"
+ export CC="${CC} -yet_exec -yno_propolice"
+ find ${WORKDIR} -name "Makefile" -o -name "Rules.make" \
+ -exec sed -i "s:CC=gcc:CC=gcc -yet_exec -yno_propolice:g" {} \;
+ fi
+
+ make ${MAKEOPTS} || die
+}
+
+src_install() {
+ make DESTDIR=${D} install || die
+ dodoc COPYING ChangeLog first-isofs/README.SILO_ISOFS docs/README*
+}
diff --git a/sys-boot/silo/silo-1.3.1.ebuild b/sys-boot/silo/silo-1.3.1.ebuild
new file mode 100644
index 000000000000..c2a174d8e0f8
--- /dev/null
+++ b/sys-boot/silo/silo-1.3.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/silo/silo-1.3.1.ebuild,v 1.1 2003/12/09 08:13:26 seemant Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="SPARC/UltraSPARC Improved Loader, a boot loader for sparc"
+SRC_URI="http://www.sparc-boot.org/pub/silo/${P}.tar.gz"
+HOMEPAGE="http://www.sparc-boot.org"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="-* ~sparc"
+
+PROVIDE="virtual/bootloader"
+
+DEPEND="sys-fs/e2fsprogs
+ sys-apps/sparc-utils"
+
+src_compile() {
+ make ${MAKEOPTS} || die
+}
+
+src_install() {
+ make DESTDIR=${D} install || die
+ dodoc COPYING ChangeLog first-isofs/README.SILO_ISOFS docs/README*
+}
diff --git a/sys-boot/silo/silo-1.3.2.ebuild b/sys-boot/silo/silo-1.3.2.ebuild
new file mode 100644
index 000000000000..dd7bea372bef
--- /dev/null
+++ b/sys-boot/silo/silo-1.3.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/silo/silo-1.3.2.ebuild,v 1.1 2003/12/09 08:13:26 seemant Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="SPARC/UltraSPARC Improved Loader, a boot loader for sparc"
+SRC_URI="http://www.sparc-boot.org/pub/silo/${P}.tar.gz"
+HOMEPAGE="http://www.sparc-boot.org"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="-* ~sparc"
+
+PROVIDE="virtual/bootloader"
+
+DEPEND="sys-fs/e2fsprogs
+ sys-apps/sparc-utils"
+
+src_compile() {
+ make ${MAKEOPTS} || die
+}
+
+src_install() {
+ make DESTDIR=${D} install || die
+ dodoc COPYING ChangeLog first-isofs/README.SILO_ISOFS docs/README*
+}
diff --git a/sys-boot/yaboot/ChangeLog b/sys-boot/yaboot/ChangeLog
new file mode 100644
index 000000000000..b41e5293c0e4
--- /dev/null
+++ b/sys-boot/yaboot/ChangeLog
@@ -0,0 +1,102 @@
+# ChangeLog for sys-apps/yaboot
+# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/yaboot/ChangeLog,v 1.1 2003/12/09 08:13:55 seemant Exp $
+
+*yaboot-1.3.10-r1 (08 Dec 2003)
+
+ 08 Dec 2003; Seemant Kulleen <seemant@gentoo.org> metadata.xml,
+ yaboot-1.3.10-r1.ebuild, yaboot-1.3.10-r2.ebuild, yaboot-1.3.10.ebuild,
+ yaboot-1.3.11.ebuild, files/yabootconfig, files/yabootconfig-1.3.10.patch,
+ files/yabootconfig-1.3.11.patch:
+ moved from sys-apps to sys-boot
+
+ 04 Dec 2003; Pieter Van den Abeele <pvdabeel@gentoo.org> :
+ New yaboot release with G5 support
+
+ 22 Jun 2003; <rac@gentoo.org> yaboot-1.3.10-r2.ebuild:
+ emergency keyword fix
+
+ 13 Apr 2003; Luca Barbato <lu_zero@gentoo.org> yaboot-1.3.10-r2.ebuild:
+ fix ebuild to set CC if isn't already set (bug 18765)
+
+*yaboot-1.3.10-r2 (26 Mar 2003)
+
+ 26 Mar 2003; Zach Welch <zwelch@gentoo.org> yaboot-1.3.10-r2.ebuild:
+ fix ebuild to respect CC for distcc builds (bug 18243)
+
+*yaboot-1.3.10-r1 (15 Mar 2003)
+
+ 15 Mar 2003; Mark Guertin <gerk@gentoo.org> yaboot-1.3.10-r1.ebuild,
+ files/yabootconfig-1.3.10.patch:
+ fixed typo in yabootconfig which caused invalid macosx= in yaboot.conf, rev
+ bumped to ensure people update
+
+*yaboot-1.3.10 (26 Feb 2003)
+
+ 10 Mar 2003; Seemant Kulleen <seemant@gentoo.org> yaboot-1.3.10.ebuild:
+ use epatch instead
+
+ 26 Feb 2003; Mark Guertin <gerk@gentoo.org> yaboot-1.3.10.ebuild files/digest-yaboot-1.3.10 files/yabootconfig-1.3.10.patch :
+ New yaboot version, fixes up ofpath issues upstream, also has support for
+ latest powermac machines. Important fixes, set as ppc
+
+*yaboot-1.3.9.ebuild (Feb 12 2003)
+
+ 12 Feb 2003; Pieter Van den Abeele <pvdabeel@gentoo.org> yaboot-1.3.9.ebuild
+ new release with newest powerbook support
+
+*yaboot-1.3.8-r1.ebuild (Dec 20 2002)
+
+ 06 Jan 2003; Seemant Kulleen <seemant@gentoo.org> *.ebuild :
+
+ PROVIDE=virtual/bootloader
+
+ 20 Dec 2002; Mark Guertin <gerk@gentoo.org> yaboot-1.3.8-r1.ebuild:
+ Added a patched yabootconfig that detects and adds dual boot configs
+ for OS X and Mac OS. Added -alpha to keywords and promoted this
+ to stable.
+
+*yaboot-1.3.8 (12-11-02)
+
+ 11 Dec 2002; Calum Selkirk <cselkirk@gentoo.org> yaboot-1.3.8.ebuild
+ files/digest-yaboot-1.3.8 :
+
+ New ebuild. This release adds support for the PMac Windtunnel and Xserve.
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+*yaboot-1.3.7 (Nov 16 2002); cselkirk <cselkirk@gentoo.org>
+
+ 16 Nov 2002; Calum Selkirk <cselkirk@gentoo.org> yaboot-1.3.7.ebuild
+ digest-yaboot-1.3.7 :
+
+ new ebuild. This mainly an upstream maintaince release with some small
+ buxfixes, it's KEYWORDED ~ppc but should be safe to KEYWORD ppc after some
+ testing
+
+*yaboot-1.3.6-r1 (June 21 2002); Gerk (gerk@gentoo.org)
+
+ 04 Sept 2002; Calum Selkirk <cselkirk@gentoo.org> yaboot-1.3.6-r1 :
+
+ Fixed the path to /usr/lib/yaboot/
+
+ 20 Jul 2002; Mark Guertin <gerk@gentoo.org> yaboot-1.3.6.ebuild :
+ Adjusted keywords
+
+ 14 Jul 2002; phoen][x <phoenix@gentoo.org> yaboot-1.3.6.ebuild :
+ Added LICENSE, KEYWORDS, SLOT.
+
+ Adjusted ARCH check and added RDEPEND, SLOT, LICENSE to build
+ (no -r1 as no need to recompile for this)
+
+*yaboot-1.3.6-r1 (Wed Apr 24 17:09:25 2002 CEST); pvdabeel <pvdabeel@gentoo.org>:
+
+Wed Apr 24 17:09:45 2002 CEST; pvdabeel <pvdabeel@gentoo.org>:
+
+ Install manpages in /usr/share instead of /usr/usr/share
+
+*yaboot-1.3.6 (Sun Mar 17 23:27:28 CST 2002)
+
+Sun Mar 17 23:29:06 CST 2002; Kain <kain@kain.org> all:
+
+ This is an initial .ebuild for yaboot 1.3.6 for ppc machines.
diff --git a/sys-boot/yaboot/Manifest b/sys-boot/yaboot/Manifest
new file mode 100644
index 000000000000..1b41161c185c
--- /dev/null
+++ b/sys-boot/yaboot/Manifest
@@ -0,0 +1,13 @@
+MD5 72420ef6de534e1c8aeb1ad423bb0182 yaboot-1.3.10-r1.ebuild 986
+MD5 003919db301feacf05e71fa4baf97a15 yaboot-1.3.10.ebuild 983
+MD5 dc9a8d505407f7f2bd6d801efb613f60 yaboot-1.3.10-r2.ebuild 1026
+MD5 70f15892f54d28383d0e87a302a6cd70 yaboot-1.3.11.ebuild 1023
+MD5 7a60ead8a9d10bdb617410ca0f0354f8 ChangeLog 3617
+MD5 52f9d8e98c8931645c57a3de1c36727d metadata.xml 156
+MD5 22f651a4c0cd422e1245d3a905f9ce31 files/yabootconfig 18898
+MD5 b23ffae9719feba081f90bcb62ed4928 files/digest-yaboot-1.3.10 65
+MD5 79f1707ceab2b7d7daa98a62e15ca98c files/digest-yaboot-1.3.11 65
+MD5 05ad83c8ec8ac7914cd6224a148daef6 files/yabootconfig-1.3.10.patch 1987
+MD5 b23ffae9719feba081f90bcb62ed4928 files/digest-yaboot-1.3.10-r1 65
+MD5 cdcf832620e73598eb112a6000509afd files/digest-yaboot-1.3.10-r2 270
+MD5 05ad83c8ec8ac7914cd6224a148daef6 files/yabootconfig-1.3.11.patch 1987
diff --git a/sys-boot/yaboot/files/digest-yaboot-1.3.10 b/sys-boot/yaboot/files/digest-yaboot-1.3.10
new file mode 100644
index 000000000000..89c08fc0aa93
--- /dev/null
+++ b/sys-boot/yaboot/files/digest-yaboot-1.3.10
@@ -0,0 +1 @@
+MD5 9770dc5128b2aa45d16d2002a9565002 yaboot-1.3.10.tar.gz 273454
diff --git a/sys-boot/yaboot/files/digest-yaboot-1.3.10-r1 b/sys-boot/yaboot/files/digest-yaboot-1.3.10-r1
new file mode 100644
index 000000000000..89c08fc0aa93
--- /dev/null
+++ b/sys-boot/yaboot/files/digest-yaboot-1.3.10-r1
@@ -0,0 +1 @@
+MD5 9770dc5128b2aa45d16d2002a9565002 yaboot-1.3.10.tar.gz 273454
diff --git a/sys-boot/yaboot/files/digest-yaboot-1.3.10-r2 b/sys-boot/yaboot/files/digest-yaboot-1.3.10-r2
new file mode 100644
index 000000000000..4961040bb594
--- /dev/null
+++ b/sys-boot/yaboot/files/digest-yaboot-1.3.10-r2
@@ -0,0 +1,4 @@
+MD5 22f651a4c0cd422e1245d3a905f9ce31 /files/yabootconfig 18898
+MD5 05ad83c8ec8ac7914cd6224a148daef6 /files/yabootconfig-1.3.10.patch 1987
+MD5 8529059f433cd6b9345a43f6596386a6 /yaboot-1.3.10-r2.ebuild 1007
+MD5 9770dc5128b2aa45d16d2002a9565002 yaboot-1.3.10.tar.gz 273454
diff --git a/sys-boot/yaboot/files/digest-yaboot-1.3.11 b/sys-boot/yaboot/files/digest-yaboot-1.3.11
new file mode 100644
index 000000000000..a881271edca5
--- /dev/null
+++ b/sys-boot/yaboot/files/digest-yaboot-1.3.11
@@ -0,0 +1 @@
+MD5 338be176b2767498fd42e9e9c2f4f3da yaboot-1.3.11.tar.gz 272953
diff --git a/sys-boot/yaboot/files/yabootconfig b/sys-boot/yaboot/files/yabootconfig
new file mode 100644
index 000000000000..5efc4a5cf5da
--- /dev/null
+++ b/sys-boot/yaboot/files/yabootconfig
@@ -0,0 +1,697 @@
+#! /bin/sh
+
+###############################################################################
+##
+## yabootconfig generates a simple /etc/yaboot.conf
+## Copyright (C) 2001 Ethan Benson
+## Patched for Gentoo and dual boot - Mark Guertin <gerk@gentoo.org>
+##
+## This program 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 2
+## of the License, or (at your option) any later version.
+##
+## This program 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 this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+###############################################################################
+
+PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
+## allow to run out of /target in boot-floppies
+if [ -n "$PATH_PREFIX" ] ; then
+ PATH="${PATH}:${PATH_PREFIX}/sbin:${PATH_PREFIX}/bin:${PATH_PREFIX}/usr/sbin:${PATH_PREFIX}/usr/bin:${PATH_PREFIX}/usr/local/sbin:${PATH_PREFIX}/usr/local/bin"
+fi
+PRG="${0##*/}"
+VERSION=1.0.5
+CHROOT=/
+## $CONFIG is relative to $CHROOT
+CONFIG=etc/yaboot.conf
+NOINSTALL=0
+QUIET=0
+DEBUG=0
+SIGINT="$PRG: Interrupt caught ... exiting"
+export LC_COLLATE=C
+
+## catch signals, clean up temporary file
+trap "cleanup" 0
+trap "exit 129" 1
+trap "echo 1>&2 $SIGINT ; exit 130" 2
+trap "exit 131" 3
+trap "exit 143" 15
+
+## check for printf, use it if possible otherwise fall back on
+## unreliable echo -e -n ("SUS" says echo shall support no switches)
+if [ "$(printf printf_test 2>/dev/null)" = printf_test ] ; then
+ PRINTF=printf
+else
+ PRINTF="echo -e -n"
+fi
+
+## make sure echo is not lame if we must use it.
+if [ "$PRINTF" != printf ] ; then
+ if [ "$(echo -e -n echo_test)" != "echo_test" ] ; then
+ echo 1>&2 "$PRG: printf unavailable and echo is broken, sorry."
+ exit 1
+ fi
+fi
+
+## make fake `id' if its missing, outputs 0 since if its missing we
+## are probably running on boot floppies and thus are root.
+if (command -v id > /dev/null 2>&1) ; then
+ true
+else
+ id()
+ {
+ echo 0
+ }
+fi
+
+## --version output
+version()
+{
+echo \
+"$PRG $VERSION
+Written by Ethan Benson
+
+Copyright (C) 2001 Ethan Benson
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+}
+
+## --help output.
+usage()
+{
+echo \
+"Usage: $PRG [OPTION]...
+Generate a working /etc/yaboot.conf.
+
+ -t, --chroot set root directory $PRG should work from
+ -r, --root set root partition, Example: /dev/hda3
+ default: determined from {chroot}/etc/fstab
+ -b, --boot set bootstrap partition, Example: /dev/hda2
+ default: first type: Apple_Bootstrap partition
+ --kernel-args add an append= line with specified arguments
+ -q, --quiet don't ask any questions/confirmation
+ --noinstall don't automatically run mkofboot
+ -h, --help display this help and exit
+ -V, --version output version information and exit"
+}
+
+debug()
+{
+ [ "$DEBUG" = 0 ] && return 0
+ $PRINTF 1>&2 "$PRG: DEBUG: $1"
+}
+
+confirm()
+{
+ $PRINTF \
+"yaboot is the Linux Loader for PowerPC. $PRG sets up your system to boot directly
+from your hard disk, without the need for a boot CD, floppy or a network boot.\n"
+[ "$NOINSTALL" = 0 ] && $PRINTF "Install yaboot bootstrap on $BOOT to boot Linux from $ROOT? [Yes] "
+[ "$NOINSTALL" = 1 ] && $PRINTF "Create simple ${CHROOT}${CONFIG} to boot Linux from $ROOT? [Yes] "
+ read ans
+ case "$ans" in
+ Y|y|Yes|yes|YES|"")
+ echo "Creating a simple ${CHROOT}${CONFIG}..."
+ return 0
+ ;;
+ *)
+ if [ "$NOINSTALL" = 0 ] ; then
+ $PRINTF "Create simple ${CHROOT}${CONFIG} without installing the bootstrap? [Yes] "
+ read ans
+ case "$ans" in
+ Y|y|Yes|yes|YES|"")
+ NOINSTALL=1
+ echo 1>&2 "Creating a simple ${CHROOT}${CONFIG}..."
+ return 0
+ ;;
+ *)
+ echo "OK, quitting"
+ return 1
+ ;;
+ esac
+ else
+ echo "OK, quitting"
+ return 1
+ fi
+ ;;
+ esac
+}
+
+## find out whether we have mac-fdisk or pdisk (they work the same)
+ckmacfdisk()
+{
+ if (command -v mac-fdisk > /dev/null 2>&1) ; then
+ FDISK=mac-fdisk
+ elif (command -v pdisk > /dev/null 2>&1) ; then
+ FDISK=pdisk
+ else
+ echo 1>&2 "$PRG: Unable to locate mac-fdisk"
+ return 1
+ fi
+
+ if [ ! -x `command -v $FDISK` 2> /dev/null ] ; then
+ echo 1>&2 "$PRG: `command -v $FDISK`: Permission denied"
+ return 1
+ fi
+ debug "mac-fdisk is: $FDISK\n"
+ return 0
+}
+
+## find out if we have ddisk or fdisk (fdisk for dos labels) debian
+## uses both names
+ckfdisk()
+{
+ if (command -v ddisk > /dev/null 2>&1) ; then
+ FDISK=ddisk
+ elif (command -v fdisk > /dev/null 2>&1) ; then
+ FDISK=fdisk
+ else
+ echo 1>&2 "$PRG: Unable to locate fdisk"
+ return 1
+ fi
+
+ if [ ! -x `command -v $FDISK` 2> /dev/null ] ; then
+ echo 1>&2 "$PRG: `command -v $FDISK`: Permission denied"
+ return 1
+ fi
+ debug "fdisk is: $FDISK\n"
+ return 0
+}
+
+## find bootstrap partition, supports IBM CHRP with msdos disklabels
+findbootblock()
+{
+ ## mac partition table magic == ER
+ if [ "$(dd if="$DISK" bs=2 count=1 2> /dev/null)" = ER ] ; then
+ ckmacfdisk || return 1
+ if [ "$FDISK" = pdisk ] ; then
+ ## handle braindamaged pdisk
+ debug "dealing with pdisk deficiency...\n"
+ BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<Apple_Bootstrap\>'` ; echo ${v%%:*})"
+ debug "BOOT before fixup: $BOOT\n"
+ if [ -n "$BOOT" ] ; then
+ BOOT="${DISK}${BOOT}"
+ fi
+ debug "BOOT after fixup: $BOOT\n"
+ else
+ BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<Apple_Bootstrap\>'` ; echo ${v%%[ ]*})"
+ debug "BOOT=$BOOT\n"
+ fi
+ if [ -z "$BOOT" ] ; then
+ echo 1>&2 "$PRG: Unable to locate bootstrap partition on $DISK..."
+ echo 1>&2 "$PRG: You must create an 800K type: Apple_Bootstrap partition to make the disk bootable"
+ return 1
+ fi
+ else
+ ckfdisk || return 1
+ BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<PPC PReP Boot\>'` ; echo ${v%%[ ]*})"
+ debug "BOOT=$BOOT\n"
+ if [ -z "$BOOT" ] ; then
+ echo 1>&2 "$PRG: Unable to locate bootstrap partition on $DISK..."
+ echo 1>&2 "$PRG: You must create an 800K type: 0x41 PPC PReP Boot partition to make the disk bootable"
+ return 1
+ fi
+ fi
+ return 0
+}
+
+## if readlink is missing use a kludge
+if (command -v readlink > /dev/null 2>&1) ; then
+ true
+else
+ readlink()
+ {
+ SYMTARGET="$(v=`ls -l "$2" 2>/dev/null` ; echo ${v##*> })"
+ if [ -n "$SYMTARGET" ] ; then
+ echo "$SYMTARGET"
+ return 0
+ else
+ return 1
+ fi
+ }
+fi
+
+## we have to do some things differently with a retarded devfs name.
+ckdevfs()
+{
+ case "$1" in
+ /dev/ide/*|/dev/scsi/*|/dev/discs/*)
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+cleanup()
+{
+ if [ -n "$TMPCONF" ] ; then rm -f "$TMPCONF" ; fi
+ return 0
+}
+
+dualboot()
+{
+ DRIVELIST=`ls -d /dev/?d?* | grep "[sh]d[abcdefghijkl]" | cut -b 6-8 | sort -u`
+
+ for i in $DRIVELIST
+ do
+ HFS=`mac-fdisk -l "/dev/$i" | grep '\<Apple_HFS\>' | grep -v "CDROM" | cut -d" " -f1`
+ for h in $HFS
+ do
+ if [ !-x `hpmount -r $h` > /dev/null 2>&1 ] ; then
+ if [ `hpls mach_kernel 2>/dev/null` ] ; then
+ [ "$QUIET" = 0 ] && echo "Found possible OS X partition at $h"
+ OSX=$h
+ fi
+ if [ "`hpls "System Folder" 2>/dev/null`" ] ; then
+ [ "$QUIET" = 0 ] && echo "Found possible Mac OS partition at $h"
+ MACOS=$h
+ fi
+ hpumount $h > /dev/null 2>&1
+ fi
+ done
+ done
+}
+
+##########
+## Main ##
+##########
+
+if [ $# != 0 ] ; then
+ while true ; do
+ case "$1" in
+ -V|--version)
+ version
+ exit 0
+ ;;
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -t|--chroot)
+ if [ -n "$2" ] ; then
+ CHROOT="$2"
+ shift 2
+ else
+ echo 1>&2 "$PRG: option requires an argument $1"
+ echo 1>&2 "Try \`$PRG --help' for more information."
+ exit 1
+ fi
+ ;;
+ -b|--boot)
+ if [ -n "$2" ] ; then
+ BOOT="$2"
+ shift 2
+ else
+ echo 1>&2 "$PRG: option requires an argument $1"
+ echo 1>&2 "Try \`$PRG --help' for more information."
+ exit 1
+ fi
+ ;;
+ -r|--root)
+ if [ -n "$2" ] ; then
+ ROOT="$2"
+ shift 2
+ else
+ echo 1>&2 "$PRG: option requires an argument $1"
+ echo 1>&2 "Try \`$PRG --help' for more information."
+ exit 1
+ fi
+ ;;
+ --kernel-args)
+ if [ -n "$2" ] ; then
+ KERNARGS="$2"
+ shift 2
+ else
+ echo 1>&2 "$PRG: option requires an argument $1"
+ echo 1>&2 "Try \`$PRG --help' for more information."
+ exit 1
+ fi
+ ;;
+ -q|--quiet)
+ QUIET=1
+ shift 1
+ ;;
+ --noinstall)
+ NOINSTALL=1
+ shift 1
+ ;;
+ --debug)
+ DEBUG=1
+ shift 1
+ ;;
+ "")
+ break
+ ;;
+ *)
+ echo 1>&2 "$PRG: unrecognized option \`$1'"
+ echo 1>&2 "Try \`$PRG --help' for more information."
+ exit 1
+ ;;
+ esac
+ done
+fi
+
+if [ `id -u` != 0 ] ; then
+ echo 1>&2 "$PRG: You are not root, go away"
+ exit 1
+fi
+
+## we need /proc because df does
+if [ ! -f /proc/uptime ] ; then
+ echo 1>&2 "$PRG: This utility requires the /proc filesystem"
+ exit 1
+fi
+
+## check that chroot exists
+if [ -d "$CHROOT" ] ; then
+ ## HACK: add trailing / to chroot, otherwise are paths later get b0rked.
+ case "$CHROOT" in
+ */)
+ true
+ ;;
+ *)
+ CHROOT="${CHROOT}/"
+ ;;
+ esac
+elif [ ! -e "$CHROOT" ] ; then
+ echo 1>&2 "$PRG: $CHROOT: No such file or directory"
+ exit 1
+elif [ ! -d "$CHROOT" ] ; then
+ echo 1>&2 "$PRG: $CHROOT: Not a directory"
+ exit 1
+fi
+
+## make sure the chroot is an actual root filesystem
+if [ ! -f "${CHROOT}etc/fstab" ] ; then
+ echo 1>&2 "$PRG: $CHROOT does not appear to be a valid root filesystem"
+ exit 1
+fi
+
+## find / device
+if [ -z "$ROOT" ] ; then
+ ## IMPORTANT! that last substitution is [<space><tab>] thats all ash will grok
+ ROOT="$(v=`grep '[[:blank:]]/[[:blank:]]' ${CHROOT}etc/fstab` ; echo ${v%%[ ]*})"
+ debug "ROOT=$ROOT\n"
+ if [ -z "$ROOT" ] ; then
+ echo 1>&2 "$PRG: Could not determine root partition, aborting..."
+ exit 1
+ fi
+fi
+
+## make sure root device exists
+if [ ! -e "$ROOT" ] ; then
+ echo 1>&2 "$PRG: $ROOT: No such file or directory"
+ exit 1
+fi
+
+## find root disk.
+if ckdevfs "$ROOT" ; then
+ DISK="${ROOT%/*}/disc"
+else
+ DISK="${ROOT%%[0-9]*}"
+fi
+if [ -z "$DISK" ] ; then
+ echo 1>&2 "$PRG: Could not determine root disk, aborting..."
+ exit 1
+fi
+
+## make sure main disk exists
+if [ ! -e "$DISK" ] ; then
+ echo 1>&2 "$PRG: $DISK: No such file or directory"
+ exit 1
+fi
+
+## find bootstrap partition
+if [ -z "$BOOT" ] ; then
+ findbootblock || exit 1
+fi
+
+## make sure bootstrap device exists
+if [ ! -e "$BOOT" ] ; then
+ echo 1>&2 "$PRG: $BOOT: No such file or directory"
+ exit 1
+fi
+
+## sanity check
+for i in "$DISK" "$ROOT" "$BOOT" ; do
+ if [ ! -b "$i" ] ; then
+ echo 1>&2 "$PRG: $i: Not a block device"
+ exit 1
+ fi
+done
+
+
+## unless --quiet ask permission to proceed
+if [ "$QUIET" = 0 ] ; then
+ confirm || exit 2
+fi
+
+## find the kernel in the usual places and (if not --quiet) ask the
+## user if we cannot find one.
+if [ -f "${CHROOT}vmlinux" ] ; then
+ KERNEL="${CHROOT}vmlinux"
+elif [ -f "${CHROOT}boot/vmlinux" ] ; then
+ KERNEL="${CHROOT}boot/vmlinux"
+elif [ -f "${CHROOT}boot/vmlinux-`uname -r`" ] ; then
+ KERNEL="${CHROOT}boot/vmlinux-`uname -r`"
+elif [ -f "${CHROOT}vmlinux-`uname -r`" ] ; then
+ KERNEL="${CHROOT}vmlinux-`uname -r`"
+elif [ "$QUIET" = 0 ] ; then
+ echo 1>&2 "$PRG: Cannot find a kernel, please locate one"
+ while true ; do
+ $PRINTF 1>&2 "Enter path to a kernel image: "
+ read KERN
+ if [ -f "$KERN" ] ; then
+ KERNEL="$KERN"
+ break
+ elif [ ! -e "$KERN" ] ; then
+ echo 1>&2 "$PRG: $KERN: No such file or directory"
+ elif [ -d "$KERN" ] ; then
+ echo 1>&2 "$PRG: $KERN: Is a directory"
+ else
+ echo 1>&2 "$PRG: $KERN: Is not a regular file"
+ fi
+ done
+else
+ echo 1>&2 "$PRG: Cannot find a kernel, aborting..."
+ exit 1
+fi
+
+debug "KERNEL=$KERNEL\n"
+
+## get partition number the kernel lives on, and the OF device= name
+## of the whole disk.
+KERNDEV="$(v=`df "$KERNEL" 2> /dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
+KERNDIR="$(v=`df "$KERNEL" 2> /dev/null | grep ^/dev/` ; echo ${v##*[ ]})"
+LINKDEV="$(v=`df "${KERNEL%/*}/" 2>/dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
+PARTITION="${KERNDEV##*[a-z]}"
+
+if ckdevfs "$KERNDEV" ; then
+ KERNELDISK="${KERNDEV%/*}/disc"
+else
+ KERNELDISK="${KERNDEV%%[0-9]*}"
+fi
+
+debug "KERNEL=$KERNEL\nKERNDEV=$KERNDEV\nKERNDIR=$KERNDIR\nLINKDEV=$LINKDEV\nPARTITION=$PARTITION\nKERNELDISK=$KERNELDISK\n"
+
+## sanity check
+for i in "$KERNDEV" "$KERNDIR" "$LINKDEV" "$PARTITION" "$KERNELDISK" ; do
+ if [ -z "$i" ] ; then
+ echo 1>&2 "$PRG: Could not determine necessary information, aborting..."
+ echo 1>&2 "$PRG: Are you using chroot $PRG instead of $PRG --chroot ?"
+ exit 1
+ fi
+done
+
+## check for cross device symlink
+if [ -L "$KERNEL" ] ; then
+ if [ "$KERNDEV" != "$LINKDEV" ] ; then
+ echo 1>&2 "$PRG: Warning: Cross device symlink $KERNEL, using it's target instead"
+ KERNEL="$(readlink -f "$KERNEL" 2>/dev/null)"
+ if [ ! -f "$KERNEL" ] ; then
+ echo 1>&2 "$PRG: Unable to canonicalize symlink's target. Do not create cross device symlinks."
+ exit 1
+ fi
+ fi
+fi
+
+## only powermacs appear to need device=
+if (cat /proc/cpuinfo 2>/dev/null | grep -q pmac-generation 2> /dev/null) ; then
+ DEVICE="\ndevice=$(ofpath $KERNELDISK)"
+ if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to determine OpenFirmware device name to $KERNELDISK, aborting..."
+ exit 1
+ fi
+fi
+
+## if there is a separate /boot partition we must strip off the /boot
+## mountpoint or else yaboot will not find the kernel.
+if [ "$KERNDIR" != "$CHROOT" ] ; then
+ IMAGE="${KERNEL##*$KERNDIR}"
+else
+ IMAGE="$KERNEL"
+fi
+
+## fix chrooted path
+if [ "$CHROOT" != / ] ; then
+ IMAGE="${IMAGE##*$CHROOT}"
+fi
+
+## fix relative path (caused by chroot path fix)
+case "$IMAGE" in
+ /*)
+ true
+ ;;
+ *)
+ IMAGE="/${IMAGE}"
+ ;;
+esac
+
+## figure out if yaboot is installed in /usr/local or not
+if [ -f /usr/local/lib/yaboot/yaboot ] ; then
+ INSTALL=/usr/local/lib/yaboot/yaboot
+elif [ -f /usr/lib/yaboot/yaboot ] ; then
+ INSTALL=/usr/lib/yaboot/yaboot
+else
+ echo 1>&2 "$PRG: yaboot is not installed correctly"
+ exit 1
+fi
+
+## newworld powermacs need the ofboot first stage loader
+if [ "$(v=`cat /proc/cpuinfo 2>/dev/null | grep pmac-generation` ; echo ${v##*:})" = NewWorld ] ; then
+ if [ -f /usr/local/lib/yaboot/ofboot ] ; then
+ OFBOOT="\nmagicboot=/usr/local/lib/yaboot/ofboot"
+ elif [ -f /usr/lib/yaboot/ofboot ] ; then
+ OFBOOT="\nmagicboot=/usr/lib/yaboot/ofboot"
+ else
+ echo 1>&2 "$PRG: yaboot is not installed correctly"
+ exit 1
+ fi
+fi
+
+## check for properly (read debian) packaged yaboot.
+if [ -d ${CHROOT}usr/share/doc/yaboot/examples ] ; then
+ HEADER="## see also: /usr/share/doc/yaboot/examples for example configurations.\n"
+fi
+
+## setup append line
+if [ -n "$KERNARGS" ] ; then
+ APPEND="\tappend=\"${KERNARGS}\"\n"
+fi
+
+## setup any Mac OS/OS X partitions
+dualboot
+if [ -n "$MACOS" ] ; then
+ MACOSBOOT="macos=${MACOS}\n"
+fi
+if [ -n "OSX" ] ; then
+ OSXBOOT="macosx=${OSX}\n"
+fi
+
+
+## generate global section of yaboot.conf
+GLOBAL="## yaboot.conf generated by $PRG $VERSION
+##
+## run: \"man yaboot.conf\" for details. Do not make changes until you have!!
+${HEADER}##
+## For a dual-boot menu, add one or more of:
+## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ\n
+boot=${BOOT}${DEVICE:-}
+partition=$PARTITION
+root=$ROOT
+timeout=30
+delay=5
+install=${INSTALL}${OFBOOT:-}\n"
+
+## generate image= section
+IMAGES="
+image=$IMAGE
+\tlabel=Linux
+\tread-only\n${APPEND:-}\n${OSXBOOT:-}\n${MACOSBOOT:-}"
+
+## safely create a tmp file then move it into place after we are sure
+## it was written.
+TMPCONF=`mktemp -q "${CHROOT}${CONFIG}.XXXXXX"`
+if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to write to ${CHROOT}${CONFIG%/*}"
+ exit 1
+fi
+
+$PRINTF "${GLOBAL}${IMAGES}" > "$TMPCONF"
+if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to write temporary file ${TMPCONF}, aborting..."
+ exit 1
+fi
+
+## rotate backups of /etc/yaboot.conf, 3 backups are kept
+if [ -f "${CHROOT}${CONFIG}.old" ] ; then
+ for i in 1 0 ; do
+ if [ -f "${CHROOT}${CONFIG}.old.${i}" ] ; then
+ mv -f "${CHROOT}${CONFIG}.old.$i" "${CHROOT}${CONFIG}.old.$(($i + 1))"
+ if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}.old.$i, aborting..."
+ exit 1
+ fi
+ fi
+ done
+
+ mv -f "${CHROOT}${CONFIG}.old" "${CHROOT}${CONFIG}.old.0"
+ if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}.old, aborting..."
+ exit 1
+ fi
+fi
+
+## backup /etc/yaboot.conf
+if [ -f "${CHROOT}${CONFIG}" ] ; then
+ mv -f "${CHROOT}${CONFIG}" "${CHROOT}${CONFIG}.old"
+ if [ $? != 0 ] ; then
+ echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}, aborting..."
+ exit 1
+ fi
+fi
+
+## move new config into place
+mv -f "${TMPCONF}" "${CHROOT}${CONFIG}"
+if [ $? != 0 ] ; then
+ echo "$PRG: Unable to write file ${CHROOT}${CONFIG}"
+ exit 1
+else
+ ## nothing sensitive in generated config, comply with debian policy
+ chmod 644 "${CHROOT}${CONFIG}"
+fi
+
+## tell mkofboot where to find the config file if necessary
+if [ "${CHROOT}${CONFIG}" != /etc/yaboot.conf ] ; then
+ YBINARGS="-C ${CHROOT}${CONFIG}"
+fi
+
+## run mkofboot to install the bootstrap, unless --noinstall
+if [ "$NOINSTALL" = 0 ] ; then
+ if (command -v mkofboot 2>&1 > /dev/null) ; then
+ [ "$QUIET" = 0 ] && echo "Running mkofboot to make the disk bootable..."
+ mkofboot -f $YBINARGS || exit 1
+ [ "$QUIET" = 0 ] && echo "Done"
+ else
+ echo 1>&2 "$PRG: yaboot is not installed correctly, not running mkofboot"
+ exit 1
+ fi
+fi
+
+## Give user a warning about possible b0rkage
+
+[ "$QUIET" = 0 ] && echo -e "\nConfiguration complete. If there are no errors above you should
+have a working configuration. see "man yaboot.conf" if you run into
+any errors."
+
+exit 0
diff --git a/sys-boot/yaboot/files/yabootconfig-1.3.10.patch b/sys-boot/yaboot/files/yabootconfig-1.3.10.patch
new file mode 100644
index 000000000000..a6824f524517
--- /dev/null
+++ b/sys-boot/yaboot/files/yabootconfig-1.3.10.patch
@@ -0,0 +1,78 @@
+--- ybin/yabootconfig.orig 2003-02-08 23:53:46.000000000 -0500
++++ ybin/yabootconfig 2003-02-26 15:07:50.000000000 -0500
+@@ -4,6 +4,7 @@
+ ##
+ ## yabootconfig generates a simple /etc/yaboot.conf
+ ## Copyright (C) 2001, 2002, 2003 Ethan Benson
++## Patched for Gentoo and dual boot - Mark Guertin <gerk@gentoo.org>
+ ##
+ ## This program is free software; you can redistribute it and/or
+ ## modify it under the terms of the GNU General Public License
+@@ -264,6 +265,31 @@
+ return 0
+ }
+
++dualboot()
++{
++ DRIVELIST=`ls -d /dev/?d?* | grep "[sh]d[abcdefghijkl]" | cut -b 6-8 | sort -u`
++
++ for i in $DRIVELIST
++ do
++ HFS=`mac-fdisk -l "/dev/$i" | grep '\<Apple_HFS\>' | grep -v "CDROM" | cut -d" " -f1`
++ for h in $HFS
++ do
++ if [ !-x `hpmount -r $h` > /dev/null 2>&1 ] ; then
++ if [ `hpls mach_kernel 2>/dev/null` ] ; then
++ [ "$QUIET" = 0 ] && echo "Found possible OS X/Darwin partition at $h"
++ OSX=$h
++ fi
++ if [ "`hpls "System Folder" 2>/dev/null`" ] ; then
++ [ "$QUIET" = 0 ] && echo "Found possible Mac OS partition at $h"
++ MACOS=$h
++ fi
++ hpumount $h > /dev/null 2>&1
++ fi
++ done
++ done
++}
++
++
+ ##########
+ ## Main ##
+ ##########
+@@ -579,6 +605,15 @@
+ fi
+ fi
+
++## setup any Mac OS/OS X partitions
++dualboot
++if [ -n "$MACOS" ] ; then
++ MACOSBOOT="macos=${MACOS}\n"
++fi
++if [ -n "$OSX" ] ; then
++ OSXBOOT="macosx=${OSX}\n"
++fi
++
+ ## generate global section of yaboot.conf
+ GLOBAL="## yaboot.conf generated by $PRG $VERSION
+ ##
+@@ -596,7 +631,7 @@
+ IMAGES="
+ image=$IMAGE
+ \tlabel=Linux
+-\tread-only\n${APPEND:-}"
++\tread-only\n${APPEND:-}\n${OSXBOOT:-}\n${MACOSBOOT:-}"
+
+ ## safely create a tmp file then move it into place after we are sure
+ ## it was written.
+@@ -667,4 +702,10 @@
+ fi
+ fi
+
++## Give user a warning about possible b0rkage
++
++[ "$QUIET" = 0 ] && echo -e "\nConfiguration complete. If there are no errors above you should
++have a working configuration. see man yaboot.conf if you run into
++any errors."
++
+ exit 0
diff --git a/sys-boot/yaboot/files/yabootconfig-1.3.11.patch b/sys-boot/yaboot/files/yabootconfig-1.3.11.patch
new file mode 100644
index 000000000000..a6824f524517
--- /dev/null
+++ b/sys-boot/yaboot/files/yabootconfig-1.3.11.patch
@@ -0,0 +1,78 @@
+--- ybin/yabootconfig.orig 2003-02-08 23:53:46.000000000 -0500
++++ ybin/yabootconfig 2003-02-26 15:07:50.000000000 -0500
+@@ -4,6 +4,7 @@
+ ##
+ ## yabootconfig generates a simple /etc/yaboot.conf
+ ## Copyright (C) 2001, 2002, 2003 Ethan Benson
++## Patched for Gentoo and dual boot - Mark Guertin <gerk@gentoo.org>
+ ##
+ ## This program is free software; you can redistribute it and/or
+ ## modify it under the terms of the GNU General Public License
+@@ -264,6 +265,31 @@
+ return 0
+ }
+
++dualboot()
++{
++ DRIVELIST=`ls -d /dev/?d?* | grep "[sh]d[abcdefghijkl]" | cut -b 6-8 | sort -u`
++
++ for i in $DRIVELIST
++ do
++ HFS=`mac-fdisk -l "/dev/$i" | grep '\<Apple_HFS\>' | grep -v "CDROM" | cut -d" " -f1`
++ for h in $HFS
++ do
++ if [ !-x `hpmount -r $h` > /dev/null 2>&1 ] ; then
++ if [ `hpls mach_kernel 2>/dev/null` ] ; then
++ [ "$QUIET" = 0 ] && echo "Found possible OS X/Darwin partition at $h"
++ OSX=$h
++ fi
++ if [ "`hpls "System Folder" 2>/dev/null`" ] ; then
++ [ "$QUIET" = 0 ] && echo "Found possible Mac OS partition at $h"
++ MACOS=$h
++ fi
++ hpumount $h > /dev/null 2>&1
++ fi
++ done
++ done
++}
++
++
+ ##########
+ ## Main ##
+ ##########
+@@ -579,6 +605,15 @@
+ fi
+ fi
+
++## setup any Mac OS/OS X partitions
++dualboot
++if [ -n "$MACOS" ] ; then
++ MACOSBOOT="macos=${MACOS}\n"
++fi
++if [ -n "$OSX" ] ; then
++ OSXBOOT="macosx=${OSX}\n"
++fi
++
+ ## generate global section of yaboot.conf
+ GLOBAL="## yaboot.conf generated by $PRG $VERSION
+ ##
+@@ -596,7 +631,7 @@
+ IMAGES="
+ image=$IMAGE
+ \tlabel=Linux
+-\tread-only\n${APPEND:-}"
++\tread-only\n${APPEND:-}\n${OSXBOOT:-}\n${MACOSBOOT:-}"
+
+ ## safely create a tmp file then move it into place after we are sure
+ ## it was written.
+@@ -667,4 +702,10 @@
+ fi
+ fi
+
++## Give user a warning about possible b0rkage
++
++[ "$QUIET" = 0 ] && echo -e "\nConfiguration complete. If there are no errors above you should
++have a working configuration. see man yaboot.conf if you run into
++any errors."
++
+ exit 0
diff --git a/sys-boot/yaboot/metadata.xml b/sys-boot/yaboot/metadata.xml
new file mode 100644
index 000000000000..034c09eb248a
--- /dev/null
+++ b/sys-boot/yaboot/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>ppc</herd>
+</pkgmetadata>
diff --git a/sys-boot/yaboot/yaboot-1.3.10-r1.ebuild b/sys-boot/yaboot/yaboot-1.3.10-r1.ebuild
new file mode 100644
index 000000000000..f31bd54f6624
--- /dev/null
+++ b/sys-boot/yaboot/yaboot-1.3.10-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/yaboot/yaboot-1.3.10-r1.ebuild,v 1.1 2003/12/09 08:13:55 seemant Exp $
+
+inherit eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="PPC Bootloader"
+SRC_URI="http://penguinppc.org/projects/yaboot/${P}.tar.gz"
+HOMEPAGE="http://penguinppc.org/projects/yaboot/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="sys-apps/powerpc-utils
+ sys-fs/hfsutils
+ sys-fs/hfsplusutils"
+
+PROVIDE="virtual/bootloader"
+
+MAKEOPTS='PREFIX=/usr MANDIR=share/man'
+
+src_compile() {
+ export -n CFLAGS
+ export -n CXXFLAGS
+ # dual boot patch
+ epatch ${FILESDIR}/yabootconfig-${PV}.patch
+ emake ${MAKEOPTS} || die
+}
+
+src_install() {
+ cp etc/yaboot.conf etc/yaboot.conf.bak
+ sed -e 's/\/local//' etc/yaboot.conf >| etc/yaboot.conf.edit
+ mv -f etc/yaboot.conf.edit etc/yaboot.conf
+ make ROOT=${D} ${MAKEOPTS} install || die
+}
diff --git a/sys-boot/yaboot/yaboot-1.3.10-r2.ebuild b/sys-boot/yaboot/yaboot-1.3.10-r2.ebuild
new file mode 100644
index 000000000000..419e8c86c875
--- /dev/null
+++ b/sys-boot/yaboot/yaboot-1.3.10-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/yaboot/yaboot-1.3.10-r2.ebuild,v 1.1 2003/12/09 08:13:55 seemant Exp $
+
+inherit eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="PPC Bootloader"
+SRC_URI="http://penguinppc.org/projects/yaboot/${P}.tar.gz"
+HOMEPAGE="http://penguinppc.org/projects/yaboot/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="sys-apps/powerpc-utils
+ sys-fs/hfsutils
+ sys-fs/hfsplusutils"
+
+PROVIDE="virtual/bootloader"
+
+MAKEOPTS='PREFIX=/usr MANDIR=share/man'
+
+src_compile() {
+ export -n CFLAGS
+ export -n CXXFLAGS
+ [ -n "${CC}" ] || CC="gcc"
+ # dual boot patch
+ epatch ${FILESDIR}/yabootconfig-${PV}.patch
+ emake ${MAKEOPTS} CC="${CC}" || die
+}
+
+src_install() {
+ cp etc/yaboot.conf etc/yaboot.conf.bak
+ sed -e 's/\/local//' etc/yaboot.conf >| etc/yaboot.conf.edit
+ mv -f etc/yaboot.conf.edit etc/yaboot.conf
+ make ROOT=${D} ${MAKEOPTS} install || die
+}
+
diff --git a/sys-boot/yaboot/yaboot-1.3.10.ebuild b/sys-boot/yaboot/yaboot-1.3.10.ebuild
new file mode 100644
index 000000000000..1205fb8ba51c
--- /dev/null
+++ b/sys-boot/yaboot/yaboot-1.3.10.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/yaboot/yaboot-1.3.10.ebuild,v 1.1 2003/12/09 08:13:55 seemant Exp $
+
+inherit eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="PPC Bootloader"
+SRC_URI="http://penguinppc.org/projects/yaboot/${P}.tar.gz"
+HOMEPAGE="http://penguinppc.org/projects/yaboot/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="sys-apps/powerpc-utils
+ sys-fs/hfsutils
+ sys-fs/hfsplusutils"
+
+PROVIDE="virtual/bootloader"
+
+MAKEOPTS='PREFIX=/usr MANDIR=share/man'
+
+src_compile() {
+ export -n CFLAGS
+ export -n CXXFLAGS
+ # dual boot patch
+ epatch ${FILESDIR}/yabootconfig-${PV}.patch
+ emake ${MAKEOPTS} || die
+}
+
+src_install() {
+ cp etc/yaboot.conf etc/yaboot.conf.bak
+ sed -e 's/\/local//' etc/yaboot.conf >| etc/yaboot.conf.edit
+ mv -f etc/yaboot.conf.edit etc/yaboot.conf
+ make ROOT=${D} ${MAKEOPTS} install || die
+}
diff --git a/sys-boot/yaboot/yaboot-1.3.11.ebuild b/sys-boot/yaboot/yaboot-1.3.11.ebuild
new file mode 100644
index 000000000000..c48cde72001d
--- /dev/null
+++ b/sys-boot/yaboot/yaboot-1.3.11.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/yaboot/yaboot-1.3.11.ebuild,v 1.1 2003/12/09 08:13:55 seemant Exp $
+
+inherit eutils
+
+S=${WORKDIR}/${P}
+DESCRIPTION="PPC Bootloader"
+SRC_URI="http://penguinppc.org/projects/yaboot/${P}.tar.gz"
+HOMEPAGE="http://penguinppc.org/projects/yaboot/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="ppc -x86 -amd64 -alpha -arm -hppa -mips -sparc"
+
+DEPEND="sys-apps/powerpc-utils
+ sys-fs/hfsutils
+ sys-fs/hfsplusutils"
+
+PROVIDE="virtual/bootloader"
+
+MAKEOPTS='PREFIX=/usr MANDIR=share/man'
+
+src_compile() {
+ export -n CFLAGS
+ export -n CXXFLAGS
+ [ -n "${CC}" ] || CC="gcc"
+ # dual boot patch
+ epatch ${FILESDIR}/yabootconfig-${PV}.patch
+ emake ${MAKEOPTS} CC="${CC}" || die
+}
+
+src_install() {
+ cp etc/yaboot.conf etc/yaboot.conf.bak
+ sed -e 's/\/local//' etc/yaboot.conf >| etc/yaboot.conf.edit
+ mv -f etc/yaboot.conf.edit etc/yaboot.conf
+ make ROOT=${D} ${MAKEOPTS} install || die
+}
+