From a30b56ebe76ffff9f9cc8a6667186179413c6349 Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Thu, 15 Jul 2010 00:18:45 +0000 Subject: [PATCH] fix openssl linkage problems, disable minimize to tray on Linux because it has too many problems including a CPU peg bug git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@103 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- db.cpp | 2 ++ irc.cpp | 4 ++++ main.cpp | 5 ++++- main.h | 1 + makefile.unix | 2 +- serialize.h | 2 +- ui.cpp | 15 +++++++++++++-- 7 files changed, 26 insertions(+), 5 deletions(-) diff --git a/db.cpp b/db.cpp index e0a672b1e..0e02e960c 100644 --- a/db.cpp +++ b/db.cpp @@ -592,6 +592,8 @@ bool CWalletDB::LoadWallet() else if (strType == "version") { ssValue >> nFileVersion; + if (nFileVersion == 10300) + nFileVersion = 300; } else if (strType == "setting") { diff --git a/irc.cpp b/irc.cpp index 46c53bd1d..711841ec6 100644 --- a/irc.cpp +++ b/irc.cpp @@ -158,6 +158,10 @@ bool Wait(int nSeconds) void ThreadIRCSeed(void* parg) { + if (mapArgs.count("-connect")) + return; + if (mapArgs.count("-noirc")) + return; printf("ThreadIRCSeed started\n"); int nErrorWait = 10; int nRetryWait = 10; diff --git a/main.cpp b/main.cpp index 803548e61..46ba98421 100644 --- a/main.cpp +++ b/main.cpp @@ -2610,6 +2610,9 @@ void BitcoinMiner() CTransaction& tx = (*mi).second; if (tx.IsCoinBase() || !tx.IsFinal()) continue; + unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK); + if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE - 10000) + continue; // Transaction fee based on block size int64 nMinFee = tx.GetMinFee(nBlockSize); @@ -2620,7 +2623,7 @@ void BitcoinMiner() swap(mapTestPool, mapTestPoolTmp); pblock->vtx.push_back(tx); - nBlockSize += ::GetSerializeSize(tx, SER_NETWORK); + nBlockSize += nTxSize; vfAlreadyAdded[n] = true; fFoundSomething = true; } diff --git a/main.h b/main.h index d8f257b7d..3c10e490e 100644 --- a/main.h +++ b/main.h @@ -15,6 +15,7 @@ class CWalletTx; class CKeyItem; static const unsigned int MAX_SIZE = 0x02000000; +static const unsigned int MAX_BLOCK_SIZE = 1000000; static const int64 COIN = 100000000; static const int64 CENT = 1000000; static const int COINBASE_MATURITY = 100; diff --git a/makefile.unix b/makefile.unix index f6ca110b7..bf5b4e5b1 100644 --- a/makefile.unix +++ b/makefile.unix @@ -23,8 +23,8 @@ LIBS= \ -Wl,-Bstatic \ -l boost_system -l boost_filesystem \ -l db_cxx \ - -Wl,-Bdynamic \ -l crypto \ + -Wl,-Bdynamic \ -l gthread-2.0 WXDEFS=-D__WXGTK__ -DNOPCH diff --git a/serialize.h b/serialize.h index a32d106a3..7a3f4b1ca 100644 --- a/serialize.h +++ b/serialize.h @@ -20,7 +20,7 @@ class CDataStream; class CAutoFile; static const int VERSION = 301; -static const char* pszSubVer = ".0"; +static const char* pszSubVer = ".1"; diff --git a/ui.cpp b/ui.cpp index 51d50e67a..ec0b92050 100644 --- a/ui.cpp +++ b/ui.cpp @@ -375,13 +375,12 @@ void CMainFrame::OnIconize(wxIconizeEvent& event) // to get rid of the deprecated warning. Just ignore it. if (!event.Iconized()) fClosedToTray = false; -//#ifdef __WXMSW__ // The tray icon sometimes disappears on ubuntu karmic // Hiding the taskbar button doesn't work cleanly on ubuntu lucid + // Reports of CPU peg on 64-bit linux if (fMinimizeToTray && event.Iconized()) fClosedToTray = true; Show(!fClosedToTray); -//#endif ptaskbaricon->Show(fMinimizeToTray || fClosedToTray); } @@ -1446,6 +1445,14 @@ COptionsDialog::COptionsDialog(wxWindow* parent) : COptionsDialogBase(parent) SelectPage(0); #ifdef __WXGTK__ m_checkBoxStartOnSystemStartup->SetLabel(_("&Start Bitcoin on window system startup")); + if (!mapArgs.count("-minimizetotray")) + { + // Minimize to tray is just too buggy on Linux + fMinimizeToTray = false; + m_checkBoxMinimizeToTray->SetValue(false); + m_checkBoxMinimizeToTray->Enable(false); + m_checkBoxMinimizeOnClose->SetLabel(_("&Minimize on close")); + } #endif #ifdef __WXMAC_OSX__ m_checkBoxStartOnSystemStartup->Enable(false); // not implemented yet @@ -2536,6 +2543,10 @@ void CreateMainWindow() pframeMain = new CMainFrame(NULL); if (mapArgs.count("-min")) pframeMain->Iconize(true); +#ifdef __WXGTK__ + if (!mapArgs.count("-minimizetotray")) + fMinimizeToTray = false; +#endif pframeMain->Show(true); // have to show first to get taskbar button to hide if (fMinimizeToTray && pframeMain->IsIconized()) fClosedToTray = true;