From 371f3f6ba553dbc99c3bd2788c2ba38882112bef Mon Sep 17 00:00:00 2001
From: Cory Fields <cory-nospam-@coryfields.com>
Date: Fri, 10 Jan 2014 16:28:57 -0500
Subject: [PATCH] qt5: fix --with-qt with no arguments

---
 qa/rpc-tests/send.sh   | 14 ++++++++++++++
 qa/rpc-tests/util.sh   |  5 +++--
 qa/rpc-tests/wallet.sh |  1 +
 src/m4/bitcoin_qt.m4   | 10 ++++++++--
 4 files changed, 26 insertions(+), 4 deletions(-)
 create mode 100755 qa/rpc-tests/send.sh

diff --git a/qa/rpc-tests/send.sh b/qa/rpc-tests/send.sh
new file mode 100755
index 000000000..fdfb1867b
--- /dev/null
+++ b/qa/rpc-tests/send.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+TIMEOUT=10
+SIGNAL=HUP
+if [ $# -eq 0 ]; then
+  echo -e "Usage:\t$0 <cmd>"
+  echo -e "\tRuns <cmd> and wait ${TIMEOUT} seconds or until SIG${SIGNAL} is received."
+  echo -e "\tReturns: 0 if SIG${SIGNAL} is received, 1 otherwise."
+  exit 0
+fi
+trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL}
+"$@"
+sleep ${TIMEOUT} & PID=$!
+wait ${PID} && exit 1
+exit 0
diff --git a/qa/rpc-tests/util.sh b/qa/rpc-tests/util.sh
index e4e395374..fed7d3256 100644
--- a/qa/rpc-tests/util.sh
+++ b/qa/rpc-tests/util.sh
@@ -23,6 +23,7 @@ function CreateDataDir {
   echo "rpcuser=rt" >> $CONF
   echo "rpcpassword=rt" >> $CONF
   echo "rpcwait=1" >> $CONF
+  echo "walletnotify=killall -HUP `basename ${SENDANDWAIT}`" >> $CONF
   shift
   while (( "$#" )); do
       echo $1 >> $CONF
@@ -59,7 +60,7 @@ function Send {
   to=$2
   amount=$3
   address=$(Address $to)
-  txid=$( $CLI $from sendtoaddress $address $amount )
+  txid=$( ${SENDANDWAIT} $CLI $from sendtoaddress $address $amount )
 }
 
 # Use: Unspent <datadir> <n'th-last-unspent> <var>
@@ -80,7 +81,7 @@ function CreateTxn1 {
 
 # Use: SendRawTxn <datadir> <hex_txn_data>
 function SendRawTxn {
-  $CLI $1 sendrawtransaction $2
+  ${SENDANDWAIT} $CLI $1 sendrawtransaction $2
 }
 
 # Use: GetBlocks <datadir>
diff --git a/qa/rpc-tests/wallet.sh b/qa/rpc-tests/wallet.sh
index 118809a26..8d5a6cdc7 100755
--- a/qa/rpc-tests/wallet.sh
+++ b/qa/rpc-tests/wallet.sh
@@ -12,6 +12,7 @@ BITCOIND=${1}/bitcoind
 CLI=${1}/bitcoin-cli
 
 DIR="${BASH_SOURCE%/*}"
+SENDANDWAIT="${DIR}/send.sh"
 if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
 . "$DIR/util.sh"
 
diff --git a/src/m4/bitcoin_qt.m4 b/src/m4/bitcoin_qt.m4
index f04db33bd..f7cb935d6 100644
--- a/src/m4/bitcoin_qt.m4
+++ b/src/m4/bitcoin_qt.m4
@@ -1,7 +1,7 @@
 dnl Helper for cases where a qt dependency is not met.
 dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit.
 AC_DEFUN([BITCOIN_QT_FAIL],[
-  if test "x$bitcoin_qt_want_version" = "xauto"; then
+  if test "x$bitcoin_qt_want_version" = "xauto" && test x$bitcoin_qt_force != xyes; then
     if test x$bitcoin_enable_qt != xno; then
       AC_MSG_WARN([$1; bitcoin-qt frontend will not be built])
     fi
@@ -50,7 +50,13 @@ AC_DEFUN([BITCOIN_QT_INIT],[
   AC_ARG_WITH([qt],
     [AS_HELP_STRING([--with-qt],
     [with qt (no|qt4|qt5|auto. default is auto, qt4 tried first.)])],
-    [bitcoin_qt_want_version=$withval],
+    [
+     bitcoin_qt_want_version=$withval
+     if test x$bitcoin_qt_want_version = xyes; then
+       bitcoin_qt_force=yes
+       bitcoin_qt_want_version=auto
+     fi
+    ],
     [bitcoin_qt_want_version=auto])
 
   AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-qt-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])