diff --git a/.cvsignore b/.gitignore similarity index 66% rename from .cvsignore rename to .gitignore index 1961ae2..cd2576c 100644 --- a/.cvsignore +++ b/.gitignore @@ -1,3 +1,2 @@ yaboot-1.3.12.tar.gz yaboot-1.3.13.tar.gz -yaboot-1.3.14.tar.gz 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/sources b/sources index 8c34882..1f56f93 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ 85cf685c1dc5873c2a5124ba4524b2d2 yaboot-1.3.12.tar.gz f12798d1b2063f21d07e0ae7f602ccaf yaboot-1.3.13.tar.gz -dd346812667ab3818248c9784fe8e38e yaboot-1.3.14.tar.gz diff --git a/yaboot-1.3.13-libext2fs.patch b/yaboot-1.3.13-libext2fs.patch new file mode 100644 index 0000000..d593ff8 --- /dev/null +++ b/yaboot-1.3.13-libext2fs.patch @@ -0,0 +1,11 @@ +--- yaboot-1.3.13/Makefile~ 2004-07-11 21:12:03.000000000 +0100 ++++ yaboot-1.3.13/Makefile 2008-04-17 18:01:17.000000000 +0100 +@@ -63,7 +63,7 @@ LFLAGS = -Ttext $(TEXTADDR) -Bstatic + + # Libraries + # +-LLIBS = lib/libext2fs.a ++LLIBS = -lext2fs + + # For compiling userland utils + # diff --git a/yaboot-1.3.13-yabootconfig.patch b/yaboot-1.3.13-yabootconfig.patch index a6f6967..953d1f8 100644 --- a/yaboot-1.3.13-yabootconfig.patch +++ b/yaboot-1.3.13-yabootconfig.patch @@ -114,14 +114,17 @@ "") break ;; -@@ -474,6 +563,6 @@ - READLINKKV=`readlink /usr/src/linux` +@@ -474,7 +563,9 @@ + ## find the kernel in the usual places and (if not --quiet) ask the ## user if we cannot find one. --for k in "vmlinux" "vmlinux-`uname -r`" "vmlinux-`uname -r`" "$READLINKKV" ; do -+for k in "${KERNELIMAGE}" "vmlinux" "vmlinux-`uname -r`" "vmlinux-`uname -r`" "$READLINKKV" ; do - if [ -f "${CHROOT}${k}" ] ; then - KERNEL="${CHROOT}${k}" +-if [ -f "${CHROOT}vmlinux" ] ; then ++if [ -f "${CHROOT}${KERNELIMAGE}" ] ; then ++ KERNEL="${CHROOT}${KERNELIMAGE}" ++elif [ -f "${CHROOT}vmlinux" ] ; then + KERNEL="${CHROOT}vmlinux" + if [ -f "${CHROOT}initrd" ] ; then + INITRD="${CHROOT}initrd" @@ -721,6 +812,36 @@ HEADER="## see also: /usr/share/doc/yaboot/examples for example configurations.\n" fi @@ -159,7 +162,7 @@ ## setup append line if [ -n "$KERNARGS" ] ; then APPEND="\tappend=\"${KERNARGS}\"\n" -@@ -731,24 +850,64 @@ +@@ -740,24 +861,64 @@ INITRDIMGS="\tinitrd=$INITRDIMG\n\tinitrd-size=8192\n" fi @@ -196,7 +199,7 @@ -## -## run: \"man yaboot.conf\" for details. Do not make changes until you have!! -${HEADER}## --## For a dual-boot menu, add one or more of: +-## For a dual-boot menu, add one or more of: -## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ\n -boot=${BOOT}${DEVICE:-} +GLOBAL="boot=${BOOT}${DEVICE:-} 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-ppc64.patch b/yaboot-ppc64.patch index 8f9dd3e..18d1302 100644 --- a/yaboot-ppc64.patch +++ b/yaboot-ppc64.patch @@ -1,21 +1,29 @@ --- yaboot-1.3.13/Makefile.ppc64 2005-09-14 20:01:12.920430616 -0400 +++ yaboot-1.3.13/Makefile 2005-09-14 20:01:21.090385992 -0400 -@@ -36,7 +36,7 @@ +@@ -31,7 +31,7 @@ # The flags for the yaboot binary. # --YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `$(CC) -m32 -print-file-name=include` -fsigned-char --YBCFLAGS += -DVERSION=\"${VERSION}${VERSIONEXTRA}\" #" -+YBCFLAGS = -Os $(CFLAGS) -m32 -nostdinc -Wall -isystem `$(CC) -m32 -print-file-name=include` -fsigned-char -+YBCFLAGS += -DVERSION="\"${VERSION}${VERSIONEXTRA}\"" #" +-YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `gcc -print-file-name=include` -fsigned-char ++YBCFLAGS = -Os -m32 $(CFLAGS) -nostdinc -Wall -isystem `$(CC) -m32 -print-file-name=include` -fsigned-char + YBCFLAGS += -DVERSION="\"${VERSION}${VERSIONEXTRA}\"" #" YBCFLAGS += -DTEXTADDR=$(TEXTADDR) -DDEBUG=$(DEBUG) YBCFLAGS += -DMALLOCADDR=$(MALLOCADDR) -DMALLOCSIZE=$(MALLOCSIZE) -@@ -65,7 +65,7 @@ +@@ -60,7 +60,7 @@ + # Link flags # --LFLAGS = -Ttext $(TEXTADDR) -Bstatic -melf32ppclinux -+LFLAGS = -Ttext $(TEXTADDR) -Bstatic - +-LFLAGS = -Ttext $(TEXTADDR) -Bstatic ++LFLAGS = -Ttext $(TEXTADDR) -Bstatic -melf32ppclinux + # Libraries # - LLIBS = -lext2fs +@@ -100,7 +100,7 @@ + AS := $(CROSS)as + OBJCOPY := $(CROSS)objcopy + +-lgcc = `$(CC) -print-libgcc-file-name` ++lgcc = `$(CC) -m32 -print-libgcc-file-name` + + all: yaboot addnote mkofboot + 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 4a19b5b..2e6c210 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: 3%{?dist} +Version: 1.3.13 +Release: 14%{?dist} License: GPL Group: System Environment/Base Source: http://yaboot.ozlabs.org/releases/yaboot-%{version}.tar.gz @@ -38,11 +38,14 @@ Patch29: yaboot-1.3.13-dontwritehome.patch Patch30: yaboot-1.3.12-addnote.patch Patch31: yaboot-1.3.13-ofpath-firewire-usb.patch Patch32: yaboot-1.3.13-bplan.patch +Patch33: yaboot-1.3.13-libext2fs.patch +Patch34: yaboot-1.3.14-bigger-max-token.patch +Patch35: yaboot-relocatable-kernel.patch URL: http://yaboot.ozlabs.org/ BuildRoot: %{_tmppath}/%{name}-root Obsoletes: ybin -ExclusiveArch: ppc ppc64 +ExclusiveArch: ppc Requires: hfsutils BuildRequires: e2fsprogs-devel @@ -64,28 +67,31 @@ yaboot can also bootload IBM pSeries machines. %patch8 -p1 -b .sbin %patch9 -p1 -b .config %patch10 -p1 -b .parted -#%patch11 -p1 -b .manpage -#%patch12 -p1 -b .gcc34 -#%patch13 -p1 -b .amigaparts -#%patch14 -p1 -b .swraid1 -#%patch15 -p1 -b .nobootx -#%patch16 -p1 -b .swraid2 +%patch11 -p1 -b .manpage +%patch12 -p1 -b .gcc34 +%patch13 -p1 -b .amigaparts +%patch14 -p1 -b .swraid1 +%patch15 -p1 -b .nobootx +%patch16 -p1 -b .swraid2 %patch17 -p1 -b .pegasos %patch18 -p1 -b .ext2 -#%patch19 -p1 -b .confarg -#%patch20 -p1 -b .ofpath +%patch19 -p1 -b .confarg +%patch20 -p1 -b .ofpath %patch21 -p1 -b .pegasos-serial %patch22 -p1 -b .deepmnt -#%patch23 -p1 -b .malloc +%patch23 -p1 -b .malloc #patch24 -p1 -b .telnet -#%patch25 -p1 -b .netboot -#%patch26 -p1 -b .printversion +%patch25 -p1 -b .netboot +%patch26 -p1 -b .printversion %patch27 -p1 -b .ppc64 -#%patch28 -p1 -b .multisata +%patch28 -p1 -b .multisata %patch29 -p1 -b .bootwrite -#%patch30 -p1 -b .addnote -#%patch31 -p1 -b .firewire -#%patch32 -p1 -b .bplan +%patch30 -p1 -b .addnote +%patch31 -p1 -b .firewire +%patch32 -p1 -b .bplan +%patch33 -p1 -b .libext2fs +%patch34 -p1 -b .maxtoken +%patch35 -p1 -b .relocatable %build make VERSIONEXTRA='\ (Red Hat %version-%release)' @@ -121,8 +127,15 @@ rm -rf $RPM_BUILD_ROOT %ghost %config(noreplace) %{_sysconfdir}/yaboot.conf %changelog -* Wed Apr 16 2008 Roman Rakus - 1.3.14-3 -- Upstream 1.3.14 +* Thu Jan 29 2009 Roman Rakus - 1.3.13-14 +- Add patch to handle relocatable kernels + Resolves: #483041 + +* Thu Nov 27 2008 Roman Rakus - 1.3.13-13 +- Fix maximum token length, to fix preupgrade (#471321) + +* Thu Apr 17 2008 David Woodhouse - 1.3.13-12 +- Use system libext2fs.a instead of binary copy from tarball (#442904) * Thu Mar 27 2008 David Woodhouse - 1.3.13-11 - Correct off-by-one error in Amiga partition numbers