diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index c014f1e..0000000 --- a/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# Makefile for source rpm: yaboot -# $Id: Makefile,v 1.2 2004/09/18 08:21:27 pnasrat Exp $ -NAME := yaboot -SPECFILE = $(firstword $(wildcard *.spec)) -UPSTREAM_CHECKS = sig - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/yaboot-1.3.14-bigger-max-token.patch b/yaboot-1.3.14-bigger-max-token.patch new file mode 100644 index 0000000..b1a7d32 --- /dev/null +++ b/yaboot-1.3.14-bigger-max-token.patch @@ -0,0 +1,12 @@ +diff -up yaboot-1.3.14/second/cfg.c.bigger-max-token yaboot-1.3.14/second/cfg.c +--- yaboot-1.3.14/second/cfg.c.bigger-max-token 2008-11-12 14:39:11.000000000 -0500 ++++ yaboot-1.3.14/second/cfg.c 2008-11-12 14:39:17.000000000 -0500 +@@ -41,7 +41,7 @@ typedef struct { + void *data; + } CONFIG; + +-#define MAX_TOKEN 200 ++#define MAX_TOKEN 511 + #define MAX_VAR_NAME MAX_TOKEN + #define EOF -1 + diff --git a/yaboot-1.3.14-fix-bootonce-nvram.patch b/yaboot-1.3.14-fix-bootonce-nvram.patch new file mode 100644 index 0000000..c7d20ba --- /dev/null +++ b/yaboot-1.3.14-fix-bootonce-nvram.patch @@ -0,0 +1,21 @@ +diff -up yaboot-1.3.14/ybin/ybin.fix-bootonce-nvram yaboot-1.3.14/ybin/ybin +--- yaboot-1.3.14/ybin/ybin.fix-bootonce-nvram 2008-11-12 14:51:28.000000000 -0500 ++++ yaboot-1.3.14/ybin/ybin 2008-11-13 12:15:21.000000000 -0500 +@@ -1689,14 +1689,15 @@ checkconf || exit 1 + + if [ "x$bootonce" != "x" ]; then + foundlabel=`sed s/\#.*// $bootconf | grep "label=$bootonce$" | wc -l` +- if [ "$nonvram" = 0 ]; then ++ if [ "$nonvram" = 1 ]; then + echo 1>&2 "$PRG: --bootonce specified, but nvsetenv not available." + exit 1 + fi + if [ "$foundlabel" = 1 ]; then + nvsetenv boot-once "$bootonce" + foundlabel=`nvsetenv boot-once` +- if [ "$foundlabel" != "boot-once=$bootonce" ]; then ++ if [ "$foundlabel" != "boot-once=$bootonce" -a \ ++ "$foundlabel" != "$bootonce" ]; then + echo 1>&2 "$PRG: Could not nvsetenv boot-once $bootonce" + exit 1 + fi diff --git a/yaboot-1.3.14-no-birecs.patch b/yaboot-1.3.14-no-birecs.patch new file mode 100644 index 0000000..96748c7 --- /dev/null +++ b/yaboot-1.3.14-no-birecs.patch @@ -0,0 +1,11 @@ +--- yaboot-1.3.14/second/yaboot.c~ 2009-06-07 08:57:58.000000000 +0100 ++++ yaboot-1.3.14/second/yaboot.c 2009-06-07 09:02:03.000000000 +0100 +@@ -1243,7 +1243,7 @@ yaboot_text_ui(void) + flush_icache_range ((long)loadinfo.base, (long)loadinfo.base+loadinfo.memsize); + DEBUG_F(" done\n"); + +- if (flat_vmlinux) { ++ if (0 && flat_vmlinux) { + /* + * Fill new boot infos (only if booting a vmlinux). + * diff --git a/yaboot-relocatable-kernel.patch b/yaboot-relocatable-kernel.patch new file mode 100644 index 0000000..10e08ea --- /dev/null +++ b/yaboot-relocatable-kernel.patch @@ -0,0 +1,21 @@ +PPC64 relocatable kernels (built with CONFIG_RELOCATABLE=y) have the type of +ET_DYN. But yaboot code won't load the kernel if the ELF type is not +ET_EXEC. Attached patch adds support to yaboot to load relocatable kernels +also (ie load ET_DYN type also) + +Signed-off-by: M. Mohan Kumar +--- + second/yaboot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- yaboot-1.3.14.orig/second/yaboot.c ++++ yaboot-1.3.14/second/yaboot.c +@@ -1606,7 +1606,7 @@ is_elf64(loadinfo_t *loadinfo) + e->e_ident[EI_MAG3] == ELFMAG3 && + e->e_ident[EI_CLASS] == ELFCLASS64 && + e->e_ident[EI_DATA] == ELFDATA2MSB && +- e->e_type == ET_EXEC && ++ (e->e_type == ET_EXEC || e->e_type == ET_DYN) && + e->e_machine == EM_PPC64); + } + diff --git a/yaboot.spec b/yaboot.spec index f022427..a3bb91f 100644 --- a/yaboot.spec +++ b/yaboot.spec @@ -1,7 +1,7 @@ Summary: Linux bootloader for Power Macintosh "New World" computers. Name: yaboot Version: 1.3.14 -Release: 6%{?dist} +Release: 10%{?dist} License: GPLv2+ Group: System Environment/Base Source: http://yaboot.ozlabs.org/releases/yaboot-%{version}.tar.gz @@ -22,6 +22,10 @@ Patch22: yaboot-1.3.13-allow-deep-mntpoint.patch Patch27: yaboot-ppc64.patch Patch28: yaboot-1.3.13-dontwritehome.patch Patch29: yaboot-1.3.14-baseaddr.patch +Patch30: yaboot-1.3.14-fix-bootonce-nvram.patch +Patch31: yaboot-1.3.14-bigger-max-token.patch +Patch32: yaboot-relocatable-kernel.patch +Patch33: yaboot-1.3.14-no-birecs.patch URL: http://yaboot.ozlabs.org/ BuildRoot: %{_tmppath}/%{name}-root @@ -54,6 +58,10 @@ yaboot can also bootload IBM pSeries machines. %patch27 -p1 -b .ppc64 %patch28 -p1 -b .bootwrite %patch29 -p1 -b .baseaddr +%patch30 -p1 -b .bootonce +%patch31 -p1 -b .maxtoken +%patch32 -p1 -b .relocatable +%patch33 -p1 -b .nobirecs %build make VERSIONEXTRA='\ (Red Hat %version-%release)' @@ -89,6 +97,19 @@ rm -rf $RPM_BUILD_ROOT %ghost %config(noreplace) %{_sysconfdir}/yaboot.conf %changelog +* Tue Aug 11 2009 tony@bakeyournoodle.com - 1.3.14-10 +- Backported the "no birecs" patch from F-11, rawhide. See below for details: + https://www.redhat.com/archives/fedora-kernel-list/2009-June/msg00002.html + http://lists.ozlabs.org/pipermail/linuxppc-dev/2009-August/074571.html + +* Thu Jan 29 2009 Roman Rakus - 1.3.14-9 +- Add patch to handle relocatable kernels + Resolves: #483041 + +* Fri Nov 21 2008 David Woodhouse - 1.3.14-8 +- Fix 'ybin --bootonce' (#471425) +- Fix maximum token length, to fix preupgrade (#471321) + * Wed Nov 05 2008 Roman Rakus - 1.3.14-6 - Changed kernel load base address Resolves: #468492