summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2013-10-22 16:44:53 +0000
committerAnthony G. Basile <blueness@gentoo.org>2013-10-22 16:44:53 +0000
commit3ea3076527ca90008dd2d397b1039b0cc90c04ee (patch)
tree1f17aacf825e52b0a134d2a945c05feeff5d3a3b /net-p2p/bitcoind
parentDrop stable keywords on unstable-only arches (diff)
downloadgentoo-2-3ea3076527ca90008dd2d397b1039b0cc90c04ee.tar.gz
gentoo-2-3ea3076527ca90008dd2d397b1039b0cc90c04ee.tar.bz2
gentoo-2-3ea3076527ca90008dd2d397b1039b0cc90c04ee.zip
Remove older patches
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key 0xF52D4BBA)
Diffstat (limited to 'net-p2p/bitcoind')
-rw-r--r--net-p2p/bitcoind/ChangeLog9
-rw-r--r--net-p2p/bitcoind/files/0.4.2-Makefile.gentoo85
-rw-r--r--net-p2p/bitcoind/files/0.4.4+bip16-eligius_sendfee.patch178
-rw-r--r--net-p2p/bitcoind/files/0.4.7-reopen_log_file.patch94
-rw-r--r--net-p2p/bitcoind/files/0.5.0.5+bip16-eligius_sendfee.patch169
-rw-r--r--net-p2p/bitcoind/files/0.6.0.8-reopen_log_file.patch94
-rw-r--r--net-p2p/bitcoind/files/0.8.0-sys_leveldb.patch195
7 files changed, 8 insertions, 816 deletions
diff --git a/net-p2p/bitcoind/ChangeLog b/net-p2p/bitcoind/ChangeLog
index 6f4156e0d2b4..add27a688c86 100644
--- a/net-p2p/bitcoind/ChangeLog
+++ b/net-p2p/bitcoind/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-p2p/bitcoind
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-p2p/bitcoind/ChangeLog,v 1.80 2013/10/10 05:19:24 patrick Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/bitcoind/ChangeLog,v 1.81 2013/10/22 16:44:53 blueness Exp $
+
+ 22 Oct 2013; Anthony G. Basile <blueness@gentoo.org>
+ -files/0.4.2-Makefile.gentoo, -files/0.4.4+bip16-eligius_sendfee.patch,
+ -files/0.4.7-reopen_log_file.patch,
+ -files/0.5.0.5+bip16-eligius_sendfee.patch,
+ -files/0.6.0.8-reopen_log_file.patch, -files/0.8.0-sys_leveldb.patch:
+ Remove older patches
10 Oct 2013; Patrick Lauer <patrick@gentoo.org> metadata.xml:
Remove unneeded useflag descriptions from metadata.xml
diff --git a/net-p2p/bitcoind/files/0.4.2-Makefile.gentoo b/net-p2p/bitcoind/files/0.4.2-Makefile.gentoo
deleted file mode 100644
index fc0bf5abf2f3..000000000000
--- a/net-p2p/bitcoind/files/0.4.2-Makefile.gentoo
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright (c) 2009-2010 Satoshi Nakamoto, 2010 Myckel Habets, 2011 Luke Dashjr
-# Distributed under the MIT/X11 software license, see the accompanying
-# file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-USE_SSL :=
-USE_UPNP :=
-
-WXINCLUDEPATHS=$(shell wx-config --cxxflags)
-WXLIBS=$(shell wx-config --libs)
-
-CXXFLAGS := -g -O2
-LDFLAGS :=
-
-xLDFLAGS += \
- -Wl,-Bdynamic \
- -l boost_system$(BOOST_LIB_SUFFIX) \
- -l boost_filesystem$(BOOST_LIB_SUFFIX) \
- -l boost_program_options$(BOOST_LIB_SUFFIX) \
- -l boost_thread$(BOOST_LIB_SUFFIX) \
- -l ssl \
- -l crypto \
- -l crypto++ \
- -l z \
- -l dl
-
-xCXXFLAGS += -pthread
-xLDFLAGS += -pthread
-
-xCXXFLAGS += $(BOOST_CXXFLAGS)
-xLDFLAGS += $(BOOST_LDFLAGS)
-
-xCXXFLAGS += $(DB_CXXFLAGS)
-xLDFLAGS += $(DB_LDFLAGS)
-
-ifneq ($(USE_SSL),)
- xCXXFLAGS += -DUSE_SSL
-endif
-
-ifneq ($(USE_UPNP),)
- xLDFLAGS += -l miniupnpc
- xCXXFLAGS += -DUSE_UPNP=$(USE_UPNP)
-endif
-
-xCXXFLAGS += -D__WXDEBUG__
-xCXXFLAGS += -DNOPCH
-xCXXFLAGS += -Wno-invalid-offsetof -Wformat
-
-xCXXFLAGS += $(CXXFLAGS)
-xLDFLAGS += $(LDFLAGS)
-
-HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
- checkpoints.h crypter.h keystore.h wallet.h protocol.h \
- script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
-
-OBJS= \
- obj/checkpoints.o \
- obj/crypter.o \
- obj/util.o \
- obj/script.o \
- obj/db.o \
- obj/net.o \
- obj/protocol.o \
- obj/irc.o \
- obj/keystore.o \
- obj/main.o \
- obj/wallet.o \
- obj/rpc.o \
- obj/init.o
-
-
-all: bitcoin
-
-
-obj/%.o: %.cpp $(HEADERS)
- $(CXX) -c $(xCXXFLAGS) $(WXINCLUDEPATHS) -DGUI -o $@ $<
-
-bitcoin: $(OBJS) obj/ui.o obj/uibase.o
- $(CXX) -o $@ $^ $(WXLIBS) $(xLDFLAGS)
-
-
-obj/nogui/%.o: %.cpp $(HEADERS)
- $(CXX) -c $(xCXXFLAGS) -o $@ $<
-
-bitcoind: $(OBJS:obj/%=obj/nogui/%)
- $(CXX) -o $@ $^ $(xLDFLAGS)
diff --git a/net-p2p/bitcoind/files/0.4.4+bip16-eligius_sendfee.patch b/net-p2p/bitcoind/files/0.4.4+bip16-eligius_sendfee.patch
deleted file mode 100644
index a289a51c5d82..000000000000
--- a/net-p2p/bitcoind/files/0.4.4+bip16-eligius_sendfee.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-diff --git a/src/main.cpp b/src/main.cpp
-index 9384916..242867b 100644
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -421,8 +421,10 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- if ((int64)nLockTime > INT_MAX)
- return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet");
-
-+ bool fIsMine = pwalletMain->IsMine(*this);
-+
- // Rather not work on nonstandard transactions (unless -testnet)
-- if (!fTestNet && !IsStandard())
-+ if (!fTestNet && !IsStandard() && !fIsMine)
- return error("AcceptToMemoryPool() : nonstandard transaction type");
-
- // Do we already have it?
-@@ -477,7 +479,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- }
-
- // Check for non-standard pay-to-script-hash in inputs
-- if (!AreInputsStandard(mapInputs) && !fTestNet)
-+ if (!AreInputsStandard(mapInputs) && !fIsMine && !fTestNet)
- return error("AcceptToMemoryPool() : nonstandard transaction input");
-
- // Note: if you modify this code to accept non-standard transactions, then
-@@ -487,8 +489,11 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- int64 nFees = GetValueIn(mapInputs)-GetValueOut();
- unsigned int nSize = ::GetSerializeSize(*this, SER_NETWORK);
-
-+ if (!fIsMine)
-+ {
-+
- // Don't accept it if it can't get into a block
-- if (nFees < GetMinFee(1000, true, true))
-+ if (nFees < GetMinFee(1000, true, GMF_RELAY))
- return error("AcceptToMemoryPool() : not enough fees");
-
- // Continuously rate-limit free transactions
-@@ -516,6 +521,8 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- }
- }
-
-+ }
-+
- // Check against previous transactions
- // This is done last to help prevent CPU exhaustion denial-of-service attacks.
- if (!ConnectInputs(mapInputs, mapUnused, CDiskTxPos(1,1,1), pindexBest, false, false))
-@@ -2976,6 +2983,9 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
- // Priority is sum(valuein * age) / txsize
- dPriority /= ::GetSerializeSize(tx, SER_NETWORK);
-
-+ if (pwalletMain->IsMine(tx))
-+ dPriority += 100.;
-+
- if (porphan)
- porphan->dPriority = dPriority;
- else
-@@ -3013,7 +3023,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
-
- // Transaction fee required depends on block size
- bool fAllowFree = (nBlockSize + nTxSize < 4000 || CTransaction::AllowFree(dPriority));
-- int64 nMinFee = tx.GetMinFee(nBlockSize, fAllowFree);
-+ int64 nMinFee = pwalletMain->IsMine(tx) ? 0 : tx.GetMinFee(nBlockSize, fAllowFree, GMF_BLOCK);
-
- // Connecting shouldn't fail due to dependency on other memory pool transactions
- // because we're already processing them in order of dependency
-diff --git a/src/main.h b/src/main.h
-index 5df335a..8e533d1 100644
---- a/src/main.h
-+++ b/src/main.h
-@@ -389,6 +389,13 @@ public:
- typedef std::map<uint256, std::pair<CTxIndex, CTransaction> > MapPrevTx;
-
-
-+enum GetMinFee_mode
-+{
-+ GMF_BLOCK,
-+ GMF_RELAY,
-+ GMF_SEND,
-+};
-+
- //
- // The basic transaction that is broadcasted on the network and contained in
- // blocks. A transaction can contain multiple inputs and outputs.
-@@ -562,13 +569,49 @@ public:
- return dPriority > COIN * 144 / 250;
- }
-
-- int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, bool fForRelay=false) const
-+ int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, enum GetMinFee_mode mode=GMF_BLOCK) const
- {
- // Base fee is either MIN_TX_FEE or MIN_RELAY_TX_FEE
-- int64 nBaseFee = fForRelay ? MIN_RELAY_TX_FEE : MIN_TX_FEE;
-+ int64 nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE;
-
- unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK);
- unsigned int nNewBlockSize = nBlockSize + nBytes;
-+ int64 nMinFeeAlt;
-+
-+ {
-+ // Base fee is 0.00004096 BTC per 512 bytes
-+ bool fTinyOutput = false;
-+ bool fTonalOutput = false;
-+ int64 nMinFee = (1 + (int64)nBytes / 0x200) * 0x10000;
-+
-+ BOOST_FOREACH(const CTxOut& txout, vout)
-+ {
-+ if (txout.nValue < 0x100)
-+ {
-+ fTinyOutput = true;
-+ break;
-+ }
-+ if (0 == txout.nValue % 0x10000)
-+ fTonalOutput = true;
-+ }
-+
-+ // Charge extra for ridiculously tiny outputs
-+ if (fTinyOutput)
-+ nMinFee *= 0x10;
-+ else
-+ // Waive the fee in a tonal-sized "free tranaction area" if at least one output is TBC (and under 512 bytes) ;)
-+ if (fTonalOutput && nNewBlockSize < 0x8000 && nBytes < 0x200)
-+ nMinFee = 0;
-+ else
-+ if (fAllowFree)
-+ {
-+ // Give a discount to the first so many tx
-+ nMinFee /= 0x10;
-+ }
-+
-+ nMinFeeAlt = nMinFee;
-+ }
-+
- int64 nMinFee = (1 + (int64)nBytes / 1000) * nBaseFee;
-
- if (fAllowFree)
-@@ -594,6 +637,8 @@ public:
- if (txout.nValue < CENT)
- nMinFee = nBaseFee;
-
-+ nMinFee = std::min(nMinFee, nMinFeeAlt);
-+
- // Raise the price as the block approaches full
- if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
- {
-diff --git a/src/net.cpp b/src/net.cpp
-index a8d3d0b..245b1b9 100644
---- a/src/net.cpp
-+++ b/src/net.cpp
-@@ -1217,6 +1217,7 @@ void MapPort(bool /* unused fMapPort */)
-
-
- static const char *strDNSSeed[] = {
-+ "relay.eligius.st",
- "bitseed.xf2.org",
- "dnsseed.bluematt.me",
- "seed.bitcoin.sipa.be",
-diff --git a/src/wallet.cpp b/src/wallet.cpp
-index 9f7422d..ac9703f 100644
---- a/src/wallet.cpp
-+++ b/src/wallet.cpp
-@@ -939,6 +939,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
- int64 nChange = nValueIn - nValue - nFeeRet;
- // if sub-cent change is required, the fee must be raised to at least MIN_TX_FEE
- // or until nChange becomes zero
-+ // NOTE: this depends on the exact behaviour of GetMinFee
- if (nFeeRet < MIN_TX_FEE && nChange > 0 && nChange < CENT)
- {
- int64 nMoveToFee = min(nChange, MIN_TX_FEE - nFeeRet);
-@@ -992,7 +993,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
- // Check that enough fee is included
- int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000);
- bool fAllowFree = CTransaction::AllowFree(dPriority);
-- int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree);
-+ int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree, GMF_SEND);
- if (nFeeRet < max(nPayFee, nMinFee))
- {
- nFeeRet = max(nPayFee, nMinFee);
diff --git a/net-p2p/bitcoind/files/0.4.7-reopen_log_file.patch b/net-p2p/bitcoind/files/0.4.7-reopen_log_file.patch
deleted file mode 100644
index 965f90ecb942..000000000000
--- a/net-p2p/bitcoind/files/0.4.7-reopen_log_file.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff --git a/src/init.cpp b/src/init.cpp
-index 393d250..fd8bb1f 100644
---- a/src/init.cpp
-+++ b/src/init.cpp
-@@ -71,6 +71,10 @@ void HandleSIGTERM(int)
- fRequestShutdown = true;
- }
-
-+void HandleSIGHUP(int)
-+{
-+ fReopenDebugLog = true;
-+}
-
-
-
-@@ -132,7 +136,13 @@ bool AppInit2(int argc, char* argv[])
- sa.sa_flags = 0;
- sigaction(SIGTERM, &sa, NULL);
- sigaction(SIGINT, &sa, NULL);
-- sigaction(SIGHUP, &sa, NULL);
-+
-+ // Reopen debug.log on SIGHUP
-+ struct sigaction sa_hup;
-+ sa_hup.sa_handler = HandleSIGHUP;
-+ sigemptyset(&sa_hup.sa_mask);
-+ sa_hup.sa_flags = 0;
-+ sigaction(SIGHUP, &sa_hup, NULL);
- #endif
-
- //
-diff --git a/src/util.cpp b/src/util.cpp
-index cae01df..0b804c1 100644
---- a/src/util.cpp
-+++ b/src/util.cpp
-@@ -42,6 +42,7 @@ string strMiscWarning;
- bool fTestNet = false;
- bool fNoListen = false;
- bool fLogTimestamps = false;
-+bool fReopenDebugLog = false;
-
-
-
-@@ -166,6 +167,13 @@ int GetRandInt(int nMax)
-
-
-
-+string GetDebugLogName()
-+{
-+ char pszFile[MAX_PATH+100];
-+ GetDataDir(pszFile);
-+ strlcat(pszFile, "/debug.log", sizeof(pszFile));
-+ return pszFile;
-+}
-
- inline int OutputDebugStringF(const char* pszFormat, ...)
- {
-@@ -185,10 +193,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
-
- if (!fileout)
- {
-- char pszFile[MAX_PATH+100];
-- GetDataDir(pszFile);
-- strlcat(pszFile, "/debug.log", sizeof(pszFile));
-- fileout = fopen(pszFile, "a");
-+ fileout = fopen(GetDebugLogName().c_str(), "a");
- if (fileout) setbuf(fileout, NULL); // unbuffered
- }
- if (fileout)
-@@ -197,6 +202,13 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
- static boost::mutex mutexDebugLog;
- boost::mutex::scoped_lock scoped_lock(mutexDebugLog);
-
-+ // reopen the log file, if requested
-+ if (fReopenDebugLog) {
-+ fReopenDebugLog = false;
-+ if (freopen(GetDebugLogName().c_str(), "a", fileout) != NULL)
-+ setbuf(fileout, NULL); // unbuffered
-+ }
-+
- // Debug print useful for profiling
- if (fLogTimestamps && fStartedNewLine)
- fprintf(fileout, "%s ", DateTimeStrFormat("%x %H:%M:%S", GetTime()).c_str());
-diff --git a/src/util.h b/src/util.h
-index 284cf33..c8ce9b8 100644
---- a/src/util.h
-+++ b/src/util.h
-@@ -162,6 +162,7 @@ extern std::string strMiscWarning;
- extern bool fTestNet;
- extern bool fNoListen;
- extern bool fLogTimestamps;
-+extern bool fReopenDebugLog;
-
- void RandAddSeed();
- void RandAddSeedPerfmon();
diff --git a/net-p2p/bitcoind/files/0.5.0.5+bip16-eligius_sendfee.patch b/net-p2p/bitcoind/files/0.5.0.5+bip16-eligius_sendfee.patch
deleted file mode 100644
index ada609211509..000000000000
--- a/net-p2p/bitcoind/files/0.5.0.5+bip16-eligius_sendfee.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-diff --git a/src/main.cpp b/src/main.cpp
-index 2e8b43d..af5e805 100644
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -428,8 +428,10 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- if ((int64)nLockTime > INT_MAX)
- return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet");
-
-+ bool fIsMine = pwalletMain->IsMine(*this);
-+
- // Rather not work on nonstandard transactions (unless -testnet)
-- if (!fTestNet && !IsStandard())
-+ if (!fTestNet && !IsStandard() && !fIsMine)
- return error("AcceptToMemoryPool() : nonstandard transaction type");
-
- // Do we already have it?
-@@ -494,8 +496,11 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- int64 nFees = GetValueIn(mapInputs)-GetValueOut();
- unsigned int nSize = ::GetSerializeSize(*this, SER_NETWORK);
-
-+ if (!fIsMine)
-+ {
-+
- // Don't accept it if it can't get into a block
-- if (nFees < GetMinFee(1000, true, true))
-+ if (nFees < GetMinFee(1000, true, GMF_RELAY))
- return error("AcceptToMemoryPool() : not enough fees");
-
- // Continuously rate-limit free transactions
-@@ -523,6 +528,8 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
- }
- }
-
-+ }
-+
- // Check against previous transactions
- // This is done last to help prevent CPU exhaustion denial-of-service attacks.
- if (!ConnectInputs(mapInputs, mapUnused, CDiskTxPos(1,1,1), pindexBest, false, false))
-@@ -3044,6 +3051,9 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
- // Priority is sum(valuein * age) / txsize
- dPriority /= ::GetSerializeSize(tx, SER_NETWORK);
-
-+ if (pwalletMain->IsMine(tx))
-+ dPriority += 100.;
-+
- if (porphan)
- porphan->dPriority = dPriority;
- else
-@@ -3081,7 +3091,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
-
- // Transaction fee required depends on block size
- bool fAllowFree = (nBlockSize + nTxSize < 4000 || CTransaction::AllowFree(dPriority));
-- int64 nMinFee = tx.GetMinFee(nBlockSize, fAllowFree);
-+ int64 nMinFee = pwalletMain->IsMine(tx) ? 0 : tx.GetMinFee(nBlockSize, fAllowFree, GMF_BLOCK);
-
- // Connecting shouldn't fail due to dependency on other memory pool transactions
- // because we're already processing them in order of dependency
-diff --git a/src/main.h b/src/main.h
-index a918eb5..d3910cd 100644
---- a/src/main.h
-+++ b/src/main.h
-@@ -391,6 +391,13 @@ public:
- typedef std::map<uint256, std::pair<CTxIndex, CTransaction> > MapPrevTx;
-
-
-+enum GetMinFee_mode
-+{
-+ GMF_BLOCK,
-+ GMF_RELAY,
-+ GMF_SEND,
-+};
-+
- //
- // The basic transaction that is broadcasted on the network and contained in
- // blocks. A transaction can contain multiple inputs and outputs.
-@@ -568,13 +575,49 @@ public:
- return dPriority > COIN * 144 / 250;
- }
-
-- int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, bool fForRelay=false) const
-+ int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, enum GetMinFee_mode mode=GMF_BLOCK) const
- {
- // Base fee is either MIN_TX_FEE or MIN_RELAY_TX_FEE
-- int64 nBaseFee = fForRelay ? MIN_RELAY_TX_FEE : MIN_TX_FEE;
-+ int64 nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE;
-
- unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK);
- unsigned int nNewBlockSize = nBlockSize + nBytes;
-+ int64 nMinFeeAlt;
-+
-+ {
-+ // Base fee is 0.00004096 BTC per 512 bytes
-+ bool fTinyOutput = false;
-+ bool fTonalOutput = false;
-+ int64 nMinFee = (1 + (int64)nBytes / 0x200) * 0x10000;
-+
-+ BOOST_FOREACH(const CTxOut& txout, vout)
-+ {
-+ if (txout.nValue < 0x100)
-+ {
-+ fTinyOutput = true;
-+ break;
-+ }
-+ if (0 == txout.nValue % 0x10000)
-+ fTonalOutput = true;
-+ }
-+
-+ // Charge extra for ridiculously tiny outputs
-+ if (fTinyOutput)
-+ nMinFee *= 0x10;
-+ else
-+ // Waive the fee in a tonal-sized "free tranaction area" if at least one output is TBC (and under 512 bytes) ;)
-+ if (fTonalOutput && nNewBlockSize < 0x8000 && nBytes < 0x200)
-+ nMinFee = 0;
-+ else
-+ if (fAllowFree)
-+ {
-+ // Give a discount to the first so many tx
-+ nMinFee /= 0x10;
-+ }
-+
-+ nMinFeeAlt = nMinFee;
-+ }
-+
- int64 nMinFee = (1 + (int64)nBytes / 1000) * nBaseFee;
-
- if (fAllowFree)
-@@ -600,6 +643,8 @@ public:
- if (txout.nValue < CENT)
- nMinFee = nBaseFee;
-
-+ nMinFee = std::min(nMinFee, nMinFeeAlt);
-+
- // Raise the price as the block approaches full
- if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
- {
-diff --git a/src/net.cpp b/src/net.cpp
-index f37c675..5cb448d 100644
---- a/src/net.cpp
-+++ b/src/net.cpp
-@@ -1268,6 +1268,7 @@ void MapPort(bool /* unused fMapPort */)
-
-
- static const char *strDNSSeed[] = {
-+ "relay.eligius.st",
- "bitseed.xf2.org",
- "dnsseed.bluematt.me",
- "seed.bitcoin.sipa.be",
-diff --git a/src/wallet.cpp b/src/wallet.cpp
-index 20c3eab..e71994b 100644
---- a/src/wallet.cpp
-+++ b/src/wallet.cpp
-@@ -959,6 +959,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
- int64 nChange = nValueIn - nValue - nFeeRet;
- // if sub-cent change is required, the fee must be raised to at least MIN_TX_FEE
- // or until nChange becomes zero
-+ // NOTE: this depends on the exact behaviour of GetMinFee
- if (nFeeRet < MIN_TX_FEE && nChange > 0 && nChange < CENT)
- {
- int64 nMoveToFee = min(nChange, MIN_TX_FEE - nFeeRet);
-@@ -1012,7 +1013,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
- // Check that enough fee is included
- int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000);
- bool fAllowFree = CTransaction::AllowFree(dPriority);
-- int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree);
-+ int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree, GMF_SEND);
- if (nFeeRet < max(nPayFee, nMinFee))
- {
- nFeeRet = max(nPayFee, nMinFee);
diff --git a/net-p2p/bitcoind/files/0.6.0.8-reopen_log_file.patch b/net-p2p/bitcoind/files/0.6.0.8-reopen_log_file.patch
deleted file mode 100644
index ee0efc80b8d2..000000000000
--- a/net-p2p/bitcoind/files/0.6.0.8-reopen_log_file.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff --git a/src/init.cpp b/src/init.cpp
-index 586e3da..da695f4 100644
---- a/src/init.cpp
-+++ b/src/init.cpp
-@@ -97,6 +97,10 @@ void HandleSIGTERM(int)
- fRequestShutdown = true;
- }
-
-+void HandleSIGHUP(int)
-+{
-+ fReopenDebugLog = true;
-+}
-
-
-
-@@ -158,7 +162,13 @@ bool AppInit2(int argc, char* argv[])
- sa.sa_flags = 0;
- sigaction(SIGTERM, &sa, NULL);
- sigaction(SIGINT, &sa, NULL);
-- sigaction(SIGHUP, &sa, NULL);
-+
-+ // Reopen debug.log on SIGHUP
-+ struct sigaction sa_hup;
-+ sa_hup.sa_handler = HandleSIGHUP;
-+ sigemptyset(&sa_hup.sa_mask);
-+ sa_hup.sa_flags = 0;
-+ sigaction(SIGHUP, &sa_hup, NULL);
- #endif
-
- //
-diff --git a/src/util.cpp b/src/util.cpp
-index 94bdba6..5718f41 100644
---- a/src/util.cpp
-+++ b/src/util.cpp
-@@ -44,6 +44,7 @@ bool fTestNet = false;
- bool fNoListen = false;
- bool fLogTimestamps = false;
- CMedianFilter<int64> vTimeOffsets(200,0);
-+bool fReopenDebugLog = false;
-
-
-
-@@ -167,6 +168,13 @@ int GetRandInt(int nMax)
-
-
-
-+string GetDebugLogName()
-+{
-+ char pszFile[MAX_PATH+100];
-+ GetDataDir(pszFile);
-+ strlcat(pszFile, "/debug.log", sizeof(pszFile));
-+ return pszFile;
-+}
-
- inline int OutputDebugStringF(const char* pszFormat, ...)
- {
-@@ -186,10 +194,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
-
- if (!fileout)
- {
-- char pszFile[MAX_PATH+100];
-- GetDataDir(pszFile);
-- strlcat(pszFile, "/debug.log", sizeof(pszFile));
-- fileout = fopen(pszFile, "a");
-+ fileout = fopen(GetDebugLogName().c_str(), "a");
- if (fileout) setbuf(fileout, NULL); // unbuffered
- }
- if (fileout)
-@@ -198,6 +203,13 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
- static boost::mutex mutexDebugLog;
- boost::mutex::scoped_lock scoped_lock(mutexDebugLog);
-
-+ // reopen the log file, if requested
-+ if (fReopenDebugLog) {
-+ fReopenDebugLog = false;
-+ if (freopen(GetDebugLogName().c_str(), "a", fileout) != NULL)
-+ setbuf(fileout, NULL); // unbuffered
-+ }
-+
- // Debug print useful for profiling
- if (fLogTimestamps && fStartedNewLine)
- fprintf(fileout, "%s ", DateTimeStrFormat("%x %H:%M:%S", GetTime()).c_str());
-diff --git a/src/util.h b/src/util.h
-index e0821cc..737f239 100644
---- a/src/util.h
-+++ b/src/util.h
-@@ -123,6 +123,7 @@ extern std::string strMiscWarning;
- extern bool fTestNet;
- extern bool fNoListen;
- extern bool fLogTimestamps;
-+extern bool fReopenDebugLog;
-
- void RandAddSeed();
- void RandAddSeedPerfmon();
diff --git a/net-p2p/bitcoind/files/0.8.0-sys_leveldb.patch b/net-p2p/bitcoind/files/0.8.0-sys_leveldb.patch
deleted file mode 100644
index 5b540c358f70..000000000000
--- a/net-p2p/bitcoind/files/0.8.0-sys_leveldb.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro
-index 1c6bc0a..db431de 100644
---- a/bitcoin-qt.pro
-+++ b/bitcoin-qt.pro
-@@ -2,7 +2,7 @@ TEMPLATE = app
- TARGET = bitcoin-qt
- VERSION = 0.8.0
- INCLUDEPATH += src src/json src/qt
--DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
-+DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE LEVELDB_WITHOUT_MEMENV
- CONFIG += no_include_pwd
- CONFIG += thread
-
-@@ -96,24 +96,28 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) {
- QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
- }
-
-+contains(USE_SYSTEM_LEVELDB, 1) {
-+ LIBS += -lleveldb
-+} else {
- INCLUDEPATH += src/leveldb/include src/leveldb/helpers
--LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
-+LIBS += $$PWD/src/leveldb/libleveldb.a
- !win32 {
-- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" libleveldb.a libmemenv.a
-+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" libleveldb.a
- } else {
- # make an educated guess about what the ranlib command is called
- isEmpty(QMAKE_RANLIB) {
- QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
- }
- LIBS += -lshlwapi
-- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
-+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS\" libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a
- }
- genleveldb.target = $$PWD/src/leveldb/libleveldb.a
- genleveldb.depends = FORCE
- PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
- QMAKE_EXTRA_TARGETS += genleveldb
-+}
- # Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
--QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
-+QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb && $(MAKE) clean || true
-
- # regenerate src/build.h
- !win32|contains(USE_BUILD_INFO, 1) {
-diff --git a/src/leveldb.cpp b/src/leveldb.cpp
-index b41764f..f71e801 100644
---- a/src/leveldb.cpp
-+++ b/src/leveldb.cpp
-@@ -8,7 +8,9 @@
- #include <leveldb/env.h>
- #include <leveldb/cache.h>
- #include <leveldb/filter_policy.h>
-+#ifndef LEVELDB_WITHOUT_MEMENV
- #include <memenv/memenv.h>
-+#endif
-
- #include <boost/filesystem.hpp>
-
-@@ -42,8 +44,12 @@ CLevelDB::CLevelDB(const boost::filesystem::path &path, size_t nCacheSize, bool
- options = GetOptions(nCacheSize);
- options.create_if_missing = true;
- if (fMemory) {
-+#ifndef LEVELDB_WITHOUT_MEMENV
- penv = leveldb::NewMemEnv(leveldb::Env::Default());
- options.env = penv;
-+#else
-+ throw std::runtime_error("CLevelDB(): compiled without memenv support");
-+#endif
- } else {
- if (fWipe) {
- printf("Wiping LevelDB in %s\n", path.string().c_str());
-diff --git a/src/makefile.unix b/src/makefile.unix
-index ece2f59..4cbeaba 100644
---- a/src/makefile.unix
-+++ b/src/makefile.unix
-@@ -36,6 +36,10 @@ LIBS += \
- -l ssl \
- -l crypto
-
-+TESTLIBS += \
-+ -Wl,-B$(LMODE) \
-+ -l boost_unit_test_framework$(BOOST_LIB_SUFFIX)
-+
- ifndef USE_UPNP
- override USE_UPNP = -
- endif
-@@ -100,8 +104,7 @@ xCXXFLAGS=-O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-para
- # adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work.
- xLDFLAGS=$(LDHARDENING) $(LDFLAGS)
-
--OBJS= \
-- leveldb/libleveldb.a \
-+BASEOBJS := \
- obj/alert.o \
- obj/version.o \
- obj/checkpoints.o \
-@@ -110,7 +113,6 @@ OBJS= \
- obj/crypter.o \
- obj/key.o \
- obj/db.o \
-- obj/init.o \
- obj/irc.o \
- obj/keystore.o \
- obj/main.o \
-@@ -131,24 +133,43 @@ OBJS= \
- obj/hash.o \
- obj/bloom.o \
- obj/noui.o \
-- obj/leveldb.o \
- obj/txdb.o
-
-+OBJS := \
-+ obj/leveldb.o \
-+ obj/init.o \
-+ $(BASEOBJS)
-+
-+TESTOBJS := \
-+ obj-test/leveldb.o \
-+ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \
-+ $(BASEOBJS)
-+
-
- all: bitcoind
-
- test check: test_bitcoin FORCE
- ./test_bitcoin
-
-+ifdef USE_SYSTEM_LEVELDB
-+ LIBS += -lleveldb
-+ TESTLIBS += -lmemenv
-+else
- #
- # LevelDB support
- #
- MAKEOVERRIDES =
--LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
-+LIBS += $(CURDIR)/leveldb/libleveldb.a
-+TESTLIBS += $(CURDIR)/leveldb/libmemenv.a
- DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
- DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
- leveldb/libleveldb.a:
-- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd ..
-+ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a && cd ..
-+leveldb/libmemenv.a:
-+ @echo "Building LevelDB memenv ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libmemenv.a && cd ..
-+OBJS += leveldb/libleveldb.a
-+TESTOBJS += leveldb/libmemenv.a
-+endif
-
- # auto-generated dependencies:
- -include obj/*.P
-@@ -159,27 +180,29 @@ obj/build.h: FORCE
- version.cpp: obj/build.h
- DEFS += -DHAVE_BUILD_INFO
-
--obj/%.o: %.cpp
-- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-+P_TO_D = \
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
-- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-+ sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
- rm -f $(@:%.o=%.d)
-
--bitcoind: $(OBJS:obj/%=obj/%)
-- $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
-+obj/%.o: %.cpp
-+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
-+ $(P_TO_D)
-
--TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-+bitcoind: $(OBJS)
-+ $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
-
- obj-test/%.o: test/%.cpp
- $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
-- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
-- rm -f $(@:%.o=%.d)
-+ $(P_TO_D)
-+
-+obj-test/leveldb.o: leveldb.cpp
-+ $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-+ $(P_TO_D)
-
--test_bitcoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
-- $(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ -Wl,-B$(LMODE) -lboost_unit_test_framework $(xLDFLAGS) $(LIBS)
-+test_bitcoin: $(TESTOBJS)
-+ $(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS)
-
- clean:
- -rm -f bitcoind test_bitcoin