--- /dev/null
+TEMPLATE = app
+TARGET =
- VERSION = 0.5.1
++VERSION = 0.5.0.2
+INCLUDEPATH += src src/json src/qt
+DEFINES += QT_GUI BOOST_THREAD_USE_LIB
+CONFIG += no_include_pwd
+
+# for boost 1.37, add -mt to the boost libraries
+# use: qmake BOOST_LIB_SUFFIX=-mt
+# for boost thread win32 with _win32 sufix
+# use: BOOST_THREAD_LIB_SUFFIX=_win32-...
+# or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
+
+# Dependency library locations can be customized with BOOST_INCLUDE_PATH,
+# BOOST_LIB_PATH, BDB_INCLUDE_PATH, BDB_LIB_PATH
+# OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
+
+OBJECTS_DIR = build
+MOC_DIR = build
+UI_DIR = build
+
+# use: qmake "RELEASE=1"
+contains(RELEASE, 1) {
+ # Mac: compile for maximum compatibility (10.5, 32-bit)
+ macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk
+
+ !windows:!macx {
+ # Linux: static link
+ LIBS += -Wl,-Bstatic
+ }
+}
+
+# use: qmake "USE_UPNP=1" ( enabled by default; default)
+# or: qmake "USE_UPNP=0" (disabled by default)
+# or: qmake "USE_UPNP=-" (not supported)
+# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
+contains(USE_UPNP, -) {
+ message(Building without UPNP support)
+} else {
+ message(Building with UPNP support)
+ count(USE_UPNP, 0) {
+ USE_UPNP=1
+ }
+ DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
+ INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
+ LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
+ win32:LIBS += -liphlpapi
+}
+
+# use: qmake "USE_DBUS=1"
+contains(USE_DBUS, 1) {
+ message(Building with DBUS (Freedesktop notifications) support)
+ DEFINES += USE_DBUS
+ QT += dbus
+}
+
+# use: qmake "USE_SSL=1"
+contains(USE_SSL, 1) {
+ message(Building with SSL support for RPC)
+ DEFINES += USE_SSL
+}
+
+contains(BITCOIN_NEED_QT_PLUGINS, 1) {
+ DEFINES += BITCOIN_NEED_QT_PLUGINS
+ QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs
+}
+
+!windows {
+ # for extra security against potential buffer overflows
+ QMAKE_CXXFLAGS += -fstack-protector
+ QMAKE_LFLAGS += -fstack-protector
+ # do not enable this on windows, as it will result in a non-working executable!
+}
+
+# disable quite some warnings because bitcoin core "sins" a lot
+QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wno-strict-aliasing -Wno-invalid-offsetof -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare -Wno-char-subscripts -Wno-unused-value -Wno-sequence-point -Wno-parentheses -Wno-unknown-pragmas -Wno-switch
+
+# Input
+DEPENDPATH += src/qt src src json/include
+HEADERS += src/qt/bitcoingui.h \
+ src/qt/transactiontablemodel.h \
+ src/qt/addresstablemodel.h \
+ src/qt/optionsdialog.h \
+ src/qt/sendcoinsdialog.h \
+ src/qt/addressbookpage.h \
+ src/qt/aboutdialog.h \
+ src/qt/editaddressdialog.h \
+ src/qt/bitcoinaddressvalidator.h \
+ src/base58.h \
+ src/bignum.h \
+ src/checkpoints.h \
+ src/util.h \
+ src/uint256.h \
+ src/serialize.h \
+ src/strlcpy.h \
+ src/main.h \
+ src/net.h \
+ src/key.h \
+ src/db.h \
+ src/script.h \
+ src/noui.h \
+ src/init.h \
+ src/headers.h \
+ src/irc.h \
+ src/json/json_spirit_writer_template.h \
+ src/json/json_spirit_writer.h \
+ src/json/json_spirit_value.h \
+ src/json/json_spirit_utils.h \
+ src/json/json_spirit_stream_reader.h \
+ src/json/json_spirit_reader_template.h \
+ src/json/json_spirit_reader.h \
+ src/json/json_spirit_error_position.h \
+ src/json/json_spirit.h \
+ src/qt/clientmodel.h \
+ src/qt/guiutil.h \
+ src/qt/transactionrecord.h \
+ src/qt/guiconstants.h \
+ src/qt/optionsmodel.h \
+ src/qt/monitoreddatamapper.h \
+ src/qtui.h \
+ src/qt/transactiondesc.h \
+ src/qt/transactiondescdialog.h \
+ src/qt/bitcoinamountfield.h \
+ src/wallet.h \
+ src/keystore.h \
+ src/qt/transactionfilterproxy.h \
+ src/qt/transactionview.h \
+ src/qt/walletmodel.h \
+ src/bitcoinrpc.h \
+ src/qt/overviewpage.h \
+ src/qt/csvmodelwriter.h \
+ src/crypter.h \
+ src/qt/sendcoinsentry.h \
+ src/qt/qvalidatedlineedit.h \
+ src/qt/bitcoinunits.h \
+ src/qt/qvaluecombobox.h \
+ src/qt/askpassphrasedialog.h \
+ src/protocol.h \
+ src/qt/notificator.h
+
+SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
+ src/qt/transactiontablemodel.cpp \
+ src/qt/addresstablemodel.cpp \
+ src/qt/optionsdialog.cpp \
+ src/qt/sendcoinsdialog.cpp \
+ src/qt/addressbookpage.cpp \
+ src/qt/aboutdialog.cpp \
+ src/qt/editaddressdialog.cpp \
+ src/qt/bitcoinaddressvalidator.cpp \
+ src/util.cpp \
+ src/script.cpp \
+ src/main.cpp \
+ src/init.cpp \
+ src/net.cpp \
+ src/irc.cpp \
+ src/checkpoints.cpp \
+ src/db.cpp \
+ src/json/json_spirit_writer.cpp \
+ src/json/json_spirit_value.cpp \
+ src/json/json_spirit_reader.cpp \
+ src/qt/clientmodel.cpp \
+ src/qt/guiutil.cpp \
+ src/qt/transactionrecord.cpp \
+ src/qt/optionsmodel.cpp \
+ src/qt/monitoreddatamapper.cpp \
+ src/qt/transactiondesc.cpp \
+ src/qt/transactiondescdialog.cpp \
+ src/qt/bitcoinstrings.cpp \
+ src/qt/bitcoinamountfield.cpp \
+ src/wallet.cpp \
+ src/keystore.cpp \
+ src/qt/transactionfilterproxy.cpp \
+ src/qt/transactionview.cpp \
+ src/qt/walletmodel.cpp \
+ src/bitcoinrpc.cpp \
+ src/qt/overviewpage.cpp \
+ src/qt/csvmodelwriter.cpp \
+ src/crypter.cpp \
+ src/qt/sendcoinsentry.cpp \
+ src/qt/qvalidatedlineedit.cpp \
+ src/qt/bitcoinunits.cpp \
+ src/qt/qvaluecombobox.cpp \
+ src/qt/askpassphrasedialog.cpp \
+ src/protocol.cpp \
+ src/qt/notificator.cpp
+
+RESOURCES += \
+ src/qt/bitcoin.qrc
+
+FORMS += \
+ src/qt/forms/sendcoinsdialog.ui \
+ src/qt/forms/addressbookpage.ui \
+ src/qt/forms/aboutdialog.ui \
+ src/qt/forms/editaddressdialog.ui \
+ src/qt/forms/transactiondescdialog.ui \
+ src/qt/forms/overviewpage.ui \
+ src/qt/forms/sendcoinsentry.ui \
+ src/qt/forms/askpassphrasedialog.ui
+
+CODECFORTR = UTF-8
+
+# for lrelease/lupdate
+# also add new translations to src/qt/bitcoin.qrc under translations/
+TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
+
+isEmpty(QMAKE_LRELEASE) {
+ win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
+ else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
+}
+isEmpty(TS_DIR):TS_DIR = src/qt/locale
+# automatically build translations, so they can be included in resource file
+TSQM.name = lrelease ${QMAKE_FILE_IN}
+TSQM.input = TRANSLATIONS
+TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm
+TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN}
+TSQM.CONFIG = no_link
+QMAKE_EXTRA_COMPILERS += TSQM
+PRE_TARGETDEPS += compiler_TSQM_make_all
+
+# "Other files" to show in Qt Creator
+OTHER_FILES += \
+ doc/*.rst doc/*.txt doc/README README.md
+
+# platform specific defaults, if not overridden on command line
+isEmpty(BOOST_LIB_SUFFIX) {
+ macx:BOOST_LIB_SUFFIX = -mt
+ windows:BOOST_LIB_SUFFIX = -mgw44-mt-1_43
+}
+
+isEmpty(BOOST_THREAD_LIB_SUFFIX) {
+ BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
+}
+
+isEmpty(BDB_LIB_PATH) {
+ macx:BDB_LIB_PATH = /opt/local/lib/db48
+}
+
+isEmpty(BDB_LIB_SUFFIX) {
+ macx:BDB_LIB_SUFFIX = -4.8
+}
+
+isEmpty(BDB_INCLUDE_PATH) {
+ macx:BDB_INCLUDE_PATH = /opt/local/include/db48
+}
+
+isEmpty(BOOST_LIB_PATH) {
+ macx:BOOST_LIB_PATH = /opt/local/lib
+}
+
+isEmpty(BOOST_INCLUDE_PATH) {
+ macx:BOOST_INCLUDE_PATH = /opt/local/include
+}
+
+windows:LIBS += -lws2_32
+windows:DEFINES += WIN32
+windows:RC_FILE = src/qt/res/bitcoin-qt.rc
+
+macx:HEADERS += src/qt/macdockiconhandler.h
+macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm
+macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
+macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
+macx:ICON = src/qt/res/icons/bitcoin.icns
+macx:TARGET = "Bitcoin-Qt"
+
+# Set libraries and includes at end, to use platform-defined defaults if not overridden
+INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH
+LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,)
+LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
+# -lgdi32 has to happen after -lcrypto (see #681)
+windows:LIBS += -lgdi32
+LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
+
+contains(RELEASE, 1) {
+ !windows:!macx {
+ # Linux: turn dynamic linking back on for c/c++ runtime libraries
+ LIBS += -Wl,-Bdynamic
+ }
+}
+
+system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
- Bitcoin 0.5.1 BETA
-Bitcoin 0.4.3 BETA
++Bitcoin 0.5.0.2 BETA
Copyright (c) 2009-2011 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
Setup
-----
+You need the Qt4 run-time libraries to run bitcoin-qt. On Debian or Ubuntu:
+ sudo apt-get install libqtgui4
+
Unpack the files into a directory and run:
- bin/32/bitcoin (GUI, 32-bit)
+ bin/32/bitcoin-qt (GUI, 32-bit)
bin/32/bitcoind (headless, 32-bit)
- bin/64/bitcoin (GUI, 64-bit)
+ bin/64/bitcoin-qt (GUI, 64-bit)
bin/64/bitcoind (headless, 64-bit)
-Wallet Encryption
------------------
-Bitcoin supports native wallet encryption so that people who steal your
-wallet file don't automatically get access to all of your Bitcoins.
-In order to enable this feature, chose "Encrypt Wallet" from the
-Options menu. You will be prompted to enter a passphrase, which
-will be used as the key to encrypt your wallet and will be needed
-every time you wish to send Bitcoins. If you lose this passphrase,
-you will lose access to spend all of the bitcoins in your wallet,
-no one, not even the Bitcoin developers can recover your Bitcoins.
-This means you are responsible for your own security, store your
-passphrase in a secure location and do not forget it.
-
-Remember that the encryption built into bitcoin only encrypts the
-actual keys which are required to send your bitcoins, not the full
-wallet. This means that someone who steals your wallet file will
-be able to see all the addresses which belong to you, as well as the
-relevant transactions, you are only protected from someone spending
-your coins.
-
-It is recommended that you backup your wallet file before you
-encrypt your wallet. To do this, close the Bitcoin client and
-copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user
-name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/
-on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on
-Windows Vista and 7 and /Documents and Settings/(user name)/Application
-Data/Bitcoin on Windows XP). Once you have copied that file to a
-safe location, reopen the Bitcoin client and Encrypt your wallet.
-If everything goes fine, delete the backup and enjoy your encrypted
-wallet. Note that once you encrypt your wallet, you will never be
-able to go back to a version of the Bitcoin client older than 0.4.
-
-Keep in mind that you are always responsible for your own security.
-All it takes is a slightly more advanced wallet-stealing trojan which
-installs a keylogger to steal your wallet passphrase as you enter it
-in addition to your wallet file and you have lost all your Bitcoins.
-Wallet encryption cannot keep you safe if you do not practice
-good security, such as running up-to-date antivirus software, only
-entering your wallet passphrase in the Bitcoin client and using the
-same passphrase only as your wallet passphrase.
-
-
-Technical details of wallet encryption
---------------------------------------
-Wallet encryption uses AES-256-CBC to encrypt only the private keys
-that are held in a wallet. The keys are encrypted with a master key
-which is entirely random. This master key is then encrypted with
-AES-256-CBC with a key derived from the passphrase using SHA512 and
-OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined by
-the speed of the machine which does the initial encryption (and is
-updated based on the speed of a computer which does a subsequent
-passphrase change). Although the underlying code supports multiple
-encrypted copies of the same master key (and thus multiple passphrases)
-the client does not yet have a method to add additional passphrases.
-
-At runtime, the client loads the wallet as it normally would, however
-the keystore stores the keys in encrypted form. When the passphrase
-is required (to top up keypool or send coins) it will either be queried
-by a GUI prompt, or must first be entered with the walletpassphrase
-RPC command. This will change the wallet to "unlocked" state where the
-unencrypted master key is stored in memory (in the case of GUI, only for
-long enough to complete the requested operation, in RPC, for as long as
-is specified by the second parameter to walletpassphrase). The wallet is
-then locked (or can be manually locked using the walletlock RPC command)
-and the unencrypted master key is removed from memory.
-
-Implementation details of wallet encryption
--------------------------------------------
-When the wallet is locked, calls to sendtoaddress, sendfrom, sendmany,
-and keypoolrefill will return Error -13: "Error: Please enter the wallet
-passphrase with walletpassphrase first."
-
-When the wallet is unlocked, calls to walletpassphrase will fail.
-
-When a wallet is encrypted, the passphrase is required to top up the
-keypool, thus, if the passphrase is rarely entered, it is possible that
-keypool might run out. In this case, the default key will be used as the
-target for payouts for mining, and calls to getnewaddress and getaccount
-address will return an error. In order to prevent such cases, the keypool
-is automatically refilled when walletpassphrase is called with a correct
-passphrase and when topupkeypool is called (while the wallet is unlocked).
-Note that the keypool continues to be topped up on various occasions when
-a new key from pool is used and the wallet is unlocked (or unencrypted).
-
-
-
See the documentation at the bitcoin wiki:
https://en.bitcoin.it/wiki/Main_Page
-
-... for help and more information.
+for help and more information.
- Bitcoin 0.5.1 BETA\r
-Bitcoin 0.4.3 BETA\r
++Bitcoin 0.5.0.2 BETA\r
\r
Copyright (c) 2009-2011 Bitcoin Developers\r
Distributed under the MIT/X11 software license, see the accompanying\r
\r
Setup\r
-----\r
-Unpack the files into a directory and run bitcoin.exe.\r
+Unpack the files into a directory and run bitcoin-qt.exe.\r
\r
If you have Microsoft Security Essentials, you need to add bitcoin.exe to its\r
"Excluded processes" list. Microsoft Security Essentials->Settings tab,\r
The software automatically finds other nodes to connect to. You can\r
enable Universal Plug and Play using a menu entry or set your firewall\r
to forward port 8333 (TCP) to your computer so you can receive\r
-incoming connections. Bitcoin work without incoming connections,\r
+incoming connections. Bitcoin works without incoming connections,\r
but allowing incoming connections helps the Bitcoin network.\r
\r
-See the bitcoin wiki at: https://en.bitcoin.it/wiki/Main_Page\r
+See the bitcoin wiki at:\r
+ https://en.bitcoin.it/wiki/Main_Page\r
for more help and information.\r
\r
# General Symbol Definitions\r
!define REGKEY "SOFTWARE\$(^Name)"\r
- !define VERSION 0.5.1\r
-!define VERSION 0.4.3\r
++!define VERSION 0.5.0.2\r
!define COMPANY "Bitcoin project"\r
!define URL http://www.bitcoin.org/\r
\r
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}\r
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup\r
!define MUI_STARTMENUPAGE_DEFAULTFOLDER Bitcoin\r
-!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin.exe\r
+!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin-qt.exe\r
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"\r
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"\r
!define MUI_UNFINISHPAGE_NOAUTOCLOSE\r
!insertmacro MUI_LANGUAGE English\r
\r
# Installer attributes\r
- OutFile bitcoin-0.5.1-win32-setup.exe\r
-OutFile bitcoin-0.4.3-win32-setup.exe\r
++OutFile bitcoin-0.5.0.2-win32-setup.exe\r
InstallDir $PROGRAMFILES\Bitcoin\r
CRCCheck on\r
XPStyle on\r
BrandingText " "\r
ShowInstDetails show\r
- VIProductVersion 0.5.1.0\r
-VIProductVersion 0.4.3.0\r
++VIProductVersion 0.5.0.2\r
VIAddVersionKey ProductName Bitcoin\r
VIAddVersionKey ProductVersion "${VERSION}"\r
VIAddVersionKey CompanyName "${COMPANY}"\r
Section -Main SEC0000\r
SetOutPath $INSTDIR\r
SetOverwrite on\r
- File ../src/bitcoin.exe\r
+ File ../release/bitcoin-qt.exe\r
File /oname=license.txt ../COPYING\r
File /oname=readme.txt ../doc/README_windows.txt\r
SetOutPath $INSTDIR\daemon\r
File ../src/bitcoind.exe\r
- SetOutPath $INSTDIR\locale\r
- File /r ../locale/*.*\r
SetOutPath $INSTDIR\src\r
File /r /x *.exe /x *.o ../src\*.*\r
SetOutPath $INSTDIR\r
WriteUninstaller $INSTDIR\uninstall.exe\r
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
CreateDirectory $SMPROGRAMS\$StartMenuGroup\r
- CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe\r
+ CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin-qt.exe\r
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk" $INSTDIR\uninstall.exe\r
!insertmacro MUI_STARTMENU_WRITE_END\r
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"\r
\r
# Uninstaller sections\r
Section /o -un.Main UNSEC0000\r
- Delete /REBOOTOK $INSTDIR\bitcoin.exe\r
+ Delete /REBOOTOK $INSTDIR\bitcoin-qt.exe\r
Delete /REBOOTOK $INSTDIR\license.txt\r
Delete /REBOOTOK $INSTDIR\readme.txt\r
RMDir /r /REBOOTOK $INSTDIR\daemon\r
- RMDir /r /REBOOTOK $INSTDIR\locale\r
RMDir /r /REBOOTOK $INSTDIR\src\r
DeleteRegValue HKCU "${REGKEY}\Components" Main\r
SectionEnd\r
#define for if (false) ; else for
#endif
-#ifdef __WXMSW__
+#ifdef WIN32
+#include <windows.h>
// This is used to attempt to keep keying material out of swap
// Note that VirtualLock does not provide this as a guarantee on Windows,
// but, in practice, memory that has been VirtualLock'd almost never gets written to
class CAutoFile;
static const unsigned int MAX_SIZE = 0x02000000;
- static const int VERSION = 50100;
-static const int VERSION = 40300;
++static const int VERSION = 50002;
static const char* pszSubVer = "";
static const bool VERSION_IS_BETA = true;