From bf2ac5acc57def2b57454872f8cb493df01d44a7 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Thu, 26 Jun 2014 23:01:35 +0200
Subject: [PATCH 1/2] Added install script

---
 install.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100755 install.sh

diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000000..4526eb0027
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+if [ "$1" == "" ]; then
+	echo "Usage $0 executable branch ethereum develop"
+	echo "executable    ethereum or ethereal"
+	echo "branch        develop or master"
+	exit
+fi
+
+exe=$1
+branch=$2
+
+# Test if go is installed
+command -v go >/dev/null 2>&1 || { echo >&2 "Unable to find 'go'. This script requires go."; exit 1; }
+
+# Test if $GOPATH is set
+if [ "$GOPATH" == "" ]; then
+	echo "\$GOPATH not set"
+	exit
+fi
+
+echo "go get -u -d github.com/ethereum/go-ethereum/$exe"
+go get -v -u -d github.com/ethereum/go-ethereum/$exe
+if [ $? != 0 ]; then
+	echo "go get failed"
+	exit
+fi
+
+cd $GOPATH/src/github.com/obscuren/mutan
+git submodule init
+git sumbodule update
+
+cd $GOPATH/src/github.com/ethereum/eth-go
+git checkout $branch
+
+cd $GOPATH/src/github.com/ethereum/go-ethereum/$exe
+git checkout $branch
+
+if [ "$exe" == "ethereal" ]; then
+	echo "Building ethereal GUI. Assuming Qt is installed. If this step"
+	echo "fails; please refer to: https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum(Go)"
+else
+	echo "Building ethereum CLI.
+fi
+
+go install
+
+echo "done..."

From 4fc60f340f6ef5ffe68e684ed44e5974fa08e8c8 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Sun, 29 Jun 2014 10:43:56 +0200
Subject: [PATCH 2/2] Wait for catchup when starting the miner

---
 utils/cmd.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/utils/cmd.go b/utils/cmd.go
index c084542b41..1d97c96396 100644
--- a/utils/cmd.go
+++ b/utils/cmd.go
@@ -204,6 +204,10 @@ func StartMining(ethereum *eth.Ethereum) bool {
 			miner = ethminer.NewDefaultMiner(addr, ethereum)
 			// Give it some time to connect with peers
 			time.Sleep(3 * time.Second)
+			for !ethereum.IsUpToDate() == false {
+				time.Sleep(5 * time.Second)
+			}
+
 			logger.Infoln("Miner started")
 			miner := ethminer.NewDefaultMiner(addr, ethereum)
 			miner.Start()