diff -pruN 1.4.13a+git20070930-3/.git/HEAD 1.4.14-0ubuntu3/.git/HEAD
--- 1.4.13a+git20070930-3/.git/HEAD	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/HEAD	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-ref: refs/heads/master
diff -pruN 1.4.13a+git20070930-3/.git/config 1.4.14-0ubuntu3/.git/config
--- 1.4.13a+git20070930-3/.git/config	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/config	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-[core]
-	repositoryformatversion = 0
-	filemode = true
-	bare = false
-	logallrefupdates = true
-[remote "origin"]
-	url = git://git.kernel.org/pub/scm/linux/kernel/git/bcollins/silo.git
-	fetch = +refs/heads/*:refs/remotes/origin/*
-[branch "master"]
-	remote = origin
-	merge = refs/heads/master
diff -pruN 1.4.13a+git20070930-3/.git/description 1.4.14-0ubuntu3/.git/description
--- 1.4.13a+git20070930-3/.git/description	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/description	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-Unnamed repository; edit this file to name it for gitweb.
diff -pruN 1.4.13a+git20070930-3/.git/hooks/applypatch-msg 1.4.14-0ubuntu3/.git/hooks/applypatch-msg
--- 1.4.13a+git20070930-3/.git/hooks/applypatch-msg	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/applypatch-msg	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to check the commit log message taken by
-# applypatch from an e-mail message.
-#
-# The hook should exit with non-zero status after issuing an
-# appropriate message if it wants to stop the commit.  The hook is
-# allowed to edit the commit message file.
-#
-# To enable this hook, make this file executable.
-
-. git-sh-setup
-test -x "$GIT_DIR/hooks/commit-msg" &&
-	exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
-:
diff -pruN 1.4.13a+git20070930-3/.git/hooks/commit-msg 1.4.14-0ubuntu3/.git/hooks/commit-msg
--- 1.4.13a+git20070930-3/.git/hooks/commit-msg	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/commit-msg	1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to check the commit log message.
-# Called by git-commit with one argument, the name of the file
-# that has the commit message.  The hook should exit with non-zero
-# status after issuing an appropriate message if it wants to stop the
-# commit.  The hook is allowed to edit the commit message file.
-#
-# To enable this hook, make this file executable.
-
-# Uncomment the below to add a Signed-off-by line to the message.
-# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
-# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
-
-# This example catches duplicate Signed-off-by lines.
-
-test "" = "$(grep '^Signed-off-by: ' "$1" |
-	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {
-	echo >&2 Duplicate Signed-off-by lines.
-	exit 1
-}
diff -pruN 1.4.13a+git20070930-3/.git/hooks/post-commit 1.4.14-0ubuntu3/.git/hooks/post-commit
--- 1.4.13a+git20070930-3/.git/hooks/post-commit	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/post-commit	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-#
-# An example hook script that is called after a successful
-# commit is made.
-#
-# To enable this hook, make this file executable.
-
-: Nothing
diff -pruN 1.4.13a+git20070930-3/.git/hooks/post-receive 1.4.14-0ubuntu3/.git/hooks/post-receive
--- 1.4.13a+git20070930-3/.git/hooks/post-receive	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/post-receive	1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-#!/bin/sh
-#
-# An example hook script for the post-receive event
-#
-# This script is run after receive-pack has accepted a pack and the
-# repository has been updated.  It is passed arguments in through stdin
-# in the form
-#  <oldrev> <newrev> <refname>
-# For example:
-#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
-#
-# see contrib/hooks/ for an sample, or uncomment the next line (on debian)
-#
-
-
-#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
diff -pruN 1.4.13a+git20070930-3/.git/hooks/post-update 1.4.14-0ubuntu3/.git/hooks/post-update
--- 1.4.13a+git20070930-3/.git/hooks/post-update	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/post-update	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to prepare a packed repository for use over
-# dumb transports.
-#
-# To enable this hook, make this file executable by "chmod +x post-update".
-
-exec git-update-server-info
diff -pruN 1.4.13a+git20070930-3/.git/hooks/pre-applypatch 1.4.14-0ubuntu3/.git/hooks/pre-applypatch
--- 1.4.13a+git20070930-3/.git/hooks/pre-applypatch	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/pre-applypatch	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to verify what is about to be committed
-# by applypatch from an e-mail message.
-#
-# The hook should exit with non-zero status after issuing an
-# appropriate message if it wants to stop the commit.
-#
-# To enable this hook, make this file executable.
-
-. git-sh-setup
-test -x "$GIT_DIR/hooks/pre-commit" &&
-	exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
-:
diff -pruN 1.4.13a+git20070930-3/.git/hooks/pre-commit 1.4.14-0ubuntu3/.git/hooks/pre-commit
--- 1.4.13a+git20070930-3/.git/hooks/pre-commit	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/pre-commit	1970-01-01 01:00:00.000000000 +0100
@@ -1,70 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to verify what is about to be committed.
-# Called by git-commit with no arguments.  The hook should
-# exit with non-zero status after issuing an appropriate message if
-# it wants to stop the commit.
-#
-# To enable this hook, make this file executable.
-
-# This is slightly modified from Andrew Morton's Perfect Patch.
-# Lines you introduce should not have trailing whitespace.
-# Also check for an indentation that has SP before a TAB.
-
-if git-rev-parse --verify HEAD 2>/dev/null
-then
-	git-diff-index -p -M --cached HEAD
-else
-	# NEEDSWORK: we should produce a diff with an empty tree here
-	# if we want to do the same verification for the initial import.
-	:
-fi |
-perl -e '
-    my $found_bad = 0;
-    my $filename;
-    my $reported_filename = "";
-    my $lineno;
-    sub bad_line {
-	my ($why, $line) = @_;
-	if (!$found_bad) {
-	    print STDERR "*\n";
-	    print STDERR "* You have some suspicious patch lines:\n";
-	    print STDERR "*\n";
-	    $found_bad = 1;
-	}
-	if ($reported_filename ne $filename) {
-	    print STDERR "* In $filename\n";
-	    $reported_filename = $filename;
-	}
-	print STDERR "* $why (line $lineno)\n";
-	print STDERR "$filename:$lineno:$line\n";
-    }
-    while (<>) {
-	if (m|^diff --git a/(.*) b/\1$|) {
-	    $filename = $1;
-	    next;
-	}
-	if (/^@@ -\S+ \+(\d+)/) {
-	    $lineno = $1 - 1;
-	    next;
-	}
-	if (/^ /) {
-	    $lineno++;
-	    next;
-	}
-	if (s/^\+//) {
-	    $lineno++;
-	    chomp;
-	    if (/\s$/) {
-		bad_line("trailing whitespace", $_);
-	    }
-	    if (/^\s* 	/) {
-		bad_line("indent SP followed by a TAB", $_);
-	    }
-	    if (/^(?:[<>=]){7}/) {
-		bad_line("unresolved merge conflict", $_);
-	    }
-	}
-    }
-    exit($found_bad);
-'
diff -pruN 1.4.13a+git20070930-3/.git/hooks/pre-rebase 1.4.14-0ubuntu3/.git/hooks/pre-rebase
--- 1.4.13a+git20070930-3/.git/hooks/pre-rebase	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/pre-rebase	1970-01-01 01:00:00.000000000 +0100
@@ -1,150 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2006 Junio C Hamano
-#
-
-publish=next
-basebranch="$1"
-if test "$#" = 2
-then
-	topic="refs/heads/$2"
-else
-	topic=`git symbolic-ref HEAD`
-fi
-
-case "$basebranch,$topic" in
-master,refs/heads/??/*)
-	;;
-*)
-	exit 0 ;# we do not interrupt others.
-	;;
-esac
-
-# Now we are dealing with a topic branch being rebased
-# on top of master.  Is it OK to rebase it?
-
-# Is topic fully merged to master?
-not_in_master=`git-rev-list --pretty=oneline ^master "$topic"`
-if test -z "$not_in_master"
-then
-	echo >&2 "$topic is fully merged to master; better remove it."
-	exit 1 ;# we could allow it, but there is no point.
-fi
-
-# Is topic ever merged to next?  If so you should not be rebasing it.
-only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort`
-only_next_2=`git-rev-list ^master           ${publish} | sort`
-if test "$only_next_1" = "$only_next_2"
-then
-	not_in_topic=`git-rev-list "^$topic" master`
-	if test -z "$not_in_topic"
-	then
-		echo >&2 "$topic is already up-to-date with master"
-		exit 1 ;# we could allow it, but there is no point.
-	else
-		exit 0
-	fi
-else
-	not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"`
-	perl -e '
-		my $topic = $ARGV[0];
-		my $msg = "* $topic has commits already merged to public branch:\n";
-		my (%not_in_next) = map {
-			/^([0-9a-f]+) /;
-			($1 => 1);
-		} split(/\n/, $ARGV[1]);
-		for my $elem (map {
-				/^([0-9a-f]+) (.*)$/;
-				[$1 => $2];
-			} split(/\n/, $ARGV[2])) {
-			if (!exists $not_in_next{$elem->[0]}) {
-				if ($msg) {
-					print STDERR $msg;
-					undef $msg;
-				}
-				print STDERR " $elem->[1]\n";
-			}
-		}
-	' "$topic" "$not_in_next" "$not_in_master"
-	exit 1
-fi
-
-exit 0
-
-################################################################
-
-This sample hook safeguards topic branches that have been
-published from being rewound.
-
-The workflow assumed here is:
-
- * Once a topic branch forks from "master", "master" is never
-   merged into it again (either directly or indirectly).
-
- * Once a topic branch is fully cooked and merged into "master",
-   it is deleted.  If you need to build on top of it to correct
-   earlier mistakes, a new topic branch is created by forking at
-   the tip of the "master".  This is not strictly necessary, but
-   it makes it easier to keep your history simple.
-
- * Whenever you need to test or publish your changes to topic
-   branches, merge them into "next" branch.
-
-The script, being an example, hardcodes the publish branch name
-to be "next", but it is trivial to make it configurable via
-$GIT_DIR/config mechanism.
-
-With this workflow, you would want to know:
-
-(1) ... if a topic branch has ever been merged to "next".  Young
-    topic branches can have stupid mistakes you would rather
-    clean up before publishing, and things that have not been
-    merged into other branches can be easily rebased without
-    affecting other people.  But once it is published, you would
-    not want to rewind it.
-
-(2) ... if a topic branch has been fully merged to "master".
-    Then you can delete it.  More importantly, you should not
-    build on top of it -- other people may already want to
-    change things related to the topic as patches against your
-    "master", so if you need further changes, it is better to
-    fork the topic (perhaps with the same name) afresh from the
-    tip of "master".
-
-Let's look at this example:
-
-		   o---o---o---o---o---o---o---o---o---o "next"
-		  /       /           /           /
-		 /   a---a---b A     /           /
-		/   /               /           /
-	       /   /   c---c---c---c B         /
-	      /   /   /             \         /
-	     /   /   /   b---b C     \       /
-	    /   /   /   /             \     /
-    ---o---o---o---o---o---o---o---o---o---o---o "master"
-
-
-A, B and C are topic branches.
-
- * A has one fix since it was merged up to "next".
-
- * B has finished.  It has been fully merged up to "master" and "next",
-   and is ready to be deleted.
-
- * C has not merged to "next" at all.
-
-We would want to allow C to be rebased, refuse A, and encourage
-B to be deleted.
-
-To compute (1):
-
-	git-rev-list ^master ^topic next
-	git-rev-list ^master        next
-
-	if these match, topic has not merged in next at all.
-
-To compute (2):
-
-	git-rev-list master..topic
-
-	if this is empty, it is fully merged to "master".
diff -pruN 1.4.13a+git20070930-3/.git/hooks/update 1.4.14-0ubuntu3/.git/hooks/update
--- 1.4.13a+git20070930-3/.git/hooks/update	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/hooks/update	1970-01-01 01:00:00.000000000 +0100
@@ -1,78 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to blocks unannotated tags from entering.
-# Called by git-receive-pack with arguments: refname sha1-old sha1-new
-#
-# To enable this hook, make this file executable by "chmod +x update".
-#
-# Config
-# ------
-# hooks.allowunannotated
-#   This boolean sets whether unannotated tags will be allowed into the
-#   repository.  By default they won't be.
-#
-
-# --- Command line
-refname="$1"
-oldrev="$2"
-newrev="$3"
-
-# --- Safety check
-if [ -z "$GIT_DIR" ]; then
-	echo "Don't run this script from the command line." >&2
-	echo " (if you want, you could supply GIT_DIR then run" >&2
-	echo "  $0 <ref> <oldrev> <newrev>)" >&2
-	exit 1
-fi
-
-if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
-	echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
-	exit 1
-fi
-
-# --- Config
-allowunannotated=$(git-repo-config --bool hooks.allowunannotated)
-
-# check for no description
-projectdesc=$(sed -e '1p' "$GIT_DIR/description")
-if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb" ]; then
-	echo "*** Project description file hasn't been set" >&2
-	exit 1
-fi
-
-# --- Check types
-# if $newrev is 0000...0000, it's a commit to delete a branch
-if [ "$newrev" = "0000000000000000000000000000000000000000" ]; then
-	newrev_type=commit
-else
-	newrev_type=$(git-cat-file -t $newrev)
-fi
-
-case "$refname","$newrev_type" in
-	refs/tags/*,commit)
-		# un-annotated tag
-		short_refname=${refname##refs/tags/}
-		if [ "$allowunannotated" != "true" ]; then
-			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
-			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
-			exit 1
-		fi
-		;;
-	refs/tags/*,tag)
-		# annotated tag
-		;;
-	refs/heads/*,commit)
-		# branch
-		;;
-	refs/remotes/*,commit)
-		# tracking branch
-		;;
-	*)
-		# Anything else (is there anything else?)
-		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
-		exit 1
-		;;
-esac
-
-# --- Finished
-exit 0
Binary files 1.4.13a+git20070930-3/.git/index and 1.4.14-0ubuntu3/.git/index differ
diff -pruN 1.4.13a+git20070930-3/.git/info/exclude 1.4.14-0ubuntu3/.git/info/exclude
--- 1.4.13a+git20070930-3/.git/info/exclude	2007-09-30 10:28:40.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/info/exclude	1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-# git-ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff -pruN 1.4.13a+git20070930-3/.git/logs/HEAD 1.4.14-0ubuntu3/.git/logs/HEAD
--- 1.4.13a+git20070930-3/.git/logs/HEAD	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/logs/HEAD	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-0000000000000000000000000000000000000000 d5df685dc549b9b94b4affbcbec6aeb55c74dd48 Jurij <jurij@goofy.wooyd.org> 1191144524 +1200
diff -pruN 1.4.13a+git20070930-3/.git/logs/refs/heads/master 1.4.14-0ubuntu3/.git/logs/refs/heads/master
--- 1.4.13a+git20070930-3/.git/logs/refs/heads/master	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/logs/refs/heads/master	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-0000000000000000000000000000000000000000 d5df685dc549b9b94b4affbcbec6aeb55c74dd48 Jurij <jurij@goofy.wooyd.org> 1191144524 +1200
diff -pruN 1.4.13a+git20070930-3/.git/logs/refs/remotes/origin/master 1.4.14-0ubuntu3/.git/logs/refs/remotes/origin/master
--- 1.4.13a+git20070930-3/.git/logs/refs/remotes/origin/master	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/logs/refs/remotes/origin/master	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-0000000000000000000000000000000000000000 d5df685dc549b9b94b4affbcbec6aeb55c74dd48 Jurij <jurij@goofy.wooyd.org> 1191144524 +1200	clone: from git://git.kernel.org/pub/scm/linux/kernel/git/bcollins/silo.git
Binary files 1.4.13a+git20070930-3/.git/objects/pack/pack-19f21d95687e8694c24a238529dd7aa7e70c011c.idx and 1.4.14-0ubuntu3/.git/objects/pack/pack-19f21d95687e8694c24a238529dd7aa7e70c011c.idx differ
Binary files 1.4.13a+git20070930-3/.git/objects/pack/pack-19f21d95687e8694c24a238529dd7aa7e70c011c.pack and 1.4.14-0ubuntu3/.git/objects/pack/pack-19f21d95687e8694c24a238529dd7aa7e70c011c.pack differ
diff -pruN 1.4.13a+git20070930-3/.git/refs/heads/master 1.4.14-0ubuntu3/.git/refs/heads/master
--- 1.4.13a+git20070930-3/.git/refs/heads/master	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/refs/heads/master	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-d5df685dc549b9b94b4affbcbec6aeb55c74dd48
diff -pruN 1.4.13a+git20070930-3/.git/refs/remotes/origin/HEAD 1.4.14-0ubuntu3/.git/refs/remotes/origin/HEAD
--- 1.4.13a+git20070930-3/.git/refs/remotes/origin/HEAD	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/refs/remotes/origin/HEAD	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-ref: refs/remotes/origin/master
diff -pruN 1.4.13a+git20070930-3/.git/refs/remotes/origin/master 1.4.14-0ubuntu3/.git/refs/remotes/origin/master
--- 1.4.13a+git20070930-3/.git/refs/remotes/origin/master	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/refs/remotes/origin/master	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-d5df685dc549b9b94b4affbcbec6aeb55c74dd48
diff -pruN 1.4.13a+git20070930-3/.git/refs/tags/v1.4.12 1.4.14-0ubuntu3/.git/refs/tags/v1.4.12
--- 1.4.13a+git20070930-3/.git/refs/tags/v1.4.12	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/.git/refs/tags/v1.4.12	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-f43b1801498990bbace3ed3764c976ca9ed0c30e
diff -pruN 1.4.13a+git20070930-3/Makefile 1.4.14-0ubuntu3/Makefile
--- 1.4.13a+git20070930-3/Makefile	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/Makefile	2008-06-12 17:39:12.000000000 +0100
@@ -41,17 +41,18 @@ install:
 endif
 
 tag:
-	svn copy -m "Tag $(VERSION)" svn://svn.sparc-boot.org/silo/trunk \
-		svn://svn.sparc-boot.org/silo/tags/v$(VERSION)
+	git-tag -s -m "Tag v$(VERSION)" v$(VERSION)
 
 # This is just for me to make release tarballs
-release: ../silo-loaders-$(VERSION).tar.gz ../silo-$(VERSION).tar.gz ../silo-$(VERSION).tar.bz2
+release: ../silo-$(VERSION).tar.gz ../silo-$(VERSION).tar.bz2
 	rm -rf ../silo-$(VERSION) boot
+# ../silo-loaders-$(VERSION).tar.gz
 
 ../silo-loaders-$(VERSION).tar%:
 	rm -rf ../silo-$(VERSION)
-	svn export svn://svn.sparc-boot.org/silo/tags/v$(VERSION) \
-		../silo-$(VERSION)
+	git-clone `pwd` ../silo-$(VERSION)
+	(cd ../silo-$(VERSION); git-branch v$(VERSION) v$(VERSION); git-checkout v$(VERSION))
+	rm -rf ../silo-$(VERSION)/.git
 	install -d ../silo-$(VERSION)/boot
 	for I in first first-isofs second; do $(MAKE) -C ../silo-$(VERSION)/$$I all || exit 1; done;
 	install -d ../silo-$(VERSION)/boot
@@ -64,8 +65,9 @@ release: ../silo-loaders-$(VERSION).tar.
 
 ../silo-$(VERSION).tar%: clean
 	rm -rf ../silo-$(VERSION)
-	svn export svn://svn.sparc-boot.org/silo/tags/v$(VERSION) \
-		../silo-$(VERSION)
+	git-clone `pwd` ../silo-$(VERSION)
+	(cd ../silo-$(VERSION); git-branch v$(VERSION) v$(VERSION); git-checkout v$(VERSION))
+	rm -rf ../silo-$(VERSION)/.git
 	case "$*" in .gz) foo="gzip -c9";; .bz2) foo="bzip2 -c9";; *) foo=cat;; esac; \
 		(cd ../ && tar cf - silo-$(VERSION)) | $$foo > $@
 	rm -rf ../silo-$(VERSION)
diff -pruN 1.4.13a+git20070930-3/Rules.make 1.4.14-0ubuntu3/Rules.make
--- 1.4.13a+git20070930-3/Rules.make	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/Rules.make	2008-06-12 17:39:12.000000000 +0100
@@ -1,4 +1,4 @@
-VERSION=1.4.13
+VERSION=1.4.14
 IMGVERSION=0.99
 SHELL=/bin/bash
 RM=rm -f
diff -pruN 1.4.13a+git20070930-3/debian/changelog 1.4.14-0ubuntu3/debian/changelog
--- 1.4.13a+git20070930-3/debian/changelog	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/changelog	2009-10-21 15:23:04.000000000 +0100
@@ -1,12 +1,41 @@
-silo (1.4.13a+git20070930-3) unstable; urgency=low
+silo (1.4.14-0ubuntu3) karmic; urgency=low
 
-  [ Jurij Smakov ]
-  * Include patches eb6151388752b52804f80ff27e90ec2dbde71339 and
-    a55764ceef83086d00b5f7b8b3027b517fc4ca23 from the git tree to
-    fix build failure when building against kernel headers 2.6.25
-    or newer. (Closes: #495860)
+  * Disable siloconfig from ever running automatically
+    - siloconfig doesn't properly handle UUIDs, and its default configuration
+      doesn't set important things like initrd. In almost all cases it will be
+      a silo -f, which we can simply do ourselves. We'll leave it in case the user
+      ever needs it. This also puts silo more in line with the current behavior of
+      lilo. (LP: #431106)
+
+ -- Michael Casadevall <mcasadevall@ubuntu.com>  Wed, 16 Sep 2009 23:37:30 -0400
+
+silo (1.4.14-0ubuntu2) karmic; urgency=low
+
+  * Build using the default gcc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 18 Jul 2009 20:44:15 +0200
+
+silo (1.4.14-0ubuntu1) intrepid; urgency=low
+
+  * New upstream release:
+    - Drop local patches that have been merged upstream.
+    - Update debian/copyright to reflect new tarball release URL.
+    - Add patch to fix FTBFS (stolen from Fedora).
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Tue, 24 Jun 2008 13:04:51 +0200
+
+silo (1.4.13a+git20070930-2ubuntu1) intrepid; urgency=low
 
- -- Jurij Smakov <jurij@debian.org>  Sun, 24 Aug 2008 10:04:17 +0100
+  * Merge from debian unstable, remaining changes:
+    - Build with -fno-stack-protector.
+    - Change silo.postinst to automatically update the boot block without
+      invoking siloconfig and keep asking questions on upgrades.
+    - Convert silo.conf to use /dev/disk/by-uuid.
+    - Ubuntu maintainer foobar.
+    - Fix debian/rules call to dh_installdocs.
+    - Drop the requirement of gcc-4.1 and start using default gcc.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Tue, 24 Jun 2008 13:02:23 +0200
 
 silo (1.4.13a+git20070930-2) unstable; urgency=low
 
@@ -24,6 +53,19 @@ silo (1.4.13a+git20070930-2) unstable; u
 
  -- Jurij Smakov <jurij@debian.org>  Sun, 16 Mar 2008 21:59:32 +0000
 
+silo (1.4.13a+git20070930-1ubuntu1) hardy; urgency=low
+
+  * Merge from debian unstable, remaining changes:
+    - Build with -fno-stack-protector.
+    - Change silo.postinst to automatically update the boot block without
+      invoking siloconfig and keep asking questions on upgrades.
+    - Convert silo.conf to use /dev/disk/by-uuid.
+    - Ubuntu maintainer foobar.
+    - Fix debian/rules call to dh_installdocs.
+    - Drop the requirement of gcc-4.1 and start using default gcc.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Thu, 25 Oct 2007 09:28:08 +0200
+
 silo (1.4.13a+git20070930-1) unstable; urgency=low
 
   [ Jurij Smakov ]
@@ -64,6 +106,44 @@ silo (1.4.13a-1) unstable; urgency=low
 
  -- Jurij Smakov <jurij@debian.org>  Sun, 19 Aug 2007 01:30:48 +1200
 
+silo (1.4.13-1ubuntu5) feisty; urgency=low
+  
+  * Convert silo.conf to use /dev/disk/by-uuid.
+
+  * Set maintainer stuff for ubuntu.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Fri, 16 Mar 2007 13:51:58 +0100
+
+silo (1.4.13-1ubuntu4) feisty; urgency=low
+  
+  * Change silo.postinst to automatically update the boot block without
+    invoking siloconfig and keep asking questions on upgrades.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Mon, 08 Jan 2007 08:26:01 +0100
+
+silo (1.4.13-1ubuntu3) feisty; urgency=low
+  
+  * Add patch 50-silo_needs_printf_instead_of_echo.patch or all *.b files are
+    hutterly broken.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Mon, 18 Dec 2006 18:09:08 -0800
+
+silo (1.4.13-1ubuntu2) feisty; urgency=low
+  
+  * Add patch 40-silo_needs_ufs_headers.patch to fix FTBFS since ufs headers
+    are not exported by the kernel anymore.
+
+  * fix debian/rules dh_installdocs shell expantion.
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Mon, 18 Dec 2006 13:05:20 -0800
+
+silo (1.4.13-1ubuntu1) feisty; urgency=low
+
+  * Merge from debian unstable:
+    * Change build-dep from linux-kernel-headers to linux-libc-dev
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Wed, 08 Nov 2006 02:51:05 +0100
+
 silo (1.4.13-1) unstable; urgency=low
 
   * New upstream release.
@@ -78,7 +158,16 @@ silo (1.4.13-1) unstable; urgency=low
     where this change was first introduced.
 
  -- Jurij Smakov <jurij@debian.org>  Mon, 16 Oct 2006 20:37:29 -0700
-  
+
+silo (1.4.12-2ubuntu1) edgy; urgency=low
+        
+  * Disable gcc stack protector and fix FTBFS.
+
+  * Use bash for make shell.
+  (Closes Ubuntu: #61819)
+
+ -- Fabio M. Di Nitto <fabbione@ubuntu.com>  Fri, 15 Sep 2006 09:10:26 +0200
+
 silo (1.4.12-2) unstable; urgency=low
 
   * Add a patch (20-silo_cdrom_boot_fix.patch) by David 
diff -pruN 1.4.13a+git20070930-3/debian/control 1.4.14-0ubuntu3/debian/control
--- 1.4.13a+git20070930-3/debian/control	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/control	2009-10-21 15:23:04.000000000 +0100
@@ -1,9 +1,10 @@
 Source: silo
 Section: admin
 Priority: important
-Maintainer: Debootloaders SILO Maintainers Team <debootloaders-silo@lists.alioth.debian.org>
+Maintainer: Fabio M. Di Nitto <fabbione@ubuntu.com>
+XSBC-Original-Maintainer: Debootloaders SILO Maintainers Team <debootloaders-silo@lists.alioth.debian.org>
 Uploaders: Ben Collins <bcollins@debian.org>, Jurij Smakov <jurij@debian.org>, Aurélien GÉRÔME <ag@roxor.cx>
-Build-Depends: e2fslibs-dev (>= 1.28), debhelper (>= 5.0), gcc-4.3, bzip2, sparc-utils, perl, linux-libc-dev (>= 2.6.22), quilt
+Build-Depends: e2fslibs-dev (>= 1.28), debhelper (>= 5.0), bzip2, sparc-utils, perl, linux-libc-dev (>= 2.6.22), quilt
 Standards-Version: 3.7.3
 Vcs-Svn: svn://svn.debian.org/svn/debootloaders/trunk/silo/
 Vcs-Browser: http://svn.debian.org/wsvn/debootloaders/trunk/silo/
diff -pruN 1.4.13a+git20070930-3/debian/copyright 1.4.14-0ubuntu3/debian/copyright
--- 1.4.13a+git20070930-3/debian/copyright	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/copyright	2009-10-21 15:23:04.000000000 +0100
@@ -7,6 +7,9 @@ ftp://download.sourceforge.net/pub/sourc
 Starting with version 1.4.11 the upstream silo is found at
 http://www.sparc-boot.org/pub/silo/
 
+Starting with version 1.4.14 the upstream silo is found at
+http://www.phunnypharm.org/pub/silo/
+
 Starting September 2007 the upstream source is obtained from
 the git tree using the following commands:
 
diff -pruN 1.4.13a+git20070930-3/debian/patches/00_fix_build.diff 1.4.14-0ubuntu3/debian/patches/00_fix_build.diff
--- 1.4.13a+git20070930-3/debian/patches/00_fix_build.diff	1970-01-01 01:00:00.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/00_fix_build.diff	2009-10-21 15:23:04.000000000 +0100
@@ -0,0 +1,12 @@
+--- silo-1.4.14.orig/second/main.c	2008-06-12 18:39:12.000000000 +0200
++++ silo-1.4.14/second/main.c	2008-06-24 13:10:57.000000000 +0200
+@@ -25,8 +25,7 @@
+ /* TODO: This file is a good candidate for rewrite from scratch.  */
+ 
+ #include <silo.h>
+-#include <asm/page.h>
+-#include <linux/elf.h>
++#include <elf.h>
+ #include <stringops.h>
+ 
+ #ifndef NULL
diff -pruN 1.4.13a+git20070930-3/debian/patches/11-silocheck_non-failure_on_stat.patch 1.4.14-0ubuntu3/debian/patches/11-silocheck_non-failure_on_stat.patch
--- 1.4.13a+git20070930-3/debian/patches/11-silocheck_non-failure_on_stat.patch	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/11-silocheck_non-failure_on_stat.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-diff -ruN a/silo/silocheck.c b/silo/silocheck.c
---- a/silo/silocheck.c        2006-06-01 17:24:53.000000000 +0000
-+++ b/silo/silocheck.c       2007-08-13 15:26:21.000000000 +0000
-@@ -22,6 +22,7 @@
- #include "../second/fs/ufs.c"
- #endif
-
-+#include <errno.h>
- #include <stdio.h>
- #include <stdarg.h>
- #include <string.h>
-@@ -254,7 +255,11 @@
-     p = strchr (name, 0);
-     while ((dir = readdir(dp)) != NULL) {
-         strcpy(p,dir->d_name);
--        if (stat(name,&s) < 0) return NULL;
-+        /*
-+         * It is possible that we got an unresolved symlink under /dev.
-+         * Such a file will make silocheck fail and we do not want this.
-+         */
-+        if (stat(name,&s) < 0 && errno != ENOENT) return NULL;
-         if (S_ISBLK(s.st_mode) && s.st_rdev == number) return name;
-     }
-     return NULL;
diff -pruN 1.4.13a+git20070930-3/debian/patches/20-silo_ls_fix_date_calc.patch 1.4.14-0ubuntu3/debian/patches/20-silo_ls_fix_date_calc.patch
--- 1.4.13a+git20070930-3/debian/patches/20-silo_ls_fix_date_calc.patch	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/20-silo_ls_fix_date_calc.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-Index: build-tree/second/ls.c
-===================================================================
---- build-tree.orig/second/ls.c	2007-08-16 08:01:05.000000000 +1200
-+++ build-tree/second/ls.c	2007-08-16 08:01:44.000000000 +1200
-@@ -157,7 +157,8 @@
-     if (tab_ambiguous == NULL && ls_opt & LSOPT_L) {
- 	char mode[11];
- 	char *q;
--	unsigned int mtime, day, hour, min, month, year;
-+	unsigned int mtime;
-+	int day, hour, min, month, year;
- 	static char *months[] = {
- 	    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- 	    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
diff -pruN 1.4.13a+git20070930-3/debian/patches/series 1.4.14-0ubuntu3/debian/patches/series
--- 1.4.13a+git20070930-3/debian/patches/series	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/series	2009-10-21 15:23:04.000000000 +0100
@@ -1,4 +1 @@
-11-silocheck_non-failure_on_stat.patch
-20-silo_ls_fix_date_calc.patch
-silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch
-silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch
+00_fix_build.diff
diff -pruN 1.4.13a+git20070930-3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch 1.4.14-0ubuntu3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch
--- 1.4.13a+git20070930-3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/silo.git-a55764ceef83086d00b5f7b8b3027b517fc4ca23.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,158 +0,0 @@
-From: Friedrich Oslage <ben.collins@canonical.com>
-Date: Thu, 21 Aug 2008 14:27:48 +0000 (-0400)
-Subject: Include libgcc.a to get __ffssi2 and add a simple sprintf function to fix these undef ...
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fbcollins%2Fsilo.git;a=commitdiff_plain;h=a55764ceef83086d00b5f7b8b3027b517fc4ca23;hp=eb6151388752b52804f80ff27e90ec2dbde71339
-
-Include libgcc.a to get __ffssi2 and add a simple sprintf function to fix these undefined references when compiling with GCC-4.3:
-
-/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x4f8): undefined reference to `__ffssi2'
-/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x518): undefined reference to `__ffssi2'
-/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_next_bit_set': (.text+0x544): undefined reference to `__ffssi2'
-/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_first_bit_set': (.text+0x5a8): undefined reference to `__ffssi2'
-/usr/bin/../lib/libext2fs.a(inline.o): In function `ext2fs_find_first_bit_set': (.text+0x5d8): undefined reference to `__ffssi2'
-/usr/bin/../lib/libext2fs.a(rw_bitmaps.o): In function `read_bitmaps': (.text+0x46c): undefined reference to `sprintf'
-/usr/bin/../lib/libext2fs.a(rw_bitmaps.o): In function `read_bitmaps': (.text+0x664): undefined reference to `sprintf'
-
-Signed-off-by: Friedrich Oslage <bluebird@gentoo.org>
-Signed-off-by: Ben Collins <ben.collins@canonical.com>
----
-
-diff --git a/common/printf.c b/common/printf.c
-index eed5da2..0d6d84c 100644
---- a/common/printf.c
-+++ b/common/printf.c
-@@ -21,6 +21,7 @@
-    USA.  */
- 
- #include "promlib.h"
-+#include <stringops.h>
- 
- /*
-  * This part is rewritten by Igor Timkin <ivt@msu.su>. Than I
-@@ -147,3 +148,91 @@ void prom_printf (char *fmt,...)
-     vprintf (fmt, x1);
-     va_end (x1);
- }
-+
-+static int sprintn (char *str, long long n, int b)
-+{
-+    static char prbuf[33];
-+    register char *cp;
-+    int count = 0;
-+
-+    if (b == 10 && n < 0) {
-+	memset (str + count, '-', 1);
-+	count++;
-+	n = -n;
-+    }
-+    cp = prbuf;
-+    do
-+	*cp++ = "0123456789ABCDEF"[(unsigned int) (((unsigned long)n) % b)];
-+    while ((n = ((unsigned long long)n) / b & 0x0FFFFFFFFFFFFFFFULL));
-+    do {
-+	memset (str + count, *--cp, 1);
-+	count++;
-+    } while (cp > prbuf);
-+
-+    return count;
-+}
-+
-+int vsprintf (char *str, char *fmt, va_list adx)
-+{
-+    register int c;
-+    char *s;
-+    int count = 0;
-+
-+    for (;;) {
-+	while ((c = *fmt++) != '%') {
-+	    memset (str + count, c, 1);
-+	    if (c == '\0') {
-+		return count;
-+	    }
-+	}
-+	c = *fmt++;
-+	if (c == 'd' || c == 'o' || c == 'x' || c == 'X') {
-+	    count += sprintn (str + count, (long long) va_arg (adx, unsigned),
-+			     c == 'o' ? 8 : (c == 'd' ? 10 : 16));
-+	} else if (c == 'c') {
-+	    memset (str + count, va_arg (adx, unsigned), 1);
-+	    count++;
-+	} else if (c == 's') {
-+	    if ((s = va_arg (adx, char *)) == NULL)
-+		s = (char *)"(null)";
-+	    while ((c = *s++)) {
-+		memset (str + count, c, 1);
-+		count++;
-+	    }
-+	} else if (c == 'l' || c == 'O') {
-+	    count += sprintn (str + count, (long long) va_arg (adx, long), c == 'l' ? 10 : 8);
-+	} else if (c == 'L') {
-+	    int hex = 0;
-+	    if (*fmt == 'x') {
-+		fmt++;
-+		hex = 1;
-+	    }
-+	    count += sprintn (str + count, (long long) va_arg (adx, long long), hex ? 16 : 10);
-+	} else {
-+	    /* This is basically what libc's printf does */
-+	    memset (str + count, '%', 1);
-+	    count++;
-+	    memset (str + count, c, 1);
-+	    count++;
-+	}
-+    }
-+
-+    return count;
-+}
-+
-+/*
-+ * Scaled down version of C Library sprintf.
-+ * Only %c %s %d (==%u) %o %x %X %l %O are recognized.
-+ */
-+
-+int sprintf (char *s, char *format, ...)
-+{
-+    va_list arg;
-+    int done;
-+
-+    va_start (arg, format);
-+    done = vsprintf (s, format, arg);
-+    va_end (arg);
-+
-+    return done;
-+}
-diff --git a/include/silo.h b/include/silo.h
-index 51c62e7..fe5adcb 100644
---- a/include/silo.h
-+++ b/include/silo.h
-@@ -87,6 +87,8 @@ int silo_disk_partitionable(void);
- void silo_disk_close(void);
- /* printf.c */
- int vprintf (char *, va_list);
-+int vsprintf (char *str, char *fmt, va_list adx);
-+int sprintf (char *s, char *format, ...);
- int putchar (int);
- /* malloc.c */
- void *malloc (int);
-diff --git a/second/Makefile b/second/Makefile
-index 3a7763d..ff4c8b5 100644
---- a/second/Makefile
-+++ b/second/Makefile
-@@ -58,13 +58,13 @@ fs/libfs.a: $(FS_OBJS)
- 	$(AR) rc $@ $(FS_OBJS)
- 
- second: $(OBJS) mark.o
--	$(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o
--	$(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o
-+	$(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
-+	$(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
- 	$(NM) second | grep -v '*ABS*' | sort > second.map
- 
- silotftp: $(OBJSNET) mark.o
--	$(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o
--	$(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o
-+	$(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
-+	$(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name`
- 	$(NM) silotftp | grep -v '*ABS*' | sort > silotftp.map
- 
- second.l: second
diff -pruN 1.4.13a+git20070930-3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch 1.4.14-0ubuntu3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch
--- 1.4.13a+git20070930-3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/patches/silo.git-eb6151388752b52804f80ff27e90ec2dbde71339.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-From: Friedrich Oslage <ben.collins@canonical.com>
-Date: Thu, 21 Aug 2008 14:26:43 +0000 (-0400)
-Subject: Fix includes to work with linux headers >= 2.6.25
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fbcollins%2Fsilo.git;a=commitdiff_plain;h=eb6151388752b52804f80ff27e90ec2dbde71339;hp=fa2c84cc063b8056863332d4c8ca7ccbc6754da5
-
-Fix includes to work with linux headers >= 2.6.25
-
-Signed-off-by: Friedrich Oslage <bluebird@gentoo.org>
-Signed-off-by: Ben Collins <ben.collins@canonical.com>
----
-
-diff --git a/include/ext2fs/ext2fs.h b/include/ext2fs/ext2fs.h
-index 55aed7d..6973caa 100644
---- a/include/ext2fs/ext2fs.h
-+++ b/include/ext2fs/ext2fs.h
-@@ -39,7 +39,7 @@ extern "C" {
-  */
- #define EXT2_LIB_CURRENT_REV	0
- 
--#ifdef HAVE_SYS_TYPES_H
-+#if defined(HAVE_SYS_TYPES_H) && !defined(_LINUX_TYPES_H)
- #include <sys/types.h>
- #endif
- 
-diff --git a/second/main.c b/second/main.c
-index 4f753b0..182b263 100644
---- a/second/main.c
-+++ b/second/main.c
-@@ -25,8 +25,7 @@
- /* TODO: This file is a good candidate for rewrite from scratch.  */
- 
- #include <silo.h>
--#include <asm/page.h>
--#include <linux/elf.h>
-+#include <elf.h>
- #include <stringops.h>
- 
- #ifndef NULL
diff -pruN 1.4.13a+git20070930-3/debian/postinst 1.4.14-0ubuntu3/debian/postinst
--- 1.4.13a+git20070930-3/debian/postinst	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/postinst	2009-10-21 15:23:04.000000000 +0100
@@ -1,4 +1,67 @@
 #!/bin/sh
-/usr/sbin/siloconfig
+
+set -e
+
+convert_to_uuid() {
+  line=$1
+  byuuid=""
+  root=$(echo "$line" | sed 's/.*root=//;s/ .*//')
+  case "$root" in
+    UUID=*|LABEL=*|/dev/disk/*|/dev/mapper/*|/dev/evms/*|/dev/md[0-9]*)
+    ;;
+    /dev/*)
+      if [ -L "$root" ] && readlink "$root" | grep -q "^/dev/mapper/"
+      then
+	:
+      elif [ -b "$root" ]; then
+	uuid=$(/sbin/vol_id -u "$root" || true)
+	if [ -n "$uuid" ]; then
+	  byuuid=$(echo "$line" | sed "s#\(.*root=\)[^ ]*#\1/dev/disk/by-uuid/$uuid#")
+	fi
+      fi
+    ;;
+  esac
+  if [ -n "$byuuid" ]; then
+    echo \# "$line"
+    echo "$byuuid"
+  else
+    echo "$line"
+  fi
+}
+
+convert_silo_conf() {
+  if [ -f silo.conf.uuid ]; then
+	return
+  fi
+  OLDIFS=${IFS}
+  export IFS="Å"
+  cat /boot/silo.conf | { while read line; do
+  	case "$line" in
+		*root=*)
+			convert_to_uuid "$line" >> /boot/silo.conf.uuid
+		;;
+		*)
+			echo $line >> /boot/silo.conf.uuid
+		;;
+	esac
+  done; }
+  export IFS="${OLDIFS}"
+  cp /boot/silo.conf /boot/silo.conf.pre-uuid
+  cp /boot/silo.conf.uuid /boot/silo.conf
+  rm /boot/silo.conf.uuid
+}
+
+# Change from Debian: We never want to run siloconfig
+#
+# because silo-installer will create a proper /boot/silo.conf
+# and siloconfig doesn't properly handle UUIDs at the moment
+
+if [ -f /boot/silo.conf ]; then
+  /sbin/silo -f
+  if dpkg --compare-versions "$2" lt "1.4.13-1ubuntu5"; then
+    convert_silo_conf
+    /sbin/silo -f
+  fi
+fi
 
 #DEBHELPER#
diff -pruN 1.4.13a+git20070930-3/debian/rules 1.4.14-0ubuntu3/debian/rules
--- 1.4.13a+git20070930-3/debian/rules	2009-10-21 15:23:04.000000000 +0100
+++ 1.4.14-0ubuntu3/debian/rules	2009-10-21 15:23:04.000000000 +0100
@@ -2,7 +2,7 @@
 
 STAMP_DIR  = stampdir
 BUILD_TREE = build-tree
-CC         = "gcc-4.3 -m32"
+CC         = "gcc -m32 -fno-stack-protector"
 
 build: $(BUILD_TREE) build-stamp
 
@@ -36,7 +36,7 @@ binary-indep:
 binary-arch: build install
 	dh_testdir
 	dh_testroot
-	dh_installdocs $(BUILD_TREE)/docs/README{,.tilo} $(BUILD_TREE)/first-isofs/README.SILO_ISOFS
+	dh_installdocs $(BUILD_TREE)/docs/README* $(BUILD_TREE)/first-isofs/README.SILO_ISOFS
 	dh_installchangelogs
 	dh_installman debian/manpages/*
 	dh_strip
diff -pruN 1.4.13a+git20070930-3/second/fs/ext2.c 1.4.14-0ubuntu3/second/fs/ext2.c
--- 1.4.13a+git20070930-3/second/fs/ext2.c	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/second/fs/ext2.c	2008-06-12 17:39:12.000000000 +0100
@@ -42,14 +42,14 @@ static void ext2fs_error (int errcode)
     	    return;
     	}
 #endif
-    printf ("Unknown ext2 error");
+    printf ("Unknown ext2 error: %d", errcode);
 }
 
 static int open_ext2 (char *device)
 {
     int retval;
 
-    retval = ext2fs_open (device, EXT2_FLAG_RW, 0, 0, silo_io_manager, &fs);
+    retval = ext2fs_open (device, EXT2_FLAG_DIRTY, 0, 0, silo_io_manager, &fs);
     if (retval == EXT2_ET_BAD_MAGIC)
         return 0;
     if (retval) {
diff -pruN 1.4.13a+git20070930-3/second/ls.c 1.4.14-0ubuntu3/second/ls.c
--- 1.4.13a+git20070930-3/second/ls.c	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/second/ls.c	2008-06-12 17:39:12.000000000 +0100
@@ -157,7 +157,8 @@ int do_ls (unsigned char *buf, int *tab_
     if (tab_ambiguous == NULL && ls_opt & LSOPT_L) {
 	char mode[11];
 	char *q;
-	unsigned int mtime, day, hour, min, month, year;
+	unsigned int mtime;
+	int day, hour, min, month, year;
 	static char *months[] = {
 	    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
 	    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
diff -pruN 1.4.13a+git20070930-3/second/main.c 1.4.14-0ubuntu3/second/main.c
--- 1.4.13a+git20070930-3/second/main.c	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/second/main.c	2008-06-12 17:39:12.000000000 +0100
@@ -1205,12 +1205,16 @@ try_again:
 		unsigned int size;
 		unsigned char *mem;
 
-		size = 0x800000;
-		mem = (unsigned char *)image_memory_find(size);
-
-		if (!mem) {
-		    size = 0x400000;
-		    mem = (unsigned char *)image_memory_find(size);
+		/* As of 2.6.25-rc6, an "allyesconfig" kernel is around
+		 * ~42MB in size.  So we try to carve out up to 64MB of
+		 * memory for the kernel.
+		 */
+		for (size = 64 * 1024 * 1024;
+		     size >= 4 * 1024 * 1024;
+		     size -= 4 * 1024 * 1024) {
+			mem = (unsigned char *)image_memory_find(size);
+			if (mem)
+				break;
 		}
 
 		if (mem) {
diff -pruN 1.4.13a+git20070930-3/silo/silocheck.c 1.4.14-0ubuntu3/silo/silocheck.c
--- 1.4.13a+git20070930-3/silo/silocheck.c	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/silo/silocheck.c	2008-06-12 17:39:12.000000000 +0100
@@ -22,6 +22,7 @@
 #include "../second/fs/ufs.c"
 #endif
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include <string.h>
@@ -254,7 +255,11 @@ char *find_dev(int number)
     p = strchr (name, 0);
     while ((dir = readdir(dp)) != NULL) {
         strcpy(p,dir->d_name);
-        if (stat(name,&s) < 0) return NULL;
+        /*
+         * It is possible that we got an unresolved symlink under /dev.
+         * Such a file will make silocheck fail and we do not want this.
+         */
+        if (stat(name,&s) < 0 && errno != ENOENT) return NULL;
         if (S_ISBLK(s.st_mode) && s.st_rdev == number) return name;
     }
     return NULL;
diff -pruN 1.4.13a+git20070930-3/silo.spec 1.4.14-0ubuntu3/silo.spec
--- 1.4.13a+git20070930-3/silo.spec	2007-09-30 10:28:44.000000000 +0100
+++ 1.4.14-0ubuntu3/silo.spec	2008-06-12 17:39:12.000000000 +0100
@@ -1,6 +1,6 @@
 Summary: A boot loader for SPARCs
 Name: silo
-Version: 1.4.13
+Version: 1.4.14
 Release: 4%{?dist}
 License: GPL
 ExclusiveArch: sparc
